深度剖析 | 阿里热修复如何精简优化补丁资源?
这一年,关于Sophix热修复我们陆续做了很多优化和改进,包括:
兼容最新Android版本至Android P dp3
JIT混合编译的兼容
第三方加固的全面兼容
新增稳健接入方式
三星低版本特殊机型的兼容
补丁工具加速与初始化检查
资源补丁深度优化
其他稳定性和性能的改进
Sophix热修复中的资源修复我们在《深入探索Android热修复技术原理》(在阿里技术公众号,回复“热修复”,即可免费下载)书中已经有过介绍,主要思想就是将新增和修改的资源打包到补丁资源包中,以0x66的包名来重新编排这些资源。对比其他热修复需要替换完整资源包,Sophix的增量的资源补丁方案能做到资源补丁最小化,并且运行时无需合成完整资源,实现了性能与空间的最优化。
在此基础上,我们继续改进了资源补丁,对resources.arsc中的字符串池进行裁剪,在不损耗运行时性能的