編譯預優化
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...