Board logo

标题: 安卓4.4那个art真的这么牛????? [打印本页]

作者: taishen001    时间: 2013-11-17 00:33     标题: 安卓4.4那个art真的这么牛?????

posted by wap, platform: SONY (Z Ultra)

脱离虚拟机了?????
作者: a4840639    时间: 2013-11-17 00:45

我在用
性能提升很明显,微信朋友圈都丝般顺滑
兼容性还是挺不错的,连PPSSPP都没问题(其实潜台词是Drastic会崩溃)
但是没看出哪里省电,今天一上午居然用掉了两个小时的CPU时间
作者: tantan11    时间: 2013-11-17 00:47

安装应用时编译为本地代码。
作者: elia    时间: 2013-11-17 00:59

90%以上的用不到4.4.
作者: 乌鸦    时间: 2013-11-17 01:29

引用:
原帖由 elia 于 2013-11-17 00:59 发表
90%以上的用不到4.4.
你的意思是没法升级到4.4吧,反正现在的也能凑合,下台机器一定要4.4了
作者: taishen001    时间: 2013-11-17 02:00

posted by wap, platform: SONY (Z Ultra)
引用:
原帖由 @a4840639  于 2013-11-17 00:45 发表
我在用
性能提升很明显,微信朋友圈都丝般顺滑
兼容性还是挺不错的,连PPSSPP都没问题(其实潜台词是Drastic会崩溃)
但是没看出哪里省电,今天一上午居然用掉了两个小时的CPU时间
质的提升?????
作者: cc0128    时间: 2013-11-17 05:45

posted by wap, platform: Chrome
引用:
原帖由 @elia  于 2013-11-17 00:59 发表
90%以上的用不到4.4.
现在猴机更新比以前快太多,4.0以上的设备已经占了有70%了.
也就是一年多的时间。4.4以上版本的普及率可以达到或接近50%。

本帖最后由 cc0128 于 2013-11-17 05:56 通过手机版编辑
作者: neo1tgfc    时间: 2013-11-17 07:13

posted by wap, platform: Samsung

当然了,思般顺滑
作者: xu33    时间: 2013-11-17 08:34

posted by wap, platform: iPhone

能上个视频吗 如果微信不卡了 我马上换安卓
作者: u571    时间: 2013-11-17 08:54

我觉得5.0甚至都可以不用java了,直接编译好ARM原生代码包就往 LAY上面扔了
作者: 阿隆索    时间: 2013-11-17 09:07

也许人们在得知 Google+ 新发布的 Android 系统版本名称为 4.4 时都不以为然,认为这个升级十分微不足道,只升级了 0.1 的版本号,启用了 KitKat 的新代号而已。就算是 Google+ 官方,对待此次升级也是颇为低调。可是如果了解了Android 4.4所暗示的变化时,我觉得所有 Android 开发者和其他利益相关者都必须打起十二分精神对看待 Android 4.4 了。

当官方发布 Android KitKat 4.4 时,我简单浏览了一下 Google+ 上官方账户发布的对该系统的简介,觉得值得关注的只有两点:1)对内存的需求降低了,2)支持更多的 Sensor。综合起来,就是为可穿戴设备开路。确实没有更多的亮点可言,只是顺应了大的发展方向而已。随后我图个性价比,预定了Nexus 5,到手试用后第一感觉是“物美价廉”,对系统本身没有太大的感觉。

后来为了进行开发测试,我打开了“开发者模式”,其中有一个选项引起了我的注意,叫“选择运行时环境”,这是之前版本都没有的选项,可选项有 Dalvik 和 ART(默认是 Dalvik),Dalvik 即 Android 一直以来使用的运行方式。为了弄明白这到底是个什么东西,我试着在 Google 上搜了一下,直接改变了我对 4.4 版本存在意义的看法。

简单地说,就是 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 的稳定性并不差,完全可以胜任日常使用。

这也是为什么我会说,Android 4.4 的 ART 选项可能预示着 Android 5.0 系统会出现重大改变--彻底从Dalvik转换到ART。
作者: yiwenzi    时间: 2013-11-17 09:22

posted by wap, platform: UC

每次Android更新都能更流畅
原来那到底是多么的卡啊
作者: 十步一杀    时间: 2013-11-17 09:31

posted by wap, platform: iPhone
引用:
原帖由 @yiwenzi  于 2013-11-17 09:22 发表
posted by wap, platform: UC

每次Android更新都能更流畅
原来那到底是多么的卡啊
别侵权,丝般顺滑基础上更加顺滑是我大苹果的专利。

本帖最后由 十步一杀 于 2013-11-17 09:33 通过手机版编辑
作者: aironline    时间: 2013-11-17 09:35

看介绍原理很简单啊,为什么以前一直用那么没效率的方式?短笛的练功服?
作者: mephisto    时间: 2013-11-17 09:37

哪次更新不是前景一片光明,结果顺滑的还是那几个,开发者不按理出牌你也没辙不是
作者: 黑暗骑士巫妖王    时间: 2013-11-17 09:45

posted by wap, platform: 华为
引用:
原帖由 @yiwenzi  于 2013-11-17 09:22 发表
posted by wap, platform: UC

每次Android更新都能更流畅
原来那到底是多么的卡啊
苹果也是啊
作者: amour123    时间: 2013-11-17 09:48

N4开始推送4.4了么
作者: neo1tgfc    时间: 2013-11-17 09:51

posted by wap, platform: Android

Android本身是作为一揽子移动设备的解决方案,初衷不是只为手机而开发的,而 java好处就是你的应用可以在任何平台运行,不管他是手机,电视盒,相机。为了快速构建生态,google这样选择非常明智,现在推出一次编译技术,可以说是 java历史上的里程碑,意味着顺滑在5.0将有飞跃。apple的优势又少了一个
作者: wpang    时间: 2013-11-17 09:58

posted by wap, platform: iPhone
引用:
原帖由 @十步一杀  于 2013-11-17 09:31 发表
posted by wap, platform: iPhone

别侵权,丝般顺滑基础上更加顺滑是我大苹果的专利。

本帖最后由 十步一杀 于 20131117 09:33 通过手机版编辑  
苹果用户每次升级完都说比原来卡了好吗
作者: 黑暗骑士巫妖王    时间: 2013-11-17 10:00

posted by wap, platform: Chrome
引用:
原帖由 @amour123  于 2013-11-17 09:48 发表
N4开始推送4.4了么
搞不懂为什么要等ota推送?现在放出的本来就是ota包啊,刷进去又不影响你安装的软件和数据。
作者: 黑暗骑士巫妖王    时间: 2013-11-17 10:00

posted by wap, platform: Chrome
引用:
原帖由 @neo1tgfc  于 2013-11-17 09:51 发表
posted by wap, platform: Android

Android本身是作为一揽子移动设备的解决方案,初衷不是只为手机而开发的,而 java好处就是你的应用可以在任何平台运行,不管他是手机,电视盒,相机。为了快速构建生态,google这样选择非常明智,现在推出一次编译技术,可以说是 java历史上的里程碑,意味着顺滑在5.0将有飞跃。apple的优势又少了一个
我觉得ART以后java的优势更大,因为开发者做一次就可以适应不同的架构,苹果的技术应该不行吧?
作者: a4840639    时间: 2013-11-17 10:03

posted by wap, platform: Nexus 7

貌似ART编译用的也是LLVM
从某种程度上属于“苹果技术”
作者: DvRyu    时间: 2013-11-17 10:07

有4.4,未必有art
老版的Nexus 7和10都有4.4,但无ART
目前ART貌似只支持高通的CPU?
作者: panqk    时间: 2013-11-17 10:11

posted by wap, platform: Galaxy Note III

哈哈哈哈哈
作者: taishen001    时间: 2013-11-17 10:15

意思是就是脱离JAVA了???
作者: 黑暗骑士巫妖王    时间: 2013-11-17 11:15

posted by wap, platform: Chrome
引用:
原帖由 @a4840639  于 2013-11-17 10:03 发表
posted by wap, platform: Nexus 7

貌似ART编译用的也是LLVM
从某种程度上属于“苹果技术”
只是作者5年后被APPL雇佣了,三星也雇用过CM的开发者,但是不能说小米就是用的三星技术
作者: 黑暗骑士巫妖王    时间: 2013-11-17 11:17

posted by wap, platform: Chrome
引用:
原帖由 @taishen001  于 2013-11-17 10:15 发表
意思是就是脱离JAVA了???
不是,是把java编译成更接近机器语言的代码,就像C#或者OBJ-C一样
作者: chronicle1st    时间: 2013-11-17 11:24

posted by wap, platform: ZTE (U956)

网上有统计图,效率在java和c之间,现阶段也没这么大用,很多软件还没适配art
作者: 阿喀牛斯    时间: 2013-11-17 11:49

效率只能达到JNI的1/2,JNI在Android上已经很普及了。
换句话说,大型应用用了ART毫无效果,小型应用效率微有提升。

所谓Android都是用虚拟机,跨平台什么都是老黄历了,连X86原生应用都寥寥无几,ARM一统Android,实装商用的“跨平台”也就X86一家,还得靠虚拟ARM指令集来兼容JNI。
作者: Fuero    时间: 2013-11-17 12:13

安卓一年比一年丝滑,苹果一年比一年卡咯
作者: sig1b    时间: 2013-11-17 12:29

安卓虚拟机应该是最短板,但是最兼容打下了江山。
作者: 阿喀牛斯    时间: 2013-11-17 12:44

引用:
原帖由 sig1b 于 2013-11-17 12:29 发表
安卓虚拟机应该是最短板,但是最兼容打下了江山。
99%的安卓都是ARM的,不兼容其他CPU对市场占有率一点影响都没有。
作者: HMILY送的注册码    时间: 2013-11-17 13:28

比如一个 100M 的游戏,可能代码只有 20M,剩下 80M 是图片和音乐等文件
20m的代码量
他妈的写十几年啊
作者: luokezhu    时间: 2013-11-17 14:54

感觉用处不大,需要高性能的app都用ndk了
作者: KARUTO    时间: 2013-11-17 15:00

posted by wap, platform: iPhone
引用:
原帖由 @阿喀牛斯  于 2013-11-17 12:44 发表
99%的安卓都是ARM的,不兼容其他CPU对市场占有率一点影响都没有。
ARM7 ARM11的库也不一样啊!还有Java的c工作环境并不独立,就没有纯c,jnl还是Java程序调用c库,在运行的时候还是有一次解释工作。
作者: 纪念    时间: 2013-11-17 17:58

posted by wap, platform: GOOGLE (Nexus 4)

更耐用倒是真的。。
作者: somissu    时间: 2013-11-17 21:26

posted by wap, platform: Android

如果只是提前转制的话,为什么有的应用会闪退呢?
pad就直接闪退,美服日服都一样
作者: yaoppp    时间: 2013-11-17 21:58

posted by wap, platform: GOOGLE (Nexus 4)

别的不知道,游戏反正有几个不能玩了
作者: neo1tgfc    时间: 2013-11-17 22:22

引用:
原帖由 somissu 于 2013-11-17 21:26 发表
posted by wap, platform: Android

如果只是提前转制的话,为什么有的应用会闪退呢?
pad就直接闪退,美服日服都一样
这个就是beta版而不是正式版的原因。估计明年这个时候出5.0的时候就正常了。选择一个能升级5.0的设备还是很重要的
作者: amour123    时间: 2013-11-17 22:27

PAD会闪退?  不敢更新了。。
作者: heven2004    时间: 2013-11-17 22:34

昨天刚把N7II升到4.4,进开发者选项切换到ART,试了几个应用,我脑海中浮现俩字“革命”!
作者: littlezoo    时间: 2013-11-17 23:01

posted by wap, platform: SONY (Z1)

有这么夸张么,我N7 2013刷了CM,没法OTA官方4.4了,等CM出了再试试
作者: somissu    时间: 2013-11-17 23:13

posted by wap, platform: Android
引用:
原帖由 @amour123  于 2013-11-17 22:27 发表
PAD会闪退?  不敢更新了。。
没,4.4本身可以玩。但如果选这个模式的话就不行。
作者: magtree    时间: 2013-11-17 23:24

希望这次是真的提升……………………不能老这么滑下去…………




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0