安卓手机为什么说在开启ART模式手机会变流畅?
安卓手机中的ART模式到底是什么?为什么说开启ART模式会是手机更加流畅?求解析!
0
Android系统卡顿,是很多用户都知道的事实。不管你使用的是最新的旗舰机型,还是硬件配置一般的实用机型。只要使用时间和安装的应用达到一定数量,Android系统一定会出现卡顿的现象。而谷歌在发布Android 4.4时,曾经宣布,即使是运存空间只为512MB的手机,一样可以流畅的运行系统。很多人都在质疑,因为现在即使是运存空间为3GB的手机,也不敢保证运行Android系统不会出现卡顿的现象。那Google到底依靠什么让Android可以瞬间流畅起来呢?这背后其实就是依靠ART模式。
让Android变卡的Dalvik虚拟机
在解释Android系统为什么会卡顿前,先简单的介绍一下Android系统运行的机制。对Android系统有一定了解的朋友都知道。Android系统运行的程序,都是依靠Java语言编写完成的。虽然Android是基于Linux完成,但是在运行Java程序时,还是要事先构建出一个可以运行Java语言的虚拟机环境,这样Dalvik虚拟机就被Google造出来了。
现在Android每个程序在运行时,都要先创建一个Dalvik虚拟机环境,你开的程序越多系统负担就越大,手机就越卡。而且你每次运行程序时,它们都要先在Dalvik虚拟机中进行编译。如果将程序关闭,再次打开时还需重新进行编译,系统执行效率可想而知。所以在这样的虚拟机环境中,Android想不卡都难。
让Android流畅起来的ART模式
上面说了这么多让Android变卡的原因,那现在说说Google是靠什么让Android变的不卡。ART虚拟机,其实就是Google让Android变流畅的关键。那到底什么是ART虚拟机呢?
被雪藏在原生Android 4.4中的ART模式
ART虚拟机,是在Android 4.4中才出现的新功能,其全称是Android RunTime。不过Google目前还只是将其作为测试功能,所以把它雪藏在开发者选项中。ART虚拟机与Dalvik虚拟机最大的不同,就是对程序的编译方式。在ART虚拟机环境下,Android对程序只进行一次编译,就是在程序安装时。在安装应用时,ART虚拟机就先将程序的Java语言转化为适合Android系统运行的机器语言,而且是一次编译终身受用。这样就免于程序每次运行时,都要重新编译的麻烦了,系统的运行效率被大大提高。可以说正是借助ART虚拟机,Google才能骄傲的说,Android 4.4可以在即使只有512MB运存空间的手机上流畅运行。而且在ART模式下运行程序,会有一种如丝版顺滑的感觉,程序运行和切换都非常流畅。不过在ART模式下,因为现在的主流程序还没有针对ART虚拟机进行优化,所以程序的兼容性比较差。
一个简单的例子说明ART虚拟机的优势
我这里用一个简单的例子来告诉大家ART虚拟机的优势。比如我这里有一盒MM巧克力豆,现在有一种吃法是,每次想吃豆子的时候就把盒子打开,吃完再把盒子盖上,下次想吃就再打开盒子,这种吃豆的方法就相当于Dalvik虚拟机。另外一种吃法是,我把这盒豆子直接倒在碗里,想吃豆子直接从碗里拿,省去了每次打开盒子的麻烦,这种吃豆子的方法就相当于ART虚拟机。通过这个例子,相信大家就能很容易的明白ART虚拟机的优势了。
怎么打开ART模式
以目前可以升级到原生Android 4.4的Moto X为例。首先进入设置,然后选择关于手机,接着连续点击7次版本号以激活开发者选项。在开发者选项中选择运行环境,切换到ART模式并点击确认,待手机重启完成后,就成功进入了ART模式。
左图为ART模式下微博所占空间大小,右图为Dalvik模式下微博所占空间大小
那这么好的功能,为什么Android要将他雪藏在开发者选项中呢?这主要是因为下面的原因:
1)在ART模式下程序安装后所占空间会陡然上升。
2)目前Android的应用还没有针对ART虚拟机进行优化,兼容性不好。
3)在ART模式下耗电速度会变快。
Android系统卡顿,是很多用户都知道的事实。不管你使用的是最新的旗舰机型,还是硬件配置一般的实用机型。只要使用时间和安装的应用达到一定数量,Android系统一定会出现卡顿的现象。而谷歌在发布Android 4.4时,曾经宣布,即使是运存空间只为512MB的手机,一样可以流畅的运行系统。很多人都在质疑,因为现在即使是运存空间为3GB的手机,也不敢保证运行Android系统不会出现卡顿的现象。那Google到底依靠什么让Android可以瞬间流畅起来呢?这背后其实就是依靠ART模式。
让Android变卡的Dalvik虚拟机
在解释Android系统为什么会卡顿前,先简单的介绍一下Android系统运行的机制。对Android系统有一定了解的朋友都知道。Android系统运行的程序,都是依靠Java语言编写完成的。虽然Android是基于Linux完成,但是在运行Java程序时,还是要事先构建出一个可以运行Java语言的虚拟机环境,这样Dalvik虚拟机就被Google造出来了。
现在Android每个程序在运行时,都要先创建一个Dalvik虚拟机环境,你开的程序越多系统负担就越大,手机就越卡。而且你每次运行程序时,它们都要先在Dalvik虚拟机中进行编译。如果将程序关闭,再次打开时还需重新进行编译,系统执行效率可想而知。所以在这样的虚拟机环境中,Android想不卡都难。
让Android流畅起来的ART模式
上面说了这么多让Android变卡的原因,那现在说说Google是靠什么让Android变的不卡。ART虚拟机,其实就是Google让Android变流畅的关键。那到底什么是ART虚拟机呢?
被雪藏在原生Android 4.4中的ART模式
ART虚拟机,是在Android 4.4中才出现的新功能,其全称是Android RunTime。不过Google目前还只是将其作为测试功能,所以把它雪藏在开发者选项中。ART虚拟机与Dalvik虚拟机最大的不同,就是对程序的编译方式。在ART虚拟机环境下,Android对程序只进行一次编译,就是在程序安装时。在安装应用时,ART虚拟机就先将程序的Java语言转化为适合Android系统运行的机器语言,而且是一次编译终身受用。这样就免于程序每次运行时,都要重新编译的麻烦了,系统的运行效率被大大提高。可以说正是借助ART虚拟机,Google才能骄傲的说,Android 4.4可以在即使只有512MB运存空间的手机上流畅运行。而且在ART模式下运行程序,会有一种如丝版顺滑的感觉,程序运行和切换都非常流畅。不过在ART模式下,因为现在的主流程序还没有针对ART虚拟机进行优化,所以程序的兼容性比较差。
一个简单的例子说明ART虚拟机的优势
我这里用一个简单的例子来告诉大家ART虚拟机的优势。比如我这里有一盒MM巧克力豆,现在有一种吃法是,每次想吃豆子的时候就把盒子打开,吃完再把盒子盖上,下次想吃就再打开盒子,这种吃豆的方法就相当于Dalvik虚拟机。另外一种吃法是,我把这盒豆子直接倒在碗里,想吃豆子直接从碗里拿,省去了每次打开盒子的麻烦,这种吃豆子的方法就相当于ART虚拟机。通过这个例子,相信大家就能很容易的明白ART虚拟机的优势了。
怎么打开ART模式
以目前可以升级到原生Android 4.4的Moto X为例。首先进入设置,然后选择关于手机,接着连续点击7次版本号以激活开发者选项。在开发者选项中选择运行环境,切换到ART模式并点击确认,待手机重启完成后,就成功进入了ART模式。
左图为ART模式下微博所占空间大小,右图为Dalvik模式下微博所占空间大小
那这么好的功能,为什么Android要将他雪藏在开发者选项中呢?这主要是因为下面的原因:
1)在ART模式下程序安装后所占空间会陡然上升。
2)目前Android的应用还没有针对ART虚拟机进行优化,兼容性不好。
3)在ART模式下耗电速度会变快。