AndroidStudio配置
鑒於目前Google官方推薦使用 Android Studio
進行Android項目開發,自 V3.4.2
開始,Bmob Android SDK 可以使用Gradle來進行包依賴管理,如果你使用Android Studio來進行基於BmobSDK的項目開發,有兩種方式:
自動導入(推薦)
請按照如下兩個步驟進行:
-
在
Project
的build.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" } }
}
-
在
app
的build.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.2bmob-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保持同步更新。
手動導入
-
開發者到SDK下載中心下載
數據服務
的Android 版本的SDK,並將下載下來的libs
文件夾里面的文件根據需要復制到工程的libs目錄下(注意,自v3.4.7
開始提供libbmob.so
文件); -
在
app
的buid.gradle
文件中添加SO庫目錄配置:android { sourceSets { main.jniLibs.srcDirs = ['libs'] } }
-
點擊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.2bmob-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保持同步更新。