AndroidStudio新特性ApplyChange介绍

AndroidStudio 3.5预览版推出了一个新功能——ApplyChange,替换原来的InstantRun功能。ApplyChange采用了跟InstantRun不一样的原理来加快AndroidStudio的部署安装apk的流程。

InstantRun

InstantRun主要解决以下两个问题,(1)减少构建和部署app到手机的时间;(2)热更新代码改动,无需重启app或者activity。为了实现这两个目标,InstantRun通过重写apk的构建流程往每个类里面去注入钩子来达到类的热替换。详细的实现原理,可以查看这些博文。

对于小型的应用,InstantRun确实很好用,能够节省构建和部署的时间,并且不会出错。但是对于大型复杂应用,它会导致更长的构建时间,同时由于InstantRun构建过程和正常的app构建存在冲突,常常出现另开发者抓狂的错误。as开发团队在连续几个大版本中都去尝试去解决这些问题,但是效果不理想。

所以基于此,as开发者团队重新设计了底层的架构,推出了ApplyChangs。和InstantRun不同的是,它不会在构建过程中去修改apk。它依赖的是安卓8.0开始虚拟机支持的特殊指令来进行类的替换。

ApplyChanges

当连接上安卓8.0及以上的设备时,as将会多出三个按钮
ApplyChanges部署资源和代码改动到手机,重启activity,但是无需重启应用。
仅部署代码改动到手机,不需要重启activity和应用。

架构

接下来我们研究下ApplyChanges的实现原理。ApplyChanges的核心是要找出AndroidStudio构建出来的apk和已经安装到手机设备apk的差异。找出差异后,然后将差异发送到手机上执行差异合并。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值