一、参考
博文:安卓App热补丁动态修复技术介绍——by QQ空间终端开发团队
博文:Android dex分包方案——by 猫的午后
开源项目:https://github.com/jasonross/Nuwa
开源项目:https://github.com/dodola/HotFix
感谢以上几位大神分享的技术知识!
关于热补丁技术,以上文章已经做了很详细的描述。但是细节上的东西都一带而过,这里会做出更为详细的说明,更适合初学者学习这门技术。
二、Dex分包方案的由来
###2.1 Dalvik限制
众所周知,当apk解压后里面是只有一个classes.dex文件的,而这个dex文件里面就包含了我们项目的所有.class文件。
但是当一个app功能越来越复杂,可能会出现两个问题:
- 编译失败,因为一个dvm中存储方法id用的是short类型,导致dex中方法不能超过65536个
- 你的apk在android 2.3之前的机器无法安装,因为dex文件过大(用来执行dexopt的内存只分配了5M)
2.2 解决方案
针对上述两个问题,有人研究出了dex分包方案。
原理就是将编译好的class文件拆分打包成两个dex,绕过dex方法数量的限制以及安装时的检查,在运行时再动态加载第二个dex文件中。
除了第一个dex文件(即正常apk包唯一包含的Dex文件),其它dex文件都以资源的方式放在安装包中,并在Application的onCre

最低0.47元/天 解锁文章
630

被折叠的 条评论
为什么被折叠?



