Android L開發指南

來源:互聯網
上載者:User

標籤:android   http   java   使用   strong   檔案   

導語:Android下一代作業系統“ L”對開發人員意味著什嗎?ART模式能否讓應用的體驗超越蘋果?

剛剛結束的 Google I/O大會上,Android下一代作業系統“ L”帶來不少驚喜。新系統運行更快、更省電。

然而開發人員對這個新系統也有頗多疑問,比如新的運行模式ART對開發人員意味著什嗎?ART模式能否讓應用的體驗超越蘋果?360首席技術專家任寰認為在ART運行方式下“L”的效能提升在15%到80%之間。同時,ART最佳化了記憶體回收方式,執行效率比現行的Dalvik提高50%以上,減少了執行記憶體回收時對應用帶來的卡頓,使應用運行更流暢。

Android L 運行介面

而在安全性方面,ART和Dalvik相比,安全模型和基本機制沒有變化。但ART有一些細節改進,對安全有協助。比如,安裝時對dex檔案做了更嚴格的驗證。

以下彙集整理了360論壇上開發人員提問最多的6個問題,360首席技術專家任寰做瞭解答,希望可以協助開發人員更好地認識這個全新的系統。

問題1. 為什麼ART能提高效能?

答:主要來自兩方面。

一,預先(Ahead-of-time)編譯。Android應用開發時,產生的Dex檔案包含Java的Byte Code。在Android L以前,預設用Dalvik虛擬機器。應用運行時,Dalvik對Java Byte Code進行解釋執行,或進行Junt-In-Time的編譯。在Android L裡,應用安裝時,用系統工具dex2oat將安裝包中的Dex檔案編譯為ELF格式的執行檔案(.oat檔案)。應用運行時直接執行二進位指令。

二,最佳化記憶體回收(garbage collection)。記憶體回收主要有兩種:(1)gc_concurrent。執行時,Dalvik會在本次gc的開始和結束時會短時間暫停代碼的執行。(2)gc_for_alloc。執行時,會較長時間中斷Java代碼的運行。在ART裡,執行gc_concurrent時,只會暫停代碼一次。執行gc_for_alloc時,中斷Java代碼啟動並執行時間大大縮小了。總體上講,ART裡記憶體回收佔用的開銷比Dalvik少50%以上。減少了記憶體回收時對應用帶來的卡頓,使應用運行更流暢。

問題2. 對應用開發人員來說,需要做什麼適配工作以支援ART。比如重新編譯,打包?

答:對絕大多數開發人員來說,不需要。不論虛擬機器是Dalvik還是ART,安裝包裡所包含的仍然是Dex檔案。由Dex檔案編譯為二進位檔案的工作是在應用安裝時,由裝在裝置上的系統工具dex2oat完成的。

問題3. Android的應用在ART裡運行後,開發人員還能在Java層面進行調試嗎?

答:可以。事實上,應用安裝後,編譯產生的.oat檔案中,包含了原始的Dex檔案。保留Dex檔案有兩個原因:一,需要Dex裡的關於類的資訊,以支援Java反射等操作。二,調試時,要用Dex裡的調試資訊。正由於這個原因,編譯產生的.oat檔案,大小是原始的Dex檔案的兩倍以上。

問題4. 用ART後,效能最終能提高多少?

答:取決於具體的應用。在Google I/O上,Google給的例子是提升兩倍以上。

ART我們實際測試下來,效能提升在15%到80%之間。對於大量使用CPU的應用,效能提升比較明顯。但如果應用程式的時間主要花在調用系統API,提升會小一些。因為很多系統API的代碼主要在底層的.so裡面。

問題5. ART在安全性上有沒有提升?

答:ART和Dalvik相比,安全模型和基本機制沒有變化。但ART有一些細節改進,對安全有協助。比如:一,安裝時對dex檔案做了更嚴格的驗證。二,糾正了Dalvik長期存在的一個物件模型的問題:一個類裡的方法,如果沒有加訪問限制(即沒有用Public,Private,Protected描述),Java規定是package-private方法,不在同一package的子類不能訪問和重載。而Dalvik一直允許子類重載package-private的方法。ART裡做了修改,行為與Java標準一致。

問題6. Android L使用ART後,有什麼要引起注意的地方?

答: 一,因為安裝時進行了預先編譯。應用安裝的時間變長,安裝後產生的檔案變大。

二,如果以DexClassLoader的形式載入代碼,第一次執行時間也會變長。

三,對應用最好進行相容性測試。大多數應用無需修改,但如果應用程式本身對Dex檔案做了處理,比如進行了加殼,可能有相容性問題。

總體來說,Android L十分值得我們期待,今年秋天Google將推出正式版本,不過鑒於目前Android系統片段化的現狀,當前大部分手機無法升級,只能購買新款手機。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.