您的位置: 首頁 >科技 >

包括比平均安裝AndroidOreo減少50%的存儲空間

2022-09-14 07:29:31 編輯:杭才嘉 來源:
導(dǎo)讀 Android Go是Google基于Android 8.1 Oreo 精簡版的Android ,旨在成為具有1GB或更低RAM的低端設(shè)備的Android優(yōu)化版本。它于去年5月在Go...

Android Go是Google基于Android 8.1 Oreo 精簡版的Android ,旨在成為具有1GB或更低RAM的低端設(shè)備的Android優(yōu)化版本。它于去年5月在Google I / O開發(fā)者大會上宣布, 最終更多細節(jié)在同年12月下旬公布。據(jù)說它將用于下一代入門級設(shè)備,以確保發(fā)展中的設(shè)備仍可以使用功能正常的智能手機來訪問互聯(lián)網(wǎng)并使用應(yīng)用程序。

Go進行了多種性能優(yōu)化和改進,包括比平均安裝Android Oreo減少50%的存儲空間。還要借助Android Runtime(ART)和內(nèi)核優(yōu)化,運行Android Go的設(shè)備的平均運行速度比在同一設(shè)備上安裝常規(guī)Android Oreo的設(shè)備快15%。這些優(yōu)化是通過Google進行的一系列專門的構(gòu)建配置進行的,我們將在后面進行解釋。

Android Go還得益于特殊的“ Go”應(yīng)用程序,例如 Files Go,YouTube Go和Google Maps Go。這些是Google制作的應(yīng)用程序的輕量級版本,它們降低了運行效率的要求。這意味著使用Android Go設(shè)備的用戶可以享受與常規(guī)Android Oreo用戶相同的大多數(shù)好處,從而可以利用Google的應(yīng)用程序套件,而不必花很多錢在旗艦設(shè)備上或價格稍貴的預(yù)算設(shè)備上。

一切都與Google擴大其市場有關(guān)。但這引出了一個問題,即如果Android Go主要由構(gòu)建配置和一組優(yōu)化的Google應(yīng)用組成,那么開發(fā)人員可以自行構(gòu)建Android Go嗎?簡而言之,是的,我們可以。

少數(shù)LineageOS開發(fā)人員已經(jīng)在構(gòu)建Android Go優(yōu)化的自定義ROM

我們已經(jīng)看到一些定制的ROM開發(fā)人員(例如XDA公認(rèn)的開發(fā)人員AdrianDC)正在使用Android Go,他在LineageOS 15.1上的工作采用了Android Go構(gòu)建配置,該配置可用于 幾臺舊的Sony手機。有問題的設(shè)備是Sony Xperia SP,Sony Xperia T,Sony Xperia V和Sony Xperia TX。這些設(shè)備的歷史可以追溯到2012年和2013年,但它們將使用Android Go構(gòu)建配置接收基于Android 8.1 Oreo的LineageOS 15.1,如果設(shè)置了Android Go,則可能允許這些設(shè)備流暢地運行Google'Go'應(yīng)用Gapps最終被釋放。

任何獨立的LOS維護人員都應(yīng)該能夠引入Android Go配置的構(gòu)建,并將其作為一組構(gòu)建配置和其他優(yōu)化。這意味著,例如那些可能購買了Sony Xperia T(在啟動時運行Android 4.0.4 Ice Cream Sandwich)的設(shè)備的人,將能夠在設(shè)備上使用經(jīng)過優(yōu)化的Android 8.1 Oreo版本YouTube Go和Google Maps Go等應(yīng)用程序。它不會在旗艦級性能上運行,但應(yīng)該可以使用 -特別是對于可追溯到2012年的設(shè)備。

Android Go如何幫助較舊的Android手機運行Android Oreo

Android上的構(gòu)建配置是一組參數(shù),這些參數(shù)與Android系統(tǒng)的各個方面有關(guān),這些參數(shù)在編譯系統(tǒng)映像以刷新到設(shè)備上時適用。通常,這些更改會更改系統(tǒng)的行為方式,Android Go的主要優(yōu)化來自這些構(gòu)建配置。

我與XDA公認(rèn)的開發(fā)人員joshuous進行了交談,他幫助我極大地了解了正在發(fā)生的更改-真正使Android Go正常工作的原因。這些構(gòu)建配置中有一些無法重新編譯就無法更改,它們是ROM自身藍圖的一部分。這些是完全大寫的標(biāo)志。

但是,所有這些標(biāo)志都與Android有關(guān)存儲和內(nèi)存使用的許多不同方面有關(guān)。這些措施包括 自動存儲管理,Android的低內(nèi)存殺手,地塞米松(d奧爾維克前 ecutable文件)正在運行的應(yīng)用優(yōu)化和RAM的限制。APK文件由這些DEX文件組成,因此從某種意義上講,可以將APK文件簡單地看作是包含許多.dex文件的ZIP文件,這實際上是Android在執(zhí)行應(yīng)用程序時運行的文件。自動存儲管理將由Files Go應(yīng)用程序而不是Android系統(tǒng)控制。

Android Go實用程序Android的低內(nèi)存模式

在Android 4.4 KitKat中,Google引入了一個名為“ low-ram ” 的新標(biāo)志,旨在支持具有512MB RAM的設(shè)備。它對系統(tǒng)進行了許多優(yōu)化。這些更改對于降低RAM的設(shè)備非常有益。

改進的內(nèi)存管理

經(jīng)過驗證的節(jié)省內(nèi)存的內(nèi)核配置:交換到ZRAM。

如果即將取消緩存并且太大,則殺死已緩存的進程。

不允許大型服務(wù)將自己放回A服務(wù)中(這樣它們就不會導(dǎo)致啟動器被殺死)。

殺死閑置維護過大的進程(甚至是當(dāng)前IME之類的不可殺死的進程)。

序列化后臺服務(wù)的啟動。

調(diào)整低RAM設(shè)備的內(nèi)存使用:更嚴(yán)格的內(nèi)存不足(OOM)調(diào)整級別,較小的圖形緩存等。

上面的這些更改基本上確保了系統(tǒng)通過使用ZRAM來確保盡可能使用壓縮RAM。ZRAM基本上是一個RAMdisk(使用RAM的存儲介質(zhì),比在設(shè)備上使用常規(guī)存儲要快得多)作為交換文件。當(dāng)RAM使用率很高且應(yīng)用程序仍需要內(nèi)存時,將使用交換文件。這比RAM慢得多,并且應(yīng)盡可能避免。本質(zhì)上,它只是壓縮內(nèi)存的內(nèi)容。

減少系統(tǒng)內(nèi)存

修剪了system_server和SystemUI進程(節(jié)省了幾個MB)。

在Dalvik中預(yù)加載dex緩存(保存了幾MB)。

經(jīng)過驗證的JIT-off選項(每個進程最多節(jié)省1.5MB)。

減少了每個進程的字體緩存開銷。

引入了ArrayMap / ArraySet并在框架中廣泛使用,以替代HashMap / HashSet的輕型存儲。

這里最主要的事情就是減少設(shè)備上運行的各種進程的內(nèi)存消耗,以盡可能地保守。基本的系統(tǒng)服務(wù)已被剝離,以在后臺使用盡可能少的內(nèi)存,因為每兆字節(jié)的RAM很重要。

Android Go使用修改后的低內(nèi)存殺手和dex優(yōu)化

鑒于Android Go主要用于具有1GB或更少RAM的設(shè)備,因此將需要更加積極的內(nèi)存管理。Android Go以幾種不同的方式修改了低內(nèi)存殺手(LMK)。首先,當(dāng)大量的RAM用完時,低內(nèi)存消除器將進入“ 臨界壓力 ”狀態(tài)。這是因為當(dāng)內(nèi)存使用率很高時,由于不斷嘗試訪問設(shè)備存儲上的交換文件,系統(tǒng)將變得緩慢。保持RAM干凈將防止系統(tǒng)需要使用此交換文件并防止內(nèi)存崩潰。當(dāng)設(shè)備的內(nèi)存已滿時,就會發(fā)生內(nèi)存顛簸,并且經(jīng)常需要在設(shè)備的存儲設(shè)備上分頁交換文件,從而嚴(yán)重降低性能。

服務(wù)和WiFi服務(wù)設(shè)置為“ 速度配置文件 ”,這意味著這些服務(wù)中的選擇方法是預(yù)先編制(AOT)的。(方法指的是可以在任何位置按名稱調(diào)用的代碼集。)由于Android系統(tǒng)無需連續(xù)重新編譯設(shè)備上運行的基本服務(wù),因此可以減少RAM使用和存儲。同時,共享的APK設(shè)置為“快速”,旨在通過優(yōu)化dex指令來獲得更好的性能,從而延長電池壽命和CPU周期。

在dex優(yōu)化方面,Android Go發(fā)揮了很多作用。對于初學(xué)者,十天后它將降級應(yīng)用程序如果不用于節(jié)省空間。此處降級并不是指應(yīng)用程序的實際版本號降低,而是意味著該應(yīng)用程序的dalvik_cache將被擦除。使用Dalvik緩存是為了使設(shè)備不需要重新編譯應(yīng)用程序,而是僅編譯其中最必要的部分并將其緩存。其余的在運行應(yīng)用程序時使用即時(JIT)編譯器進行編譯。但是,如果該應(yīng)用程序沒有使用10天,那么該應(yīng)用程序的主要部分也將被刪除。這樣做是為了釋放盡可能多的空間。另一個簡單的更改是不允許應(yīng)用程序的RAM使用超過256MB,以便應(yīng)用程序無法使用設(shè)備上的所有RAM。

Android會成為低端設(shè)備上自定義ROM開發(fā)的未來嗎?

當(dāng)前,我們尚不知道解決方案,但是在較舊設(shè)備上定制ROM的發(fā)展前景光明。在設(shè)備上運行較新版本的Android可能還存在其他問題,但是從理論上講,基于Android Oreo升級到更優(yōu)化的Android Go 可以使較舊的低端設(shè)備運行得更好。


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點擊排行

2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。