最近公司在做网络监听模块,在网上找了很多资料,但是都只是有一个思路,具体对不了解这个东西的我,无从下手,然后从网上各种找资料
如下:
newrelic的android sdk实现原理解析(一)
http://www.apmbe.com/newrelic%E7%9A%84android-sdk%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90%EF%BC%88%E4%B8%80%EF%BC%89/
(这个人的技术博客资料比较多)
http://www.apmbe.com/category/apm/
Android性能监控实现原理
https://www.jianshu.com/p/9c07323dc7e5
(下面这个博客比较详细)
http://www.codeceo.com/article/android-monitoring-implementation.html?utm_medium=hao.caibaojian.com&utm_source=hao.caibaojian.com
JVM源码分析之javaagent原理完全解读
http://www.infoq.com/cn/articles/javaagent-illustrated/
instrumentation 功能介绍(javaagent)
https://my.oschina.net/robinyao/blog/489767
Java 字节码操控框架asm(这个有详细的案例)
http://yanguz123.iteye.com/blog/2012409
深入字节码 -- 使用 ASM 实现 AOP----修改字节码
https://my.oschina.net/u/1166271/blog/162796
gradle / groovy / gradle 插件开发
https://www.jianshu.com/p/f704af0a3da5
Java性能监控之javassist探索
https://www.cnblogs.com/orionhp/p/6362615.html
AOP实践:java.lang.instrument的使用(Instrumentation 的最大作用就是类定义的动态改变和操作)
http://blog.csdn.net/biaobiaoqi/article/details/6971485
java类动态加载(二)——动态加载class文件
http://zheng12tian.iteye.com/blog/1495037
NewRelicAndroidAgent -- 源码
https://github.com/hello2mao/NewRelicAndroidAgent/tree/master/agent/src/main/java/com/newrelic/com/google/gson
使用IDEA开发Gradle插件 : 开发基本过程
http://blog.devwiki.net/index.php/2017/08/28/develop-gradle-plugin-use-idea-1.html
Gradle插件开发
https://www.jianshu.com/p/3c59eded8155
groovy 反编译
https://btpka3.github.io/btpka3/groovy/groovy-decompile.html
roovy深入探索——Call Site分析
http://johnnyjian.iteye.com/blog/349556
ajc编译器
http://www.androidchina.net/5956.html
Groovy语法之类(groovy编译前后对比)
http://blog.csdn.net/tscyds/article/details/77336341
通过自定义Gradle插件修改编译后的class文件(非常简单的一个demo但是功能都有)
https://www.jianshu.com/p/417589a561da
Groovy集合(list)
http://blog.csdn.net/dora_310/article/details/52863422
groovy深入探索——Call Site分析
http://johnnyjian.iteye.com/blog/349556
Android Gradle Plugin的Transform API
http://blog.csdn.net/tuhuolong/article/details/52230453
查看了这么多,资料,大概有个思路了,就是在编译成dex文件之前,将所有的字节码文件修改了, 相当于在系统层面上将网络请求代理到指定的网络请求上去 , 这样就能够监听到网络请求了