欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Android系統執行機制和碎片改變不了嗎

劉柏宏2年前20瀏覽0評論

Android系統執行機制和碎片改變不了嗎?

首先,我們需要知道為什么Android之前很容易卡頓。關于這個答案,一直以來都是眾說紛紜,有人說Android卡是因為系統資源分配不均,有人說是因為用的越久垃圾文件越多,其實這些說法都有道理,但是都沒有說到最基本的根源上。

程序運行機制——已經發生了改變

首先,Android系統在以前其實是一個虛擬機系統,我們知道程序員對Android上APP的編寫過程都是通過Java語言完成的。雖然Android是基于Linux環境開發的操作系統,但是在運行Java編譯的程序時,還是要事先構建出一個可以運行Java語言的虛擬機環境,所以在之前的Android系統中,都存在一個Dalvik虛擬機制。

在之前的Dalvik虛擬機制下,Android每個程序在運行時,都要先創建一個Dalvik虛擬機環境,然后將程序放在虛擬機上運行,你開的程序越多系統負擔就越大,手機就越卡。更蛋疼的是用戶每次使用一款軟件,該軟件都需要先在Dalvik虛擬機中進行編譯,這意味著如果將程序關閉,下次打開時還需重新進行編譯,系統執行效率可想而知。所以在這樣的虛擬機環境中,Android想不卡都難。

安卓執行機制JNI、Dalvik、ART之間的比較 。android L 改動執行機制。

Android L默認採用ART執行環境。全然兼容64位移動處理器。Google稱這將比此前的Dalvik模式性能提高兩倍,可是會占用很多其它的內存空間。Android有三種執行模式:JNI、Dalvik、ART。Dalvik明顯是最慢的,全然的JNI模式是最快的可是開發難度高,ART介于兩者之間。而且不影響現有開發模式,所以Google選了ART。

1)JNI:在開發過程中使用編譯器在C/C++等語言直接編譯成機器碼。執行的時候可以充分利用系統性能,這是最快的。iOS的Object C和Android 的NDK都是這樣的模式。

2)Dalvik:Android L系統之前全部Android版本號的執行方式,採用的是字節碼。在執行的時候解釋執行變成機器可以識別的機器碼。這個過程是比較緩慢的。

3)ART:Android 4.4開始推出的新的執行環境,在APP安裝的時候使用dex2oat工具直接把DEX文件轉換為機器碼文件,執行的時候以機器碼方式執行,可以充分利用系統性能;此外。改進的內存回收機制使得ART執行模式下的內存回收速度僅僅有Dalvik執行時模式下的50%。也可以提升系統執行速度。

所以谷歌在Android 4.4版本的操作系統中第一次加入了ART模式,全稱是Android RunTime,在ART環境下,Android只在程序安裝的時候進行一次編譯,將程序的Java語言轉化為適合Android系統運行的機器語言,然后將編譯后的程序存儲下來,以后每次運行該程序都直接調用編譯后的程序,這樣就避免了程序每次運行時,都要重新編譯的麻煩了。

并且在Android 5.0 Lollipop中,ART架構完全取代了之前的Dalvik架構,之前的低效率編譯正式成為了過去,但是ART模式帶來的問題就是編譯后APP的程序大小會變大,對于手機的存儲空間的要求也變高了,但是在今天這個手機普遍標配64GB的時代,應用所占空間變大應該并不是什么大問題。在之前Android L剛剛推出ART模式的時候,很多應用都還沒有來得及試配,但是在現在Android 7.0時代,ART模式的優點已經完全體現出來了,很多Android手機的系統運行效率已經有了極大的改善。

資源調度問題——暴力手段解決

由于系統的開源本質,Google無法從代碼這一端口約束第三方的應用程序,這導致了Android系統應用質量參差不棄,并且在Android手機中,不同的應用在公平調度下分配CPU、GPU、內存和存儲空間等手機資源,導致各種應用都極力地想為自己爭取更好的運行環境,普通的軟件都這樣,更別說那些流氓軟件了,這些軟件甚至關都關不掉,自動喚醒機制和無限自啟動相當于天生就霸占了一部分系統資源,小編說的什么大家都應該明白。

并且Android系統的應用大家都知道是真正的后臺,程序在進程活動停止后都會保留在內存中,直到系統需要更多內存再釋放這部分資源。所以內存對于Android系統是非常重要的一項配置,我們近年來也看到Android手機上運存的大小越來越大,旗艦機型從3GB一口氣沖到了6GB,要知道Windows XP這個桌面操作系統都只需要2GB就可以流暢運行了!

就是因為Android系統的這個先天“缺陷”的存在,而谷歌在這方面又完全沒辦法像蘋果那樣控制住應用質量,所以堆硬件成為了最好的方法。除此之外,我們在近年來的Android系統中也看到了自啟動管理和應用授權等控制第三方軟件的方法出現,雖然不像iOS那樣效果顯著,但是對于應用調用系統資源也有了一定的有效管理。

系統碎片化問題——廠商的整合、優化工作還需努力。

在Android手機在長時間運行后,會產生很多緩存小文件,如:圖片、小視頻、表情,并且很多Android手機用戶還會將文件保存甚至是應用存在SD卡中,這無疑加重了系統檢索數據的工作量,并且這種“碎片”一樣的文件越多,雖然NAND Flash并不會有磁盤那樣的碎片化,但是也會出現所謂的“臟塊”,導致速度有所下降。華為之前就在Mate 8上使用了文件整理功能,在夜間閑暇時間,對手機做碎片化檢測,并啟動碎片化整理。這最多可以使手機的讀取性能提升達30%。

其實在以上三點都比從前有了很大改善的情況下,部分Android廠商的手機在卡頓等問題上已經不像從前那樣嚴重了,甚至在長時間的使用中達到了iOS使用體驗的標準,我們也看到愿意從iOS轉投Andriod的用戶也越來越多,幾年前的移動操作系統市場基本上是Android和iOS平分秋色。