为什么应用在Android5.0系统以上运行的更快 (Why app is faster running on Android 5.0 or later)

权限管理不同

随着Android系统版本的升级,google对开发者的权限申请越来越严格,而且后台进程管控越来越严格。

例如:前几年过年有很多开发者会让应用在设备上一直存活不退出(传说的“保活”)

底层机制不同

这是最重要的区别

5.0之前底层使用Dalvik虚拟机;
5.0之后底层使用Android Runtime;

Dalvik

Dalvik是一个处理器虚拟机。
用Java写的Android程序,首先被编译成Java虚拟机的字节码,然后再转换为Dalvik的字节码。Java虚拟机的字节码存放在.class文件中,Dalvik字节码存放在.dex(Dalvik EXecutable)和.odex(Optimized Dalvik EXecutable)文件中. Dalvik的可执行文件,是专为对内存和处理器有限制的系统设计的。

  • 运行原理
    其中的即使编译器(trace-based just-in-time (JIT) compilation),在应用每次启动时,持续性的分析和动态的将频繁执行的简短字节码片段翻译为本地机器码。剩余的字节码,则由Dalvik解释执行。
Android Runtime

Android Runtime (ART) 是Android操作系统使用的应用运行环境。 是Android 上的应用和部分系统服务使用的托管式运行时。

  • 运行原理
    程序安装时,使用提前编译器(ahead-of-time(AOT) compilation)直接把dex字节码文件转为本地机器码,运行时不用再转换。

  • 通过移除Dalvik解释器和trace-based JIT编译器,ART大大提高了应用的执行效率和减少了电量的消耗。同时,还提高了内存分配和垃圾回收机制,增加了新的应用调试功能和对应用更精准的高层分析。 (如果提高内存分配和垃圾回收机制, 请读者自行参考Android官网文档)

  • 缺点: 增加了应用的安装时间和占用手机上更多的flash空间。

参考1
参考2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值