第一步:gradle配置
项目.gradle
repositories{
jcenter()
maven {
url "http://mvn.leancloud.cn/nexus/content/repositories/releases"
}
}
app.gradle
compile ('cn.leancloud.android:avoscloud-sdk:v3.+')//基础包
compile('cn.leancloud.android:chatkit:1.0.+') //实施通讯包
compile 'cn.leancloud.android:avoscloud-statistics:v3.4.5@aar' //统计包
compile ('cn.leancloud.android:avoscloud-push:v3.+@aar'){transitive = true}//推送
第二步:minifest.xml配置
权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
保存离线报告的缓存数据。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
这两个权限是为了获取用户手机的 IMEI 以及 WiFi 的 Mac 地址,用来唯一的标识用户。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
android.permission.READ_LOGS
获取客户端 crash log。通过将 crash log 汇报到服务器上,你可以了解你的应用 crash 的原因以及次数。
接收推送:不使用推送可以不加
<service android:name="com.avos.avoscloud.PushService" />
<receiver android:name="com.avos.avoscloud.AVBroadcastReceiver" android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="com.xhl.PUSH_DEMO"/>//如果是自定义广播要自定义action
</intent-filter>
</receiver>
第三步:初始化
application
// 初始化应用信息
AVOSCloud.initialize(this, app_id, app_key);
//AVOSCloud.useAVCloudUS();// 启用北美节点,默认为中国的节点,所以不需要此行代码;
AVOSCloud.setDebugLogEnabled(true);//在应用发布之前,关闭调试日志,以免暴露敏感数据
AVAnalytics.setAnalyticsEnabled(true);//统计开关
AVAnalytics.enableCrashReport(this, true);//应用异常统计
AVAnalytics.setSessionContinueMillis(long mills);//设置自定义home间隔时间,超过返回将会认为另一个session;
第四步:使用,分四大模块
1、基础数据存储:
(1)存储:
AVObject testObject = new AVObject("TestObject");// 构建对象
testObject.put("name","content");
testObject.put("priority", 1);// 设置优先级
testObject.saveInBackground(new SaveCallbac