AndroidStudio配置

鉴于目前Google官方推荐使用 Android Studio 进行Android项目开发,自 V3.4.2 开始,Bmob Android SDK 可以使用Gradle来进行包依赖管理,如果你使用Android Studio来进行基于BmobSDK的项目开发,有两种方式:

自动导入(推荐)

请按照如下两个步骤进行:

  1. Projectbuild.gradle 文件中添加 Bmob的maven仓库地址,示例如下:(注意文字说明部分):

    buildscript {

     repositories {
    jcenter()
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'
    }

    }

    allprojects {

     repositories {
    jcenter()
    //Bmob的maven仓库地址--必填
    maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
    }

    }

  1. appbuild.gradle文件中添加compile依赖文件,示例如下:(注意文字说明部分):

    apply plugin: 'com.android.application'

    android {

    compileSdkVersion 22
    buildToolsVersion '22.0.1' **兼容Android6.0系统所需,如果这句话报错,可在dependencies标签下使用compile 'cn.bmob.android:http-legacy:1.0'**
    useLibrary 'org.apache.http.legacy' ...

    }

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) //以下SDK开发者请根据需要自行选择
//bmob-sdk:Bmob的android sdk包,包含了Bmob的数据存储、文件等服务,以下是最新的bmob-sdk:
//3.5.0:请务必查看下面注释[1]
compile 'cn.bmob.android:bmob-sdk:3.5.0' //bmob-push:Bmob的推送包
compile 'cn.bmob.android:bmob-push:0.8' //bmob-im:Bmob的即时通讯包,注意每个版本的im依赖特定版本的bmob-sdk,具体的依赖关系可查看下面注释[2]
compile 'cn.bmob.android:bmob-im:2.0.5@aar'
compile 'cn.bmob.android:bmob-sdk:3.4.7-aar' //bmob-sms :Bmob单独为短信服务提供的包
compile 'cn.bmob.android:bmob-sms:1.0.1' //如果你想应用能够兼容Android6.0,请添加此依赖(org.apache.http.legacy.jar)
compile 'cn.bmob.android:http-legacy:1.0'
}

注:

[1]、为了降低开发者的使用成本,自v3.4.7开始,同步提供aar格式的文件,此aar包含libbmob.so、依赖jar包(okhttp、okio、rx、gson等)及自动更新组件所需要的资源文件。开发者再也不需要配置libbmob.so,不需要添加依赖jar,也不需要复制自动更新组件的资源文件啦,只需要添加以下依赖即可。

compile 'cn.bmob.android:bmob-sdk:3.5.0'

注:由于PermissionManager权限管理类需要依赖support-v4:23.2.1的jar包,导致开发者认为SDK依赖文件较多,故分离出SDK。开发者如果需要兼容Android6.0系统,可以在下载的SDK的官方Demo的com.example.bmobexample.permission包下面查看该类源码。

[2]、每个版本的im依赖特定版本的bmob-sdk:

  • bmob-im:1.1.8--->bmob-sdk:3.3.5
  • bmob-im:1.1.9--->bmob-sdk:3.4.3
  • bmob-im:2.0.1--->bmob-sdk:3.4.6-0304
  • bmob-im:2.0.2--->bmob-sdk:3.4.6-0304
  • bmob-im:2.0.3--->bmob-sdk:3.4.6
  • bmob-im:2.0.4--->bmob-sdk:3.4.6
  • bmob-im:2.0.5--->bmob-sdk:3.4.7-aar

其中

  • bmob-sdk:3.4.6-0304是Bmob Android SDK的过渡版本,主要用于NewIM_v2.0.1及v2.0.2
  • bmob-sdk:3.4.6的相关依赖包可见注释[3]

[3]、bmob-sdk:3.4.6依赖以下包:

compile 'cn.bmob.android:bmob-sdk:3.4.6'
compile 'com.squareup.okhttp:okhttp:2.4.0'//CDN文件服务使用okhttp相关包进行文件的上传和下载(必填)
compile 'com.squareup.okio:okio:1.4.0'

如果需要兼容Android6.0系统,请添加以下两项:

compile 'com.android.support:support-v4:23.2.1'
compile 'cn.bmob.android:http-legacy:1.0'

[4]、bmob-sms适用于只需要使用Bmob短信功能的开发者,而bmob-sdk内部包含了bmob-sms的短信功能,请不要重复添加。

[5]、BmobSDK的官方仓库:bmob-android-sdk,开发者可到此仓库查看最新发布的各版本SDK,我们会尽量与官网发布的SDK保持同步更新。

手动导入

  1. 开发者到SDK下载中心下载 数据服务 的Android 版本的SDK,并将下载下来的libs文件夹里面的文件根据需要复制到工程的libs目录下(注意,自v3.4.7开始提供libbmob.so文件);

  2. appbuid.gradle文件中添加SO库目录配置:

     android {
    sourceSets {
    main.jniLibs.srcDirs = ['libs']
    }
    }
  3. 点击Sync,同步配置。

Eclipse导入

开发者到 SDK下载中心 下载 数据服务 的Android 版本的SDK,在Eclipse工程的项目根目录中新建libs文件夹,将下载的jar包添加到此文件夹即可。

注:

1、若配置不成功,则需要额外增加以下步骤:

右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向该libs文件夹下的jar的路径,点击OK即可

2、BmobSDK_v3.5.0需要依赖rxjava(1.1.6)、rxandroid(1.2.0)、gson(2.6.2)、okhttp3(3.3.1)、okio(1.7.0)libbmob.so库;

3、BmobSDK_v3.4.7需要依赖okhttp3(3.2.0)、okio(1.7.0)libbmob.so库;

4、BmobSDK_v3.4.6需要依赖okhttp(2.4.0)、okio(1.4.0),如果需要兼容Android6.0系统,则还需要添加support-v4(23.2.1)及org.apache.http.legacy依赖包。

配置AndroidManifest.xml

在你的应用程序的AndroidManifest.xml文件中添加相应的权限:


<!--允许联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--获取wifi网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!--获取sd卡写的权限,用于文件上传和下载-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许读取手机状态 用于创建BmobInstallation-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.bmob.example"
android:versionCode="1"
android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="cn.bmob.example.MainActivity"
android:screenOrientation="portrait"
android:label="@string/app_name"> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> <activity
android:name=".CreateActivity"
android:screenOrientation="portrait">
<activity
android:name=".DeleteActivity"
android:screenOrientation="portrait">
<activity
android:name=".UpdateActivity"
android:screenOrientation="portrait">
<activity
android:name=".FindActivity"
android:screenOrientation="portrait">
</application>
</manifest>

初始化BmobSDK

在你应用程序启动的Activity的onCreate()方法中初始化Bmob功能。代码如下所示:

package com.bmob.example;
import cn.bmob.v3.Bmob;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//提供以下两种方式进行初始化操作: //第一:默认初始化
Bmob.initialize(this, "Your Application ID"); //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
//BmobConfig config =new BmobConfig.Builder(this)
////设置appkey
//.setApplicationId("Your Application ID")
////请求超时时间(单位为秒):默认15s
//.setConnectTimeout(30)
////文件分片上传时每片的大小(单位字节),默认512*1024
//.setUploadBlockSize(1024*1024)
////文件的过期时间(单位为秒):默认1800s
//.setFileExpiration(2500)
//.build();
//Bmob.initialize(config);

注:

[1]、为了降低开发者的使用成本,自v3.4.7开始,同步提供aar格式的文件,此aar包含libbmob.so、依赖jar包(okhttp、okio、rx、gson等)及自动更新组件所需要的资源文件。开发者再也不需要配置libbmob.so,不需要添加依赖jar,也不需要复制自动更新组件的资源文件啦,只需要添加以下依赖即可。

compile 'cn.bmob.android:bmob-sdk:3.5.0'

注:由于PermissionManager权限管理类需要依赖support-v4:23.2.1的jar包,导致开发者认为SDK依赖文件较多,故分离出SDK。开发者如果需要兼容Android6.0系统,可以在下载的SDK的官方Demo的com.example.bmobexample.permission包下面查看该类源码。

[2]、每个版本的im依赖特定版本的bmob-sdk:

  • bmob-im:1.1.8--->bmob-sdk:3.3.5
  • bmob-im:1.1.9--->bmob-sdk:3.4.3
  • bmob-im:2.0.1--->bmob-sdk:3.4.6-0304
  • bmob-im:2.0.2--->bmob-sdk:3.4.6-0304
  • bmob-im:2.0.3--->bmob-sdk:3.4.6
  • bmob-im:2.0.4--->bmob-sdk:3.4.6
  • bmob-im:2.0.5--->bmob-sdk:3.4.7-aar

其中

  • bmob-sdk:3.4.6-0304是Bmob Android SDK的过渡版本,主要用于NewIM_v2.0.1及v2.0.2
  • bmob-sdk:3.4.6的相关依赖包可见注释[3]

[3]、bmob-sdk:3.4.6依赖以下包:

compile 'cn.bmob.android:bmob-sdk:3.4.6'
compile 'com.squareup.okhttp:okhttp:2.4.0'//CDN文件服务使用okhttp相关包进行文件的上传和下载(必填)
compile 'com.squareup.okio:okio:1.4.0'

如果需要兼容Android6.0系统,请添加以下两项:

compile 'com.android.support:support-v4:23.2.1'
compile 'cn.bmob.android:http-legacy:1.0'

[4]、bmob-sms适用于只需要使用Bmob短信功能的开发者,而bmob-sdk内部包含了bmob-sms的短信功能,请不要重复添加。

[5]、BmobSDK的官方仓库:bmob-android-sdk,开发者可到此仓库查看最新发布的各版本SDK,我们会尽量与官网发布的SDK保持同步更新。

 

Bmob Androidstudio配置的更多相关文章

  1. AndroidStudio配置gradle,让App自动签名

    最近开发关于微信一系列功能,发现分享.支付必须要打包签名才能测试,太耽误事了,耗时耗力...在网上扒拉扒拉资料,发现有很多前辈都处理过类似问题,非常感谢大家的分享,参考链接:http://blog.c ...

  2. androidstudio 配置git和github

    git是版本控制工具 github是一个网站,git可以把项目上传至这个网站 1:先下载git,并且安装,一般默认即可,安装成功可以点击电脑右键出现 2:生成id_rsa.pub, 配置账号和邮箱 点 ...

  3. AndroidStudio配置LitePal

    配置,许多书上还有教程都忽略了将LitePal下载下来和拷贝的过程,这里写一个详细的课程 首先,前往GitHub,下载LitePal的包. 然后解压,会看到这个 进入download 自己选个版本,然 ...

  4. 最全面的AndroidStudio配置指南总结-包括护眼模式

    使用AndroidStudio开发APP已有半年多的时间了,从刚开始的不习惯到慢慢适应再到逐渐喜欢上AndroidStudio,中间的过程颇有一番曲折,现在把自己对AndroidStudio的配置心得 ...

  5. 关于AndroidStudio 配置的默认路径的修改

    AndroidStudio的配置默认路径在 C:\Users\用户名\.AndroidStudio3.0 下,在这里会有一个缺点是C盘会常常空间不够用,所以我就想改到其他盘的.看图: Android ...

  6. AndroidStudio配置好了so文件运行却报错 java.lang.UnsatisfiedLinkError:

    报错截图: 解决方法:在app的build.gradle 下的defaultConfig里面添加过滤即可: ndk { abiFilters 'armeabi' //兼容x86cpu架构 需要什么样的 ...

  7. androidStudio通过svn进行版本控制

    andoridStudio配置使用svn(以windows为例) 1.先安装svn客户端程序,TortoiseSVN,注意安装过程中要勾选command line client tools(默认是不安 ...

  8. android studio节省C盘空间的配置方法

    近期发现C盘空闲空间剩余不多了,经过检查发现在C:\Users\<电脑用户名>\的目录下,有这两个文件夹空间比较大,这两文件夹分别是 .AndroidStudioPreview3.2(不同 ...

  9. AndroidStudio 3.0中之后无法打开DDMS [Android Device Monitor] 问题

    AndroidStudio 3.0中之后无法打开DDMS [Android Device Monitor] 问题    转 https://blog.csdn.net/black_bird_cn/ar ...

随机推荐

  1. 专注VR/AR广告 ,内容感知广告公司Uru获80万美元投资

    随着AR/VR技术不断地跃进,越来越多的公司开始运用这项技术为消费者提供广告和营销信息.Uru是一家打造计算机视觉驱动内容广告的公司,专注于数字视频和VR/AR类似的沉浸式媒介,就在刚刚这家公司宣布完 ...

  2. 斗地主 (NOIP2015 Day1 T3)

    斗地主 张牌,因为它可以连在K后, 总体思路为 先出炸弹和四带二 再出三带一 再把对牌和单牌出完 记录并更新Answer,后枚举顺子,并继续向下搜索. 注意:弄明白题意,题目描述不太清楚....另外, ...

  3. 初级AD域渗透系列

      net group /domain 获得所有域用户组列表 net group “domain admins” /domain 获得域管理员列表 net group “enterprise admi ...

  4. js求两个数的最大公约数

    1, lcm=function(m,n){//辗转相除法 求最大公约数 var u=+m,v=+n,t=v; while(v!=0){ t=u%v; u=v; v=t; } return u }2, ...

  5. es6--(二)变量的解构赋值

    1.数组的解构赋值 //数组解析 let [a,b,c] = [1,2,3]; //a=1;b=2;c=3 //嵌套数组 let [a,[b,c]] = [1,[2,3]];//a=1;b=2;c=3 ...

  6. thinkphp pdo 重写问题

    ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用. 首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括: 复制代码 ...

  7. Spring之ContextLoaderListener的作用

    Spring org.springframework.web.context.ContextLoaderListener public class ContextLoaderListener exte ...

  8. String与StringBuilder区别总结

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  9. 分布式版本控制系统Git-----2.上传至远程仓库之基础版

    好,之前已经将文档下载下来了,但是我感觉还是将自己之前截的图放出来比较好,自己整理的,但是总不能放桌面上,时间久了也会忘得,索性放到博客上吧,也便于其他人查看,简直是百利而无一害啊.哈哈.来吧. 注意 ...

  10. Chapter 2 Open Book——31

    "It's too bad about the snow, isn't it?" Edward asked. I had the feeling that he was forci ...