查看: 7606|回复: 23
收起左侧

[讨论] 【科普】基于Android4.4的MIUI V5大招:ART程序运行模式

 关闭 [复制链接]
88865ff
发表于 2014-4-21 17:16:13 | 显示全部楼层 |阅读模式
Android 4.4,是有Google公司制作和研发的代号为KitKat的手机操作系统,于北京时间2013年9月4日凌晨对外公布了该Android新版本的名称,为Android 4.4(代号 KitKat 奇巧)。
然而这个系统最大的亮点莫过于针对RAM的占用进行了深度的优化,以至于谷歌官方宣称运行内存仅有512MB的老款手机,同样可以流畅运行Android 4.4系统,这说明谷歌已经对该系统有了充分的信心。然而这一切是如何实现的?为什么曾经需要大内存才能保证系统流畅,现在不需要了呢?这一切还要从最新的ART模式说起。
ART模式究竟是什么?
简单地说,ART模式就是 Android 程序运行的根本机制改变了,程序会启动地更快,而且会更省资源。表现在用户体验上,就是 Android 更流畅了,同时续航能力显著增加。这种变化不是小打小闹,而是非常可观的大变化,根据AndroidPolicy上专项文章的说法,这个改变可以让部分 Android 程序的启动加速 50%,理论上待机时间也会显著增加。
根据该文后一些“小白鼠”们的评论,他们在试用了 ART 运行模式后,都体会到了其带来的速度提升和续航提升,而且效果非常明显。这说明这个尚处在实验阶段的 ART 模式已经能够带来明显的好处,唯一不足的是,作为 Beta 版,稳定性欠佳。
众所周知,Android 是基于 Java 语言的,iOS 是基于 Obejctive-C。表现在手机和应用程序运行机制上,Java 的代码实际上需要两次“转换”才能最终以用户可看的程序跑起来,一次发生在开发者发布安装包前,使用开发者自己机器的 CPU,另一次在用户启动 APP 前,使用手机的 CPU。而基于 Objective-C 的代码只需要一次这种“转换”,在开发者发布安装包前,所以只占用开发者机器的 CPU 时间。
我们假设同样代码量的程序,需要同样多的 CPU 时间,进行从代码到最终能跑的“转换”。那么把这种工作全部放在了开发者的机器上进行的 iOS 显然就更具优势,因为用户在打开 APP 之前不需要再浪费时间进行“转换”,这部分时间由开发者“忍受”了。而 Android 程序启动相对较慢就是因为第二次“转化”需要在打开程序时进行引起的。这两种机制是历史的产物,总体上不能说谁好谁坏,只有适用范围的问题。考虑到手机属于体验要求比较高的设备,显然 iOS 这种机制更合适。所以这两种机制带来的后果就是,iOS 总是比 Android 快,而且是天生的。
现在 ART 的出现代表了什么?代表了 Android 在启动程序时将像 iOS 一样,无须进行第二次“转换”工作了。ART 把第二次“转换”所要使用的时间放在“程序安装时”进行,而不再是“程序启动时”进行。这样做虽然安装程序时要慢一点,但是在使用时就会明显快起来。按我的浅薄理解,就是把以前每次启动程序都要做的工作改成“一次性”的工作,放在用户不那么在乎的安装时完成。这从长期来看也降低了总体的“转换”时间。
试想一个程序,安装后你使用了 N 次。按原先 Dalvik 的方法(术语叫 Just-in-time compilation),N 次启动就需要进行 N 次这样的“转换”。但是按照 ART 的方法(术语叫 Ahead-of-time compilation),不管这个程序你使用几次,都只发生一次“转换”。这也解释了为什么使用 ART 会降低 CPU 的使用频率,进而降低电量的使用。
当然,ART 也会带来其他的负面影响。其一是增加程序安装所需的时间,只是目前还不知道具体会是多少。考虑到其他技术因素,这个时长的增加可能比我为了讲解方便所举的“第二次转换”所需的时长要长一点,但是肯定不会长到无法忍受的地步。据我查到的资料,这个变化对小程序几乎可以忽略不计,受影响的应该是以游戏为主的程序,因为他们本身代码量就更大。不过这跟你获得的收益也是成正比的,因为 ART 可以让你在打开游戏时省更多的时间。如果将来都是“后台安装”的话,对用户体验更是微乎其微,你去看几个新闻这时间就过去了。
第二个缺点是会使安装后的文件占用更多的空间,据称是 10%-20% 的增长。不过不要紧,这个增长指的是对“代码”部分文件的增加,比如一个 100M 的游戏,可能代码只有 20M,剩下 80M 是图片和音乐等文件,所以即便增加 20% 的安装所需空间,也只不过多了 4M 而已,在动辄 16G,32G,甚至 128G 容量的智能手机面前,影响更是微乎其微。
据我了解,ART 这个项目其实在 2 年前就已经开始了,只不过之前一直不受关注,只有零星的报道,毕竟“计划不等于现实”嘛。可是现在 Android 4.4 版本以“开发者预览”的形式将其呈现出来,目的就是让手机厂商、应用开发者等进行测试,从而帮助该项目进行改进。从我得到的信息来看,ART 的稳定性并不差,完全可以胜任日常使用。
dfliaoyue
发表于 2014-4-21 20:41:40 | 显示全部楼层
Kitkat能在512M机上流畅运行不是因为ART !!
1.Kitkat支持小内存的一个企图是部署在手表上,另一个企图使部署在新的低端机上。ok,这是用来用的,不是说说玩的
2.ART根本没有正式出现在Kitkat里。它只是开发者模式里的一个实验性功能,开发者没有义务去兼容ART,Google也不可能把低配机运行好Kitkat的优化寄希望于用户去费劲打开开发者模式再开启ART。
3.那么Kitkat的小内存优化到底在哪里?一是将大量原系统级应用降级,不过多占用空间(如youtube);二是修复RAM泄露的问题,避免机子的RAM静态占用越来越大;三是引入低内存模式,开发者可以进行适配(如512M的Kitkat就不会有通知栏和虚拟键半透明效果)

至于现阶段测试的ART,经过反馈的效果是:动画流畅了,任务切换快了,续航小幅提升,程序运行速度和RAM占用基本没变
pamger
发表于 2014-4-23 12:24:09 来自手机 | 显示全部楼层
文不对题,与miui有什么关系
sevenday
发表于 2014-4-23 18:16:32 | 显示全部楼层
MIUI砍掉这个了吧
88865ff
 楼主| 发表于 2014-4-23 18:18:03 | 显示全部楼层
sevenday 发表于 2014-4-23 18:16
MIUI砍掉这个了吧

已经公测了 有ART 不过我的2S没有  气死了
xzhlksh
发表于 2014-4-23 18:27:31 | 显示全部楼层
88865ff 发表于 2014-4-23 18:18
已经公测了 有ART 不过我的2S没有  气死了

MIUI内测版没有ART选项啊
xzhlksh
发表于 2014-4-23 18:28:30 | 显示全部楼层
dfliaoyue 发表于 2014-4-21 20:41
Kitkat能在512M机上流畅运行不是因为ART !!
1.Kitkat支持小内存的一个企图是部署在手表上,另一个企图使部 ...

系统应用降级?这个没听说啊,,,不过内存泄露是实打实的修复了,4.3的内存泄露过于严重了
夜微凉
发表于 2014-4-23 20:00:19 | 显示全部楼层
据说没有ART。。。
dfliaoyue
发表于 2014-4-23 21:22:26 | 显示全部楼层
xzhlksh 发表于 2014-4-23 18:28
系统应用降级?这个没听说啊,,,不过内存泄露是实打实的修复了,4.3的内存泄露过于严重了

我忘了原文是怎么说的了,反正就是降低系统自带的非核心应用的启动优先级,像youtube这类东西似乎之前很喜欢赖在后台占着RAM或缓存,现在给它一般应用的级别
SUNKESS
发表于 2014-4-29 20:39:32 来自手机 | 显示全部楼层
和MIUI有什么关系!??
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-23 06:20 , Processed in 0.137198 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表