接入TalkingData应用统计分析
官方集成文档快速通道
接入准备
登录应用统计分析,点击立即开始进入到应用统计分析页面,创建应用
取到App ID以及下载定制sdk(根据需求,通常产品会要求埋点☑️上灵动分析即可)
选择需要的功能后,同意条款(我能不同意嘛🤪),填写E-mail然后提交,sdk将会发送至邮箱(也可直接下载-已包含灵动分析)。
快速集成
导入sdk
implementation files('libs/SaaS_AppAnalytics_Android_SDK_V4.0.36.jar')
清单文件添加权限、Service
<uses-permission android:name="android.permission.INTERNET" ><!--允许程序联网和发送统计数据的权限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ><!--允许应用检测网络连接状态,在网络异常状态下避免数据发送,节省流量和电量。-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" ><--允许应用以只读的方式访问手机设备的信息,通过获取的信息来唯一标识用户。-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ><!--获取设备的MAC地址,同样用来标识唯一用户。-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"><!--用于保存设备信息,以及记录日志。-->
<uses-permission android:name="android.permission.GET_TASKS"><!--获取当前应用是否在显示应用,可以更精准的统计用户活跃-->
<service
android:name="com.talkingdata.sdk.TDAntiCheatingService"
android:process="com.talkingdata.sdk.TDAntiCheatingService"> <!--用户质量评估Service可以配置在主进程或者单独进程-->
<intent-filter>
<action android:name="com.talkingdata.sdk.TDAntiCheatingService" >
</intent-filter>
</service>
<meta-data android:name="TD_APP_ID" android:value="Your_app_id" >
<meta-data android:name="TD_CHANNEL_ID" android:value="Your_channel_id" >
初始化sdk
在应用程序的Application的onCreate方法中调用TCAgent.init
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
TCAgent.LOG_ON = BuildConfig.DEBUG ? true : false;
// App ID: 在TalkingData创建应用后,进入数据报表页中,在“系统设置”-“编辑应用”页面里查看App ID。
// 渠道 ID: 是渠道标识符,可通过不同渠道单独追踪数据。
// 如果已经在AndroidManifest.xml配置了App ID和渠道ID,调用TCAgent.init(this)即可;或与AndroidManifest.xml中的对应参数保持一致。
TCAgent.init(this,"您的 App ID", "渠道 ID");
//自动获取异常信息,调用以下方法(自动捕获默认为关闭状态,请根据需要设置):
TCAgent.setReportUncaughtExceptions(true);
}
}
Note:初始化代码中与manifest中配置一个AppId和渠道id即可,若同时配置,优先查找manifest中配置的id。
添加混淆
-dontwarn com.tendcloud.tenddata.**
-keep class com.tendcloud.** {*;}
-keep public class com.tendcloud.tenddata.** { public protected *;}
-keepclassmembers class com.tendcloud.tenddata.**{
public void *(***);
}
-keep class com.talkingdata.sdk.TalkingDataSDK {public *;}
-keep class com.apptalkingdata.** {*;}
-keep class dice.** {*; }
-dontwarn dice.**
页面访问
在activity的基类调用:
public class BaseActivity extends AppCompatActivity {
//页面名称,最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
private String className = getClass().getSimpleName();
@Override
protected void onPause() {
super.onPause();
TCAgent.onPageEnd(this, className);
}
@Override
protected void onResume() {
super.onResume();
TCAgent.onPageStart(this, className);
}
}
Note: onPageStart 和 onPageEnd 必须成对调用;
至此,基础接入以及完成(不包含灵动分析)。