android n引入了一种包含编译、解释和jit(just in time)的混合运行时,以便在安装时间、内存占用、电池消耗和性能之间获得最好的折衷。
art是在android kitkat(译者注:android 4.0)引入并在lollipop(译者注:android 5.0)中设为默认解决方案的主要特性之一,是当时的一种新的运行时。art取代了dalvik,但是前者与后者仍然保持了字节码级的兼容,因为前者仍在运行dex文件。art的主要特征之一就是安装时对应用的aot编译。这种方式的主要优点就是优化产生的本地代码性能更好,执行起来需要更少的电量。劣势在于安装文件所需的空间和时间。在lollipop和marshmallow(译者注:android 6.0)中,大的应用需要数分钟才能安装完。
android n开发者预览版包含了一个混合模式的运行时。应用在安装时不做编译,而是解释字节码,所以可以快速启动。art中有一种新的、更快的解释器,通过一种新的jit完成,但是这种jit的信息不是持久化的。取而代之的是,代码在执行期间被分析,分析结果保存起来。然后,当设备空转和充电的时候,art会执行针对“热代码”进行的基于分析的编译,其他代码不做编译。为了得到更优的代码,art采用了几种技巧包括深度内联。
对同一个应用可以编译数次,或者找到变“热”的代码路径或者对已经编译的代码进行新的优化,这取决于分析器在随后的执行中的分析数据。这个步骤仍被简称为aot,可以理解为“全时段的编译”(all-of-the-time compilation)。
这种混合使用aot、解释、jit的策略的全部优点如下。
即使是大应用,安装时间也能缩短到几秒
系统升级能更快地安装,因为不再需要优化这一步
应用的内存占用更小,有些情况下可以降低50%
改善了性能
更低的电池消耗
如果您想了解关于编译时优化的更多细节,我们推荐播客episode 45: state of the art,其中邀请了两位嘉宾——android art团队的leader brian carlstrom和android平台的工程总监 anwar ghuloum。
永磁电机计算公式是什么
电子器件的可靠性与器件的温度直接相关
人工智能应用在哪些方面
光电传感器怎么接线看了就知道
工业连接器的接触件为什么要镀一层保护金属(工业连接器接触件镀层)
Android N混合使用AOT编译,解释和JIT三种运行时
特斯拉召回超40万辆电动汽车
关于中国新能源汽车第2000万辆下线仪式车辆采用尼得科驱动电机系统“E-Axle”的公告
紫光与建设银行签署全面战略合作协议
软件开发人员正逐步成为一个企业成败的关键
防疫机器人优点爆棚 阿汤哥买机器人在片场防疫
触控技术在未来可用于教学场景
处理器i7和i5哪个好
A/D转换器的主要技术指标
如何选择线束材料以及避免因线材问题而出现的故障
电阻的标称阻值和允许偏差
iPhone8什么时候上市?iPhone8最新消息:iPhone8设计稿偷拍泄露,全面屏设计+后置竖置+无Home键,是个假苹果
三星发布1600万像素3P9图像传感器,光线较暗下也能拍出效果很好的照片
华为如果芯片管够的话绝对吊打苹果!
比特币正在塑造一个怎样的阶层