adb安装模式修改为speed模式

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值