Android热修复技术 --- 兼容性问题深入

Android热修复技术2中,利用动态加载dex实现了热修复,当然这也是一个实现,Tinker也是利用这个原理实现的,但是其中还是会存在兼容性问题的,接下来就会介绍,热修复中存在的兼容性问题

1 Android N混合编译

在了解Android N(7.0)混合编译之前,首先对Android的编译过程做一些回顾

1.1 Dalvik时代

在Android 5.0之前,Android的虚拟机为Dalvik虚拟机,用于将dex文件转换为系统能够识别的机器码,每次执行这段代码都需要重新转换,效率很低;

因此在2.2版本,Google引入了JIT(即时编译技术),当App运行的时候,当遇到一个新的类的时候会做编译,但是会被优化成一个精简的原生指令码,下次再执行的时候,速度会很快;但是缺点就在于,当App重启的时候,还是会重新JIT

那面对这样的问题,Android在5.0之后,就完全废弃掉了Dalvik虚拟机,进入ART的时代

1.2 ART时代

在Android 5.0之后,ART替代了Dalvik,ART之所以会出现,就是解决Dalvik时代JIT的问题,虽然JIT能够对频繁执行的代码做dex优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Awesome_lay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值