- 博客(7)
- 收藏
- 关注
原创 Retrofit中的类型转换
在网络请求中由于各种业务需要,定义的接口入参、出参类型各不相同 以往做法都是在请求成功的回调方法中自行解析response的内容,写法不一又显得重复累赘。 而retrofit采用了2个接口来解决该问题。 retrofit中的2个类型转换接口 1、CallAdapter接口 public interface CallAdapter<R, T> { Type responseType();...
2019-08-14 14:29:52
869
原创 Java动态代理实现
动态代理定义 public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException { } 参数类型解释 newProxyInstance方法 返回值: Object是interface的...
2019-08-12 16:52:41
142
原创 认识JVM(初识class文件)
认识class文件的好处: 1、加强对Java的理解 2、通过修改class或生成新的class方式完成项目功能(如spring就是通过修改class文件来完成功能的) 3、为热修复热部署功能完成第一步 程序员编写的Java文件经过javac编译生成class文件,jvm加载class文件并执行Java代码从而实各种业务逻辑。class文件记录了程序员编写的代码信息,包括编译的jdk版本、clas...
2019-03-08 10:50:22
258
原创 Android TransForm开发
Android官方提供给开发者在项目构建阶段即由class到dex转换期间修改class文件的一套api。Gradle在自身编译打包过程中也是使用该工具实现。 实现步骤: 1、创建自定义Gradle插件,可参考博客:https://blog.youkuaiyun.com/u010082177/article/details/87877535 2、在groovy路径下创建plugin类,需继承Plugin并重写...
2019-02-22 15:02:44
2442
2
原创 Android ASM 开发
ASM是一款操作class文件流的工具类,效率大大高于普通Java代码编译成class的方式。操作class流的方式其实就是通过手动操作jvm的指令集,来生成或修改class文件流。 众所周知普通Java代码通过javac编译生成class文件后,再通过javap -v 即可查看反编译的类似汇编代码。而asm的实现方式就是完成这样的汇编代码。 如上图所示,就是方法HelloWorld的反汇编代码...
2019-02-22 14:19:58
2011
原创 Android Gradle插件开发
Android的groovy脚本大大提升了效率,简化了编写方式,采用build.gradle的方式可以解决问题 但是这样会在工程里面重复copy(因为不能引用,特别是夸工程的时候),所以自定义插件就特别有用。 创建插件参考博客:https://blog.youkuaiyun.com/sbsujjbcy/article/details/50782830 但是如何调试groovy,在Android S...
2019-02-22 14:15:23
475
转载 Android Studio 调试AnnotationProcess
操作步骤可参考博客:https://blog.youkuaiyun.com/tomatomas/article/details/53998585 注意事项: 1、创建完remote设置和compilerDebugJavac设置之后,运行项选择compilerDebugJavac 点击运行按钮 2、运行项选择remote点击debug按钮 3、等待调试进入断点(若无修改不会进入断点) ...
2019-02-22 11:04:13
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人