赞
踩
frameworks/base / services/core/java/com/android/server/pm/PackageManagerService.java
DexoptOptions dexoptOptions = null;
if ((installFlags & PackageManager.INSTALL_FROM_ADB) != 0) {
dexoptOptions = new DexoptOptions(pkg.packageName,
"speed",
DexoptOptions.DEXOPT_BOOT_COMPLETE);
}
else {
dexoptOptions = new DexoptOptions(pkg.packageName,
REASON_INSTALL,
DexoptOptions.DEXOPT_BOOT_COMPLETE);
}
关于应用编译compilation_filter模式说明一下:
1:目前google默认的APK的编译方式compilation_filter为quicken,quicken这种编译模式,空间和内存占用都相对比较小,只是会影响启动速度,并且系统在使用一段时间,或在apk后续有版本更新的时候,APK的编译模式会变成speed-profile模式。总体来说quicken模式还是一种大多数用户和研发公司可以接受的一种编译模式。
speed的编译模式需要占用的空间和内存都比较大。如果将所有应用都修改为speed模式,系统空间system.img将会增大不少。
2:手动修改编译compilation_filter方法的命令如下:
cmd package compile -m speed -f com.google.android.youtube
3:如果只是某个应用启动时间长,可以针对某个应用修改它的编译模式。在android.mk文件中做如下修改即可。
4:所有apk的编译模式都修改为speed,在core/dex_preopt_odex_install.mk文件中做如下修改
ifeq (true,$(LOCAL_DEX_PREOPT_GENERATE_PROFILE))
# For non system server jars, use speed-profile when we have a profile.
LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=speed-profile
else
# If no compiler filter is specified, default to 'quicken' to save on storage.
ifneq ($(strip $(MTK_GMO_ROM_OPTIMIZE)), yes)
LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=speed
else
LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=quicken
endif
endif
endif
5:某个应用需要odex,需要在android.mk文件中做如下修改即可
LOCAL_DEX_PREOPT := true
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。