Atlas应用于几十个团队几百人App的协作中,拥有快速迭代能力,淘系大小型应用普遍采用,运行高稳定性。
手淘的Atlas框架主要提供了组件化、动态性、解耦化的支持。支持工程师在工程编码期、Apk运行期以及后续运维修复期的问题资源加载。
组件化实现:Manifest处理,类加载,按需加载,依赖仲裁,APK构建。
动态性实现:增量动态化方案,基于自研差量算法,实现动态部署,主Bundle基于classloader机制,业务Bundle基于差量merge,支持全业务类型;Andfix (plugin) 实现快速故障修复,基于Nativehook,主要做方法的修改。DexPatch生成,资源Patch生成,Activity新增。
周边优化点:
1. Bundle重复资源合并
2. Bundle依赖校验
3. 类库瘦身,方法数裁剪
4. 依赖查询库
5. 混淆Mapping处理
APK包结构、模块分层、容器设计图详见pdf: