在线安装集成(零代码极速接入)
整体介绍
此文档描述 无埋点SDK
极速接入配置方式;如果希望使用gradle方式接入无埋点SDK,请参考可视化圈选接入。如果您使用的是手动埋点SDK版本,请参考手动埋点SDK gradle接入。
百度移动统计团队推出的全新极速埋点
方案,一步完成SDK安装,省去了传统接入方案的繁琐步骤。
传统接入方案(繁琐)
一般开发者接入统计SDK需要至少完成四个步骤(配置 gradle 下载SDK;修改 AndroidManifest.xml 添加必须的权限;添加统计SDK调起代码;配置 proguard 避免混淆统计SDK),整体接入过程还是偏繁琐,而且容易出错。
极速埋点方案(推荐)
只需要一步(配置 graldle 以引入
百度统计零埋点插件
)即完成接入,零埋点插件
会自动完成相关的SDK 下载,权限注入,启动代码注入,proguard 配置注入
等工作。
接入过程
基础接入
- 找到项目根 build.gradle 文件,引用
百度统计零埋点插件库
repositories {
jcenter()
}
dependencies {
// 引入插件库
classpath 'com.baidu.mobstat:mtj-circle-plugin:latest.integration'
}
- 项目主module build.gradle 文件,添加
百度统计零埋点插件
apply plugin: 'mtj-circle-plugin'
- 项目主module build.gradle 文件,添加配置
MtjCirclePluginConfig {
// 设置appkey,必须设置,否则插件使用无效
appkey = '替换成您自己的appkey'
// 设置debug 开关,默认关闭,如果需要查看日志则打开开关(true),建议正式版关闭以避免影响性能
debug = false
// 默认启动此插件,如果开发者不需要可以禁用(false)
enabled = true
}
编译,运行即可
如果是通过 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'
)。项目类型限制
零埋点插件
仅支持application
(apply 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 任何权限:
"android.permission.INTERNET",
"android.permission.ACCESS_NETWORK_STATE",
"android.permission.ACCESS_WIFI_STATE",
"android.permission.READ_PHONE_STATE",
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.ACCESS_FINE_LOCATION",
"android.permission.BLUETOOTH",
"android.permission.READ_EXTERNAL_STORAGE"
代码注入
如果APP中有自定义Application,SDK默认会将启动代码注入到Applicaion#onCreate() 中。如果APP中没有自定义Application,则会找到入口Main Activity,将相关启动代码注入。
为保证数据准确性,避免因为SDK初始化时机原因导致特定页面监控不到,建议开发者在APP中定义
自定义Application
,插件会自动识别完成代码注入。proguard注入
SDK 会在项目目录下生成
proguard-baidu-mtj.pro
文件,指定不混淆百度统计相关类。