1. Android快速接入指南
1.1. 开始嵌入SDK
1.1.1. 获取AppKey
登陆前端管理台,按照步骤提示注册应用,可获得AppKey。
1.1.2. 向工程中导入SDK
下载SDK压缩包,解压至本地目录,将其中sdk目录下文件复制到工程的libs目录中,具体参考AndroidStudio或Eclipse导入方法。
以下为AndroidStudio导入图
若使用到.so
,请在build.gradle
文件添加以下内容
android {
// 项目的其它配置
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
1.1.3. 配置AndroidManifest.xml文件
配置权限
<!-- 基础统计相关权限 -->
<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.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!-- 推送相关权限 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_LOGS" />
配置组件
<!-- 基础统计相关配置 -->
<provider
android:name="com.tencent.mid.api.MidProvider"
android:authorities="你的包名.TENCENT.MID.V3"
android:exported="true" >
</provider>
<!-- 以下为推送相关配置 -->
<!-- 【必须】 信鸽receiver广播接收 -->
<receiver android:name="com.tencent.android.tpush.XGPushReceiver"
android:process=":xg_service_v3" >
<intent-filter android:priority="0x7fffffff" >
<!-- 【必须】 信鸽SDK的内部广播 -->
<action android:name="com.tencent.android.tpush.action.SDK" />
<action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" />
<!-- 【必须】 系统广播:开屏和网络切换 -->
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。当然,你也可以添加APP自定义的一些广播让启动service -->
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<!-- 【注意】 如果被打开的activity是启动模式为SingleTop,SingleTask或SingleInstance,请根据通知的异常自查列表第8点处理-->
<activity
android:name="com.tencent.android.tpush.XGPushActivity"
android:exported="false" >
<intent-filter>
<!-- 若使用AndroidStudio,请设置android:name="android.intent.action"-->
<action android:name="android.intent.action" />
</intent-filter>
</activity>
<!-- 【必须】 信鸽service -->
<service
android:name="com.tencent.android.tpush.service.XGPushServiceV3"
android:exported="true"
android:persistent="true"
android:process=":xg_service_v3" />
<!-- 【必须】 提高service的存活率 -->
<service
android:name="com.tencent.android.tpush.rpc.XGRemoteService"
android:exported="true">
<intent-filter>
<!-- 【必须】 请修改为当前APP包名 .PUSH_ACTION, 如demo的包名为:com.qq.xgdemo -->
<action android:name="当前应用的包名.PUSH_ACTION" />
</intent-filter>
</service>
<!-- 【必须】 【注意】authorities修改为 包名.AUTH_XGPUSH, 如demo的包名为:com.qq.xgdemo-->
<provider
android:name="com.tencent.android.tpush.XGPushProvider"
android:authorities="当前应用的包名.AUTH_XGPUSH"
android:exported="true"/>
<!-- 【必须】 【注意】authorities修改为 包名.TPUSH_PROVIDER, 如demo的包名为:com.qq.xgdemo-->
<provider
android:name="com.tencent.android.tpush.SettingsContentProvider"
android:authorities="当前应用的包名.TPUSH_PROVIDER"
android:exported="false" />
1.1.4. 代码混淆
请保留以下选项:
-keep class com.tencent.bigdata.mta.*{*;}
-keep class com.tencent.stat.*{*;}
-keep class com.tencent.mid.*{*;}
-keep class com.qq.taf.jce.** {*;}
-keep class com.tencent.android.tpush.** {*;}
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
1.2. 基础API接入
腾讯移动分析平台的API统一收归在com.tencent.bigdata.mta.*
包名下,在import
时请注意路径。
在App入口处调用,通常为Application.onCreate()
或MainActivity.onCreate()
方法内。
1.2.1. 初始化
类名:MTAGlobalService
接口内容
/**
* 初始化并启动基础服务
*
* @param app {@link Application}上下文
* @param option 全局的基础配置参数
*/
public static void initAndStartService(Application app, MTAGlobalOption option);
/**
* 设置是否开启日志调试,仅限调试定位问题时使用,上线时请务必关闭
*
* @param debug true:开启;false:关闭
*/
public static void setDebug(boolean debug);
示例
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
// 开启logcat日志调试,方便定位问题,上线时务必关闭
MTAGlobalService.setDebug(true);
// 配置参数信息
MTAGlobalOption mtaGlobalOption = new MTAGlobalOption();
mtaGlobalOption.setAppkey("Axxxxxxxxxx").setAppID(310000000).setChannel("应用宝");
// 调用并初始化
MTAGlobalService.initAndStartService(this, mtaGlobalOption);
// 其它逻辑
}
}