阿里巴巴朱中明--Android热修复技术分析和阿里的技术实践

简介:

【51CTO.com原创稿件】在WOT2016移动互联网技术峰会上,阿里朱中明老师为我们讲解热修复里面问题。第一讲解热修复的技术,第二讲解HotFix。

热更新和热修复的区别

通常所说的热更新和热部署都是对这个已经发布的客户端代码做一个更新,这里面有一个不同点,热更新强调它是一种实时更新和微小改动,而在热部署里面讲的是在工具链和工程上的完整的更新周期。

拦截技术

因为在热更新里面其实只讲到了两个比较重要的点,第一个就是拦截。这个拦截在业界里面,现在只有三种方面,第一种是类替换,第二种是AOP,第三种是方法直接替换。它在兼容性是最好的,在任何的产品上应该都是能使用的。缺点它主要是以class为单位做更新,因为它不能做某一个具体部分的更新。它其实有两个缺点,第一有一定的性能损失,第二在多数情况下都需要重启的。

拦截器

做java的都知道这个叫AOP。通过AOP的开发,它的性能损失是几乎无损,并且它并不需要做重启。但是它有两个比较大的问题,第一个兼容性不太好,因为它涉及到VM底层的实现。第二这个patch代码是一个专用的代码,这个代码以后不会在你的工程里面有任何的留存,相当于里就是一个补丁,它是一个真正的补丁。

方法替换

方法替换的优点跟拦截器几乎是差不多的。第一个它的力度非常小,导致它的patch包会相对小。第二个在性能上面其实是没有任何损失的。除了第一次把这个子项的地方改进之后,就没有任何的损失。它会有一些缺点,第一个在兼容性上会有一些问题,因为它也会涉及到底层的VM实现。第二同样它在编写的时候是有一些限制的,比如说可能不能改属性,改方法的时候有一些或多或少的限制,包括不能使用放弃所以也会存在这个代码可能有一定的专业有限的可能性,这也算一个缺点。

安全加护的工具

这个工具对我们来说是非常致命的。其实安全加护的工具并不是对代码做的,大部分的安全加护的工具做两块事情,第一个把APK包的结构做了一个变化,第二把一些资源的名字和一些位置做了一些串,主要是增加了一些成本。安全这件事情永远都是一个游戏,这个游戏是循环下去的。并且安全这个东西是非常灰色的。很多人知道它的破解过程非常简单,就是把APK解开,把里面的代码和东西。其实那个代码里面就是有问题的,把所有的签名全部抹掉,重新抹一遍,就会有问题。所以在打这个包之前,是不能用安全加护的。


本文作者:刘晓旭

来源:51CTO

相关文章
|
1月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
160 4
|
1月前
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
24天前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文深入探讨了这两个平台的开发环境,从编程语言、开发工具到用户界面设计等多个角度进行比较。通过实际案例分析和代码示例,我们旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和个人偏好做出明智的选择。无论你是初涉移动开发领域的新手,还是寻求跨平台解决方案的资深开发者,这篇文章都将为你提供宝贵的信息和启示。
29 8
|
21天前
|
搜索推荐 Android开发 开发者
安卓应用开发中的自定义控件实践
在安卓应用开发的广阔天地中,自定义控件如同璀璨的星辰,点亮了用户界面设计的夜空。它们不仅丰富了交互体验,更赋予了应用独特的个性。本文将带你领略自定义控件的魅力,从基础概念到实际应用,一步步揭示其背后的原理与技术细节。我们将通过一个简单的例子——打造一个具有独特动画效果的按钮,来展现自定义控件的强大功能和灵活性。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往更高阶UI设计的大门。
|
28天前
|
安全 Android开发 数据安全/隐私保护
深入探索Android与iOS系统安全性的对比分析
在当今数字化时代,移动操作系统的安全已成为用户和开发者共同关注的重点。本文旨在通过比较Android与iOS两大主流操作系统在安全性方面的差异,揭示两者在设计理念、权限管理、应用审核机制等方面的不同之处。我们将探讨这些差异如何影响用户的安全体验以及可能带来的风险。
34 1
|
1月前
|
安全 搜索推荐 Android开发
揭秘安卓与iOS系统的差异:技术深度对比
【10月更文挑战第27天】 本文深入探讨了安卓(Android)与iOS两大移动操作系统的技术特点和用户体验差异。通过对比两者的系统架构、应用生态、用户界面、安全性等方面,揭示了为何这两种系统能够在市场中各占一席之地,并为用户提供不同的选择。文章旨在为读者提供一个全面的视角,理解两种系统的优势与局限,从而更好地根据自己的需求做出选择。
109 2
|
1月前
|
安全 搜索推荐 Android开发
揭秘iOS与安卓系统的差异:一场技术与哲学的较量
在智能手机的世界里,iOS和Android无疑是两大巨头,它们不仅定义了操作系统的标准,也深刻影响了全球数亿用户的日常生活。本文旨在探讨这两个平台在设计理念、用户体验、生态系统及安全性等方面的本质区别,揭示它们背后的技术哲学和市场策略。通过对比分析,我们将发现,选择iOS或Android,不仅仅是选择一个操作系统,更是选择了一种生活方式和技术信仰。
|
1月前
|
前端开发 Android开发 UED
安卓应用开发中的自定义控件实践
【10月更文挑战第35天】在移动应用开发中,自定义控件是提升用户体验、增强界面表现力的重要手段。本文将通过一个安卓自定义控件的创建过程,展示如何从零开始构建一个具有交互功能的自定义视图。我们将探索关键概念和步骤,包括继承View类、处理测量与布局、绘制以及事件处理。最终,我们将实现一个简单的圆形进度条,并分析其性能优化。
|
程序员 Android开发 开发者
《深入探索Android热修复技术原理》实体书正式出版!给你一个更充实全面的热修复技术视角
我们在2017年6月发布了《深入探索 Android 热修复技术原理》一书的电子版,电子版发布以后得到了很好的反响。之后,我们对电子版内容做了认真的整理和校对,对全书内容进行了全面的充实,于2018年秋正式出版了《深入探索 Android 热修复技术原理》的彩页印刷版实体书,实体书内容更加精彩!
3879 0
《深入探索Android热修复技术原理》实体书正式出版!给你一个更充实全面的热修复技术视角
|
程序员 Android开发 开发者
免费下载!业界首部安卓热修复宝典出炉,阿里技术大牛联袂推荐
业界首部全方位完整介绍热修复原理书籍《深入理解Android热修复技术原理》,该书为阿里巴巴手淘技术团队撰写,现已免费开放下载。
48083 0