Android热修复
2016-07-14 16:08
453 查看
ClassLoader
禁止dex优化为class打上CLASS_PREVERIFIED标识方式一
第一步:新建辅助类并单独生成一个dex,用于被其他类引用
第二步:使用javaasist在其他类的构造方法添加对辅助类的引用
第三步:在加载apk时,优先加载辅助类dex
缺点:需要在编译期间为所有的类的构造方法插入对辅助类的引用,存在性能问题
方式二
代理dvmresolveclass方法,修改参数fromUnverifiedConstant为true,逃过校验。
目前还没与跑通。
bug修复后生成差异包
将差异包添加到DexList前面
生成差分包
jar cvf 目标文件 源文件 dx --dex --output apk文件 源jar包
关于http://blog.csdn.net/aerfahaidao/article/details/50217521这个博客中所说的生成补丁包的方法,亲测是不可行的。示例中替换一个Activity类是可以的,但是替换一个普通的工具类,还是会出现异常java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories