1. MTA(Android)接入指南

1.1. 开始嵌入SDK


1.1.1. 安装和部署

欢迎使用腾讯移动分析(简称MTA)Android统计SDK,您可以按照下面AndroidStudio自动接入eclipse手动接入开始集成SDK。 Step 1 获取AppKey

登陆腾讯移动分析移动统计前台,按照步骤提示注册应用,可获得AppKey。

腾讯内部用户:http://mta.oa.com

腾讯外部用户:http://mta.qq.com

Step 2 工程添配置

AndroidStudio自动接入

AndroidStudio上可以使用jcenter远程仓库自动接入,不需要在项目中导入jar包和so文件;在AndroidManifest.xml中不需要配置MTA相关的内容,jcenter 会自动导入。(升级SDK删除老版本SDK的配置)

在app build.gradle文件下配置 以下内容

android {
    defaultConfig {
        ndk {
        //根据需要 自行选择添加的对应cpu类型的.so库。
        abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
        // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
        }
        manifestPlaceholders = [
        MTA_APPKEY:"注册应用的appkey",
        MTA_CHANNEL:"渠道名称"
        ]
    }
}

dependencies {
// mta包稳定版和测试版本二选一,mid包必须要添加 ,可视化埋点根据需要添加

//mta 3.3 稳定版
compile 'com.qq.mta:mta:3.3.1-release'

//mid jar包 必须添加
compile 'com.tencent.mid:mid:3.73-release'

//可视化埋点的相关jar包 (根据需要添加),可视化埋点的版本号,和必须和当前MTA的版本号必须匹配使用 需要在配置文件中增加配置,具体请参考 高级功能中可视化埋点的接入。
compile 'com.qq.visual:visual:3.3.1-release'

}

注意

如果在添加以上 abiFilter 配置之后android Studio出现以下提示:

NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. 则在 Project 根目录的gradle.properties文件中添加:

android.useDeprecatedNdk=true

eclipse手动接入

向工程中导入SDK

前往“SDK下载中心”下载对应压缩包,解压至本地目录,将其中lib目录下的mta-sdk-x.x.x.jar[1]复制到您的应用工程libs目录(若不存在请新建一个)中。以Eclipse为例:右键点击工程根目录→选择Properties→ Java Build Path →Libraries→点击Add JARs…选中当前工程libs目彔下的mta-sdk-x.x.x.jar文件,点击“OK”按钮即导入成功。

配置AndroidManifest.xml文件

需要添加下面两类配置:

Meta-Data 类型 用途 必选
TA_APPKEY String,不能为纯数字字符串 MTA提供给每个app的appkey,用来定位该应用程序的唯一性
InstallChannel String,若为纯数字字符串不能超过int表示的范围 用来标注应用推广渠道,区分新用户的来源来查看统计(多渠道打包配置
Provider Android组件 兼容Android 6.0系统(MID 3.0以上版本才需要)

注意: appkey和installChannel也能够在代码中设置,见APP设置接口

需要的权限 用途 必选
INTERNET 允许应用程序联网,以便向我们的服务器端发送数据
READ_PHONE_STATE 获取用户手机的IMEI,用来唯一的标识用户。(运行在平板上的应用会读取mac地址作为用户的唯一标识
ACCESS_NETWORK_STATE 获取设备的网络状态
ACCESS_WIFI_STATE 获取设备的WIFI网络状态
WRITE_EXTERNAL_STORAGE 获取SD卡信息

权限示例文件:

<!-- 必选权限< -->
<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"/>


<application ......>


<provider
    android:name="com.tencent.mid.api.MidProvider"
    android:authorities="你的包名.TENCENT.MID.V3"
    android:exported="true" >
</provider>
<!-- 请将value改为管理台申请的AppKey < -->
<meta-data android:name="TA_APPKEY" android:value="ABCDEFG12233456"/>
<!-- 请将value改为app发布对应的渠道,不同的发布渠道使用不同的名字 < -->
<meta-data android:name="InstallChannel" android:value="play"/>


</application>

step 3 在代码中添加SDK的统计

MTA主要使用到2个类

import com.tencent.stat.StatConfig
import com.tencent.stat.StatService

StatConfig类:MTA配置类,可以设置上报策略、Debug开关、session超时时间等,需要在初始化MTA之前被调用才能及时生效,通常使用SDK默认配置即可。

StatService类:MTA统计类,需要开发者按下面的步骤主动调用接口。

在App初始化之处,通常为Application或MainActivity的onCreate()方法内,添加以下调用

        // 打开Logcat输出,上线时,一定要关闭
        StatConfig.setDebugEnable(true);
        // 注册activity生命周期,统计时长
        StatService.registerActivityLifecycleCallbacks(this);

Step 4 验证数据上报是否正常

当您完成以下的MTA嵌入工作后,启动app,触发MTA统计接口,经过5秒左右,正常情况下,在您的app首页就能看到实时指标在更新,说明您已成功嵌入MTA,可继续深入的统计开发。

如果经过几分钟后,尚未看到实时指标更新,请检查以下事项:

(1)设备的wifi是否打开,是否正常联网;

(2)APPKEY、权限等设置是否正确;

(3)确保已触发MTA统计接口;

(4)打开MTA的debug开关,查看标签为“MtaSDK“的logcat提示,是否有错误日志;成功上报的日志通常为I/MtaSDK: [StatDispatcher(522): StatDispatcher.java:288] - http recv response status code:200, content length:29

(5)如果logcat提示“Compatibility problem was found in this device!“,请先删除apk重新安装,可参考兼容性错误。

1.1.2. 升级SDK

新版本SDK兼容老版本接口,升级时只需要替换旧的jar包即可:先在工程所在libs目录下删除旧的jar包,复制新jar包到libs路径,同时,在Java Build Path里面删除旧的jar包,并添加新jar包引用。

1.1.3. 代码混淆

请保留以下选项:

-keep class com.tencent.stat.*{*;}

-keep class com.tencent.mid.*{*;}

1.2. 注意

  • 若使用自定义或第三方打包工具打包,建议通过代码接口的方式配置渠道,具体步骤:
  1. 渠道打包工具打包
  2. 代码中,读取打包工具设置的渠道
  3. 初始化时,调用StatConfig.setInstallChannel(ctx, channel)设置MTA渠道

results matching ""

    No results matching ""