android开发中做数据埋点一般都是直接写在方法里面,这样做虽说是能够完成功能,但是代码的入侵性太强,整体埋点通用性也不强。在后台开发中,对系统可以采用aop进行日志和性能监控,于是搜了下android中也是可以采用aop的方式进行日志记录和性能监控的。
技术点
- 面向切面编程,这里采用aspectj
- gradle自定义插件,在代码编译时调用aspectj进行处理
- 自定义编译时注解,运行时注解
实现步骤
- 自定义gradle插件,在代码编译时调用aspectj进行处理,主要参考开源项目hugo
|
|
- 在app中引入插件
apply plugin: 'com.min.aspect'
- 定义注解,编译时注解用于标记切点,运行时注解用于记录埋点名称以便在后面获取
|
|
|
|
- 定义切面和处理方法
|
|
|
|