android ART編譯預優化

2021-08-16 10:03:32 字數 976 閱讀 4541

編譯預優化

dex檔案編譯比較花費時間。這在ota或者工廠首次燒入程式後非常明顯。

可以在boardconfig.mk檔案中使能編譯預優化,在編譯時將會為apk/jar做dex優化(dex2oat):

with_dexpreopt := true
如果完全的編譯預優化,則system.img的大小將會增加500mb。由於aslr特性,預優化的dex檔案將被轉化並拷貝到data分割槽,所以data分割槽同樣增加500mb。

對於android 5.1,可以使用with_dexpreopt_pic來禁止data分割槽中的優化檔案,只在system分割槽存在編譯預優化的檔案,這會對執行時稍微有些影響,這可以通過在boardconfig.mk中新增編譯選項實現:

with_dexpreopt := true  

with_dexpreopt_pic := true

with_dexpreopt := true  

with_art_small_mode := true

在往後的版本中,該優化選項去掉了。使用如下:

+with_dexpreopt :=

true

+product_property_overrides +=\

+ dalvik.vm.dex2oat-filter

=interpret-only

\+ dalvik.vm.image-dex2oat

-filter

=speed

編譯預優化可能的問題

一類問題是64bit處理器上遇到的abi的適用性問題。

在64bit機器上共享uid非常複雜:

對於所有共享相同uid的apk, 在編譯的.mk檔案中新增local_multilib := both以支援兩個版本的odex。

android ART編譯預優化注意事項

dex檔案編譯比較花費時間。這在ota或者工廠首次燒入程式後非常明顯 可以在boardconfig.mk檔案中使能編譯預優化,在編譯時將會為apk jar做dex優化 dex2oat with dexpreopt true如果完全的編譯預優化,則system.img的大小將會增加500mb。由於as...

ViewPager預載入及其優化

前言 以前用viewpager做輪播圖,左右滑動感覺挺流程,沒感覺有卡頓的現象 但實現現在又用viewpager做日曆,日曆的模組全部是用canvas畫出來的,在這裡有一些演算法要去處理,viewpager左右滑動好像沒那麼流暢了。這個時候我就在想如何優化viewpager,盡量讓它左右滑動的時候不...

前端優化 檔案預載入

xhr和動態插入節點 使用動態插入節點方法載入的檔案都會在載入後立即執行。ie中使用 new image src 去預載入檔案,而其他瀏覽器使用動態插入的 標籤來完成載入。window.onload function o document.createelement object o.data pr...