Android P削除DEX最適化コンパイル
Android Pのシステムコンパイルでは,DEX最適化コンパイルを採用している.
単一apkまたはjarデDexコンパイル
システムでコンパイルされたファイルは、oat-arm 64-systemUI.odex -SystemUI.vdex SystemUI.apk
odexとvdexの接尾辞を付けたファイルが生成され、呼び出し中に問題が発生する可能性があります.
DEXを削除してコンパイルを最適化する方法:1、mm WITH_DEXPREOPT=false 2、Android.mkで追加:LOCAL_DEX_PREOPT := false
システム全体のDEXコンパイル
make -j8 WITH_DEXPREOPT=falseエラー:
build/make/core/dex_の変更preopt.mk
ifneq(true,(WI T H D E X P R O P T))をi f e q(t r u e,(WITH_DEXPREOPT))をifeq(true,(WITHD EXPREOPT))に変更しifeq(true,(WITHD_DEXPREOPT))またはifneq(false,$(WITH_DEXPREOPT))に変更するのはデフォルトengコンパイルのためWITH_DEXPREOPTはtrueとして開く必要があります.そうしないと、コンパイルエラーが表示されます.
すなわち、英語以外のlinux構築ではpreoptが有効になっている必要があります.これにより、システムサーバが解釈器としてのみ実行されないようにします.
単一apkまたはjarデDexコンパイル
システムでコンパイルされたファイルは、oat-arm 64-systemUI.odex -SystemUI.vdex SystemUI.apk
odexとvdexの接尾辞を付けたファイルが生成され、呼び出し中に問題が発生する可能性があります.
DEXを削除してコンパイルを最適化する方法:1、mm WITH_DEXPREOPT=false 2、Android.mkで追加:LOCAL_DEX_PREOPT := false
システム全体のDEXコンパイル
make -j8 WITH_DEXPREOPT=falseエラー:
ninja: no work to do.
[1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
No need to regenerate ninja file
Environment variable WITH_DEXPREOPT was set, regenerating...
: error: : DEXPREOPT must be enabled for user and userdebug builds
build/make/core/dex_preopt.mk:55: error: done.
09:51:08 ckati failed with: exit status 1
build/make/core/dex_の変更preopt.mk
# Non eng linux builds must have preopt enabled so that system server doesn't run as interpreter
# only. b/74209329
ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
ifneq (true,$(WITH_DEXPREOPT))
ifneq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
$(call pretty-error, DEXPREOPT must be enabled for user and userdebug builds)
endif
endif
endif
ifneq(true,(WI T H D E X P R O P T))をi f e q(t r u e,(WITH_DEXPREOPT))をifeq(true,(WITHD EXPREOPT))に変更しifeq(true,(WITHD_DEXPREOPT))またはifneq(false,$(WITH_DEXPREOPT))に変更するのはデフォルトengコンパイルのためWITH_DEXPREOPTはtrueとして開く必要があります.そうしないと、コンパイルエラーが表示されます.
すなわち、英語以外のlinux構築ではpreoptが有効になっている必要があります.これにより、システムサーバが解釈器としてのみ実行されないようにします.