L版本首次開機慢

[DESCRIPTION]

 

L版本上首次開機慢的問題要如何解決呢? 

 

[SOLUTION]

首次開機慢的原因:

 L 版本首次開機會提取所有預置apkodex文件,花費比較多時間。

 L版本默認開啓了加密功能,影響開機時間

解決辦法:

1

對於開機提取odex文件花費較長時間的問題,請在BoardConfig.mk中定義:

WITH_DEXPREOPT := true

打開這個宏之後,無論是有源碼還是無源碼的預置apk預編譯時都會提取odex文件。

對於64bit的芯片,apk只有32bitlib或者只能作爲32bit運行,請在預置apk時在android.mk中添加下邊的TAG標記此apk32bit

LOCAL_MULTILIB :=32

2

若需要在預編譯時跳過一些apkodex提取,可以使用下邊的方法:

\build\core\dex_preopt_odex_install.mk中添加:

ifeq ($(LOCAL_MODULE),helloworld)

LOCAL_DEX_PREOPT:=

endif

 

build_odex:=

installed_odex:=

....

Ifeq包起來的部分爲需要添加的,helloworld可替換爲需要跳過提取odexapkLOCAL_MODULE名字

 

 對於加密功能影響開機的部分,可以關閉加密功能

關閉加密功能有兩種情況:

1         How to disable defaultencryption in your own image

(1)    Modify fstab.{ro.hardware} in‘out’ folder

alps\out\target\product\[project]\root\ fstab.{ro.hardware}

Set the flag back to encryptable for /data

(2)    Re-pack boot.img

make ramdisk-nodeps; makebootimage-nodpes

(3)    Download the new boot.img byflashtool

2         How to disable defaultencryption in your codebase

a)        Modify fstab.{ro.hardware} in yourcodebase

device\mediatek\ [project]\fstab.{ro.hardware}

If the project doesn’t have it ownfstab.{ro.hardware} . Please create it

Modify device.mk to use the modifiedfstab.{ro.hardware} .

Set the flag back to encryptable for/data

b)        Re-build boot.img

make bootimage

c)        Download the new boot.img by flashtool

 

實際測試情況:

使用手機:mt6752 L user版本

測試情況:

1 關閉WITH_DEXPREOPT且開啓手機加密

首次開機時間:4:40

2        開啓WITH_DEXPREOPT且關閉手機加密

首次開機時間:2:16

上述首次開機時間是mtk內部52手機測試時間,僅供參考。

首次開機時間和貴司具體預置的apk的數量有關。

請知悉,謝謝~

 

注意:

1 不要預置太多apk,儘量減少不必要的apk,太多apk 會導致開機慢。

2 打開WITH_DEXPREOPT 的後,預置太多apk,會導致system.img 過大,而編譯不過。遇到這種情況請調大system.img的大小限制。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章