目标:通过面向切面编程来实现对源代码无侵入的埋点。
 
  方式 能力 缺点 学习曲线  
XPosed 运行期hook
能hook自己应用进程的方法;
能hook别的应用的方法;
能hook系统方法;
1,手机需要root;
2, 依赖三方包的支持,碎片化严重兼容性差;
一般  
DexPosed 运行期hook 能hook自己应用进程的方法; 1,目前不支持4.4以及5.1以上的系统;
2, 依赖三方包的支持,碎片化严重兼容性差;
一般  
AspectJ 编译期字节码注入
可以在编译成字节码的过程中插入代码;
 
官方有Eclipse插件,但没有Android Studio插件,需要替换编译器,环境不好部署; 一般  
ASM 编译期或者运行期字节码注入 可以在字节码中文件或者ClassLoader加载字节码的时候插入代码; 需要熟悉字节码语法; 陡峭  
           
 
最终我选择了ASM...

最新文章

  1. 数据库 sql server
  2. 一道无限级分类题的 PHP 实现
  3. 【PHP面向对象(OOP)编程入门教程】12.重载新的方法(parent::)
  4. ACM: HDU 1874 畅通工程续-Dijkstra算法
  5. python第一个hello world注意问题!!
  6. Android Activity 详述
  7. Genotype&&陨石的秘密
  8. CSS3之背景色渐变
  9. 在CentOS下安装配置MySQL(转)
  10. Delegate,Action,Func,Predicate的使用与区别
  11. 为Jquery EasyUI 组件加上“清除”功能
  12. js复习---string
  13. iOS开发中一些有用的小代码
  14. 爬虫-request和BeautifulSoup模块
  15. 亚马逊VE账号运营
  16. 第61节:Java中的DOM和Javascript技术
  17. WEB安全之垃圾信息防御措施
  18. Vue(基础七)_webpack打包工具用法(上)
  19. C++学习笔记50:队列类模板
  20. Mybatis JDBC->Mybatis

热门文章

  1. [LeetCode] Graph Valid Tree 图验证树
  2. [LeetCode] Kth Largest Element in an Array 数组中第k大的数字
  3. [LeetCode] Longest Substring Without Repeating Characters 最长无重复子串
  4. java Fn键
  5. springboot @ConfigurationProperties
  6. jQuery遍历checkbox
  7. NodeJs入门学习(一)
  8. neo4j关闭和开启密码访问权限
  9. OpenCV图像的全局阈值二值化函数(OTSU)
  10. java编码