在线安装集成(零代码极速接入)

整体介绍

此文档描述 无埋点SDK 极速接入配置方式;如果希望使用gradle方式接入无埋点SDK,请参考可视化圈选接入。如果您使用的是手动埋点SDK版本,请参考手动埋点SDK gradle接入

百度移动统计团队推出的全新极速埋点方案,一步完成SDK安装,省去了传统接入方案的繁琐步骤。

  • 传统接入方案(繁琐)

    一般开发者接入统计SDK需要至少完成四个步骤(配置 gradle 下载SDK;修改 AndroidManifest.xml 添加必须的权限;添加统计SDK调起代码;配置 proguard 避免混淆统计SDK),整体接入过程还是偏繁琐,而且容易出错。

  • 极速埋点方案(推荐)

    只需要一步(配置 graldle 以引入百度统计零埋点插件)即完成接入,零埋点插件会自动完成相关的 SDK 下载,权限注入,启动代码注入,proguard 配置注入 等工作。

接入过程

基础接入

  • 找到项目根 build.gradle 文件,引用百度统计零埋点插件库
  1. repositories {
  2. jcenter()
  3. }
  4. dependencies {
  5. // 引入插件库
  6. classpath 'com.baidu.mobstat:mtj-circle-plugin:latest.integration'
  7. }
  • 项目主module build.gradle 文件,添加百度统计零埋点插件
  1. apply plugin: 'mtj-circle-plugin'
  • 项目主module build.gradle 文件,添加配置
  1. MtjCirclePluginConfig {
  2. // 设置appkey,必须设置,否则插件使用无效
  3. appkey = '替换成您自己的appkey'
  4. // 设置debug 开关,默认关闭,如果需要查看日志则打开开关(true),建议正式版关闭以避免影响性能
  5. debug = false
  6. // 默认启动此插件,如果开发者不需要可以禁用(false)
  7. enabled = true
  8. }
  • 编译,运行即可

    如果是通过 gradle 指令命令行编译(eg: gradlew assembleRelease / assembleDebug),可以看到gradle console 输出相关注入成功的信息。

    编译项目并启动运行,5分钟左右后即可在百度移动统计网站上看到对应的启动数据!

高级配置

开发者如果需要更复杂的高级配置功能,如 渠道,Crash采集,手动配置页面,手动配置事件,信息流分析 等功能,可以参考高级配置部分,直接添加相关api 调用即可。

特殊说明

使用限制

  • gradle plugin 版本限制

    零埋点插件暂只支持 gradle plugin 3.0.0+ 版本,如果您需要使用零埋点插件,需要确保所使用的plugin版本符合要求,否则可能报错。确认方法:查看项目根 build.gradle 使用的gradle 即可(eg: classpath 'com.android.tools.build:gradle:3.1.1')。

  • 项目类型限制

    零埋点插件仅支持applicationapply plugin: 'com.android.application')类型项目,不可用于library类型项目。

  • 仅支持新接入SDK的APP

    零埋点插件会自动下载安装最新版本SDK,如果当前本地项目已经引用了百度统计SDK,则可能导致包名冲突编译失败。如果发生这种情况,建议删除已有的SDK JAR包/gradle 引用 + 相关启动代码埋点

功能说明

  • 此插件默认安装的是百度统计-无埋点SDK版本

    • 功能上,与无埋点SDK完全一致,只是通过插件的方式,省去了开发者的繁琐安装SDK步骤。
    • 完成基础配置后,即会产出页面pv,启动次数,用户数等集成报告,事件埋点需要通过可视化圈选的方式完成,参考可视化圈选功能。(可视化圈选调起通过双手touch 手机方式,如果需要通过二维码方式,需要单独配置 AndroidManifest.xml 添加 scheme。)
  • 此插件会在编译期完成相关代码安装注入

    为确保安装成功,请在编译产出release 包后通过线上数据验证统计功能。如果通过命令行编译(eg: gradlew assembleRelease / assembleDebug),可以参考命令行log日志确认是否安装成功。

插件原理

  • 权限注入

    默认在AndroidManifest.xml注入以下权限,不会在代码中主动request 任何权限:

  1. "android.permission.INTERNET",
  2. "android.permission.ACCESS_NETWORK_STATE",
  3. "android.permission.ACCESS_WIFI_STATE",
  4. "android.permission.READ_PHONE_STATE",
  5. "android.permission.WRITE_EXTERNAL_STORAGE",
  6. "android.permission.ACCESS_FINE_LOCATION",
  7. "android.permission.BLUETOOTH",
  8. "android.permission.READ_EXTERNAL_STORAGE"
  • 代码注入

    如果APP中有自定义Application,SDK默认会将启动代码注入到Applicaion#onCreate() 中。如果APP中没有自定义Application,则会找到入口Main Activity,将相关启动代码注入。

    为保证数据准确性,避免因为SDK初始化时机原因导致特定页面监控不到,建议开发者在APP中定义自定义Application,插件会自动识别完成代码注入。

  • proguard注入

    SDK 会在项目目录下生成 proguard-baidu-mtj.pro 文件,指定不混淆百度统计相关类。