丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
業(yè)界專題 正文
發(fā)私信給TeaTien
發(fā)送

0

Android L對開發(fā)者意味著什么?

本文作者: TeaTien 2014-06-30 17:55
導(dǎo)語:在結(jié)束不久的 Google I/O 大會上,Android下一代操作系統(tǒng)“Android L”帶來不少驚喜。然而開發(fā)者對這個新系統(tǒng)也有頗多疑問,比如新的運行模式ART對開發(fā)者意味著什么?ART模式能否讓應(yīng)用的體驗超
本文作者/360首席技術(shù)專家?任寰

 
在結(jié)束不久的?Google?I/O?大會上,Android下一代操作系統(tǒng)“Android??L”帶來不少驚喜——新系統(tǒng)號稱運行更快、更省電。

然而開發(fā)者對這個新系統(tǒng)也有頗多疑問,比如新的運行模式ART對開發(fā)者意味著什么?ART模式能否讓應(yīng)用的體驗超越蘋果?我認為在ART運行方式下“L”的性能提升在15%到80%之間。同時,ART優(yōu)化了垃圾回收方式,執(zhí)行效率比現(xiàn)行的Dalvik提高50%以上,減少了執(zhí)行垃圾回收時對應(yīng)用帶來的卡頓,使應(yīng)用運行更流暢。

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

圖:Android?L?運行界面

以下我匯集整理了論壇上開發(fā)者提問最多的6個問題,一并解答,希望可以幫助開發(fā)者更好滴認識這個全新的系統(tǒng)。

問題1.?為什么ART能提高性能?

答:主要來自兩方面。

  • 預(yù)先(Ahead-of-time)編譯

Android應(yīng)用開發(fā)時,生成的Dex文件包含Java的Byte?Code。在Android?L以前,默認用Dalvik虛擬機。應(yīng)用運行時,Dalvik對Java?Byte?Code進行解釋執(zhí)行,或進行Junt-In-Time的編譯。在Android?L里,應(yīng)用安裝時,用系統(tǒng)工具dex2oat將安裝包中的Dex文件編譯為ELF格式的執(zhí)行文件(.oat文件)。應(yīng)用運行時直接執(zhí)行二進制指令。

  • 優(yōu)化垃圾回收(garbage?collection)

垃圾回收主要有兩種:

(1)gc_concurrent。執(zhí)行時,Dalvik會在本次gc的開始和結(jié)束時會短時間暫停代碼的執(zhí)行。

(2)gc_for_alloc。執(zhí)行時,會較長時間中斷Java代碼的運行。在ART里,執(zhí)行g(shù)c_concurrent時,只會暫停代碼一次。執(zhí)行g(shù)c_for_alloc時,中斷Java代碼運行的時間大大縮小了??傮w上講,ART里垃圾回收占用的開銷比Dalvik少50%以上。減少了垃圾回收時對應(yīng)用帶來的卡頓,使應(yīng)用運行更流暢。

問題2.?對應(yīng)用開發(fā)者來說,需要做什么適配工作以支持ART。比如重新編譯,打包?

答:對絕大多數(shù)開發(fā)者來說,不需要。不論虛擬機是Dalvik還是ART,安裝包里所包含的仍然是Dex文件。由Dex文件編譯為二進制文件的工作是在應(yīng)用安裝時,由裝在設(shè)備上的系統(tǒng)工具dex2oat完成的。

問題3.?Android的應(yīng)用在ART里運行后,開發(fā)者還能在Java層面進行調(diào)試嗎?

答:可以。事實上,應(yīng)用安裝后,編譯生成的.oat文件中,包含了原始的Dex文件。保留Dex文件有兩個原因:

  1. 需要Dex里的關(guān)于類的信息,以支持Java反射等操作。
  2. 調(diào)試時,要用Dex里的調(diào)試信息。

正由于這個原因,編譯生成的.oat文件,大小是原始的Dex文件的兩倍以上。

問題4.?用ART后,性能最終能提高多少?

答:取決于具體的應(yīng)用。在Google?I/O上,Google給的例子是提升兩倍以上。

ART我們實際測試下來,性能提升在15%到80%之間。對于大量使用CPU的應(yīng)用,性能提升比較明顯。但如果應(yīng)用程序的時間主要花在調(diào)用系統(tǒng)API,提升會小一些。因為很多系統(tǒng)API的代碼主要在底層的.so里面。

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

答:ART和Dalvik相比,安全模型和基本機制沒有變化。但ART有一些細節(jié)改進,對安全有幫助。比如:

  1. 安裝時對dex文件做了更嚴格的驗證。
  2. 糾正了Dalvik長期存在的一個對象模型的問題:一個類里的方法,如果沒有加訪問限制(即沒有用Public,Private,Protected描述),Java規(guī)定是package-private方法,不在同一package的子類不能訪問和重載。而Dalvik一直允許子類重載package-private的方法。ART里做了修改,行為與Java標準一致。

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

答:主要有這么幾個:

  1. 因為安裝時進行了預(yù)先編譯。應(yīng)用安裝的時間變長,安裝后生成的文件變大。
  2. 如果以DexClassLoader的形式加載代碼,第一次執(zhí)行時間也會變長。
  3. 對應(yīng)用最好進行兼容性測試。大多數(shù)應(yīng)用無需修改,但如果應(yīng)用程序本身對Dex文件做了處理,比如進行了加殼,可能有兼容性問題。

 

總體來說,Android?L十分值得我們期待,今年秋天Google將推出正式版本,不過鑒于目前Android系統(tǒng)碎片化的現(xiàn)狀,當(dāng)前大部分手機無法升級,只能購買新款手機。

 

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:
相關(guān)文章

編輯

接地氣,說人話。 知乎同名:http://www.zhihu.com/people/teatien 歡迎私信
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說