《深入探索Android热修复技术原理》读后感以及插件化思考

本文探讨了Android热修复技术,重点讲解了阿里Sophix方案,包括热修复概念、热替换代码修复的局限性和解决策略、冷启动代码修复、资源和so库热修复。同时,文章还对比了QQ空间和Tinker的解决方案,并引发了对插件化技术的思考。
摘要由CSDN通过智能技术生成

最近编辑于2019/02/17

主要介绍了阿里Sophix方案。

热修复的概念:

AndroidManifest出现BUG是无法修复的,想增加四大组件,可通过预先在安装包的AndroidManifest里面埋入代理的组件,在每次新增组件时,通过预埋的代理组件实现与系统进程间的通信。

热修复需要在补丁包中包含一个新逻辑的dex文件。

资源的修复,主要通过修改资源包的内容。

so库修复是通过在加载时优先加载补丁包的so库。

 

热替换代码修复:

Andfix底层替换的局限性:Andfix是根据公开的Android源码对ArtMethod结构体里面的字段进行的修改。如果手机厂商修改了ArtMethod的结构体(其实是在结构体前面增加字段,编译为AOT机器码后发生替换错位),就会导致机型不支持。

而Sophix采用了整体替换ArtMethod的方案,就避免了手机厂商修改结构体的问题。但也带来需要计算ArtMethod大小的问题,后来发现ArtMethod Array的地址是紧密排列的,通过相邻两个ArtMethod的起始地址的差值计算出ArtMethod的大小。优点只要以后ArtMethod数组仍是以线性结构排列,该方案仍能适用。

访问权限的问题:通常是因为类是由不同的Classloader加载导致的,可以通过反射或者采用冷启动的方式来解决。

热替换的局限:因为热替换需要原有的类实例的结构不变。因此使用Sophix进行热修复,想让用户体验到热替换,只能在原有类的方法里修改或者新增一个原包不存在的新类(PS这样会使代码变乱,在上升级包前应该重新整理代码)。还有其他一些局限:比如尽量不要增加非静态内部类、需要混淆配置加上-donto

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
----《深入探索Android修复技术原理》高清完整版PDF---- 2017年6月,阿里巴巴手淘技术团队推出了史上首个非侵入式移动更新解决方案——Sophix。在Android修复的三大领域:代码修复、资源修复、SO修复方面,以及方案的安全性和易用性方面,Sophix都做到了业界领先。 《深入探索Android修复技术原理》从阿里Sophix方案开发过程入手权威解读,分享了阿里巴巴手淘技术团队对系统底层的原创性发现,是业界首部全方位完整介绍修复原理的书籍。 阿里技术大牛联袂推荐 自 2014 年至今,手淘定义和引领了业界 Android 组件修复技术风潮,至于后来者 Instant App 或多或少也受了国内技术风气影响。今天看到团队同学将这块技术认真系统整理成书,非常欣喜。在这本书里,既能看到对修复技术风潮的发展历史系统深入总结,看到国内程序员在Android系统级技术持续突破上的不懈努力,更看到国内程序员坚持打造世界级优秀专业移动技术产品的雄心壮志! 手机淘宝基础平台部负责人,阿里巴巴资深技术专家 吴天华(天施) 业内少有的讲解 Android 修复的深度书籍,对于原理、代码讲解得非常的清晰和深入,值得 Android 工程师研读。 手机淘资深专家,倪生华(玄黎) 应用修复是一项略带神秘而又颇具争议的技术,但是它的确赋予应用开发者“驾着飞机修引擎”的能力。本书从 Android 应用修复技术原理及代码实现、多种方案进行比较的角度,系统地阐述了 Android 平台上的应用修复技术。对 Android 应用修复有好奇心的技术人员,这本专题书不容错过。 计算机技术领域著名作家,阿里巴巴飞猪事业部首席架构师 潘爱民
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值