标签:div power overlay server apc before 2.7 强制 cache
Mini版本主要是用来测试手机硬件的一款软件,
开机较慢的原因是在开机过程中会的data分区进行加密操作,而这个操作对应内部测试并没有什么用,因此可以去掉。然后是在开机过程中会安装APK,这会占用很多的开机时间,安装的这些APK中有许多并不是必备的,所以去掉那些无用的APK可以缩短开机时间。针对这个,可以设定在编译阶段就不编译这些APK。然后就是开机过程中会有些预优化,其优化的目的是节约手机内存即“用时间来换取空间”的策略。所以对降低开机时间主要在如下3个方面进行操作:
ifeq ($(strip $(MTK_ENCRYPTION_DEFAULT_OFF)),yes) __CFLAGS +=-D__MTK_FDE_NO_FORCEelse ifeq ($(strip $(CUSTOM_CONFIG_MAX_DRAM_SIZE)),0x20000000) __CFLAGS +=-D__MTK_FDE_NO_FORCEelse ifeq ($(strip $(TARGET_BUILD_MMITEST)),true) __CFLAGS +=-D__MTK_FDE_NO_FORCEendififeq ($(strip $(MTK_TEE_SUPPORT)),yes)ifeq ($(strip $(MTK_ENCRYPTION_TYPE_FILE)),yes) __CFLAGS +=-D__MTK_FDE_TYPE_FILEendifendif条件语句ifeq ($(strip $(TARGET_BUILD_MMITEST)),true)会进行判断,如果是编译的MINI软件,会添加__MTK_FDE_NO_FORCE宏定义。在文件fstab.in中会进行判断:
#ifdef __MTK_FDE_NO_FORCE/*打开此项, 即默认不强制加密*/#define FLAG_FDE_AUTO encryptable#else#define FLAG_FDE_AUTO forceencrypt ifeq ($(TARGET_BUILD_MMITEST),true) $(warning skip_before: $(product_MODULES)) product_MODULES := $(filter-out $(MMITEST_SKIP_MODULES),$(product_MODULES)) $(warning skip_after: $(product_MODULES))即如果编译的是TARGET_BUILD_MMITEST版本,会过虑掉mmitest_skip_modules.mk中的模块,所以需要将不需要的APK加入到文件mmitest_skip_modules.mk中。
对文件build/core/dex_preopt.mk中,具体修改如下:
ifeq ($(TARGET_BUILD_VARIANT),eng) ifeq ($(TARGET_BUILD_MMITEST),true) WITH_DEXPREOPT :=true WITH_DEXPREOPT_PIC :=trueelse WITH_DEXPREOPT :=false DONT_DEXPREOPT_PREBUILTS :=false endifendififeq (eng,$(TARGET_BUILD_VARIANT)) ifeq ($(TARGET_BUILD_MMITEST),true) WITH_DEXPREOPT_BOOT_IMG_ONLY ?=falseelse WITH_DEXPREOPT_BOOT_IMG_ONLY ?=true endif ifneq (false,$(WITH_DEXPREOPT_DEBUG_INFO)) PRODUCT_DEX_PREOPT_BOOT_FLAGS +=--generate-mini-debug-info endifendif针对这个问题,需要知道主要的耗时操作在什么地方,然后进行分析后来优化操作。可以通过命令adb shell cat /proc/bootprof来查看开机时的时间消耗情况。同时通过命令adb shell&&pm list package -f查看系统安装的APK情况,然后对无用的APK进行优化。需要注意的是有的APK相关的.so文件是系统所必须的,如果未将这部分APK编译进行系统,会导致系统无法正常开机。
可以将开机过程划分成如下几个阶段来进行分析:
| 第一次开机时间 | ||||
|---|---|---|---|---|
| 开始时间 | 开始标志 | 结束时间 | 结束标志 | |
| preloader | ||||
| lk | ||||
| kernel init | 0 | 7115.804323 | Kernel_init_done | |
| mount pattition | 9506.666791 | INIT:Mount_START | 13455.14742 | INIT:Mount_END |
| android boot | 50378.09604 | Zygote:Preload Start | 62539.99315 | Zygote:Preload End |
| package scan | 77678.46488 | Android:PackageManagerService_Start | 136793.9336 | Android:PMS_READY |
| app initiationlization | 136793.9336 | Android:PMS_READY | 189794.6175 | BOOT_Animation:END |
下面是优化后开机时间的实际情况:
注:
user@user-Lenovo-Product:/local$ adb shell cat /proc/bootprof----------------------------------------0 BOOT PROF (unit:msec)----------------------------------------3220: preloader3667: lk----------------------------------------371.855769: ON865.905540:1-swapper/0: initcall: of_init 227.898155ms893.704540:1-swapper/0: initcall: ramoops_init 17.496000ms952.617924:1-swapper/0: initcall: init_mtk_governor 23.135538ms1021.233232:1-swapper/0: initcall: mt_power_management_init 25.048539ms1301.584079:1-swapper/0: initcall: arm64_device_init 237.500924ms1460.799464:1-swapper/0: initcall: param_sysfs_init 150.824308ms1492.303310:1-swapper/0: initcall: pm_sysrq_init 28.820616ms1554.894772:1-swapper/0: initcall: MTK_M4U_Init 25.420154ms1600.313234:1-swapper/0: probe: probe=platform_drv_probe drv=mtk_cmdq(ffffffc00160fd78)35.709539ms1605.032926:1-swapper/0: initcall: cmdq_init 41.354385ms1730.910926:1-swapper/0: initcall: cfg80211_init 21.485846ms2122.880696:1-swapper/0: initcall: event_trace_init 371.556078ms2261.964774:1-swapper/0: probe: probe=platform_drv_probe drv=mt-pmic(ffffffc001604300)95.811769ms2266.137928:1-swapper/0: initcall: pmic_mt_init 101.656769ms2324.955082:1-swapper/0: initcall: inet_init 33.181154ms2507.386236:1-swapper/0: initcall: populate_rootfs 177.119692ms2735.783313:1-swapper/0: initcall: slab_sysfs_init 145.808231ms2922.011391:1-swapper/0: initcall: pty_init 17.699615ms2960.162160:1-swapper/0: initcall: loop_init 29.996923ms3028.701775:1-swapper/0: initcall: mt_gpufreq_init 17.778692ms3072.091545:1-swapper/0: initcall: hps_init 26.006461ms3098.926776:1-swapper/0: initcall: mtk_uart_init 15.949923ms3283.340622:1-swapper/0: probe: probe=i2c_device_probe drv=pn544(ffffffc0015f64a8)86.596615ms3285.073776:1-swapper/0: probe: probe=platform_drv_probe drv=mt-i2c(ffffffc0016000e8)90.320847ms3289.343622:1-swapper/0: initcall: mt_i2c_init 109.559615ms3336.911699:1-swapper/0: probe: probe=platform_drv_probe drv=Accdet_Driver(ffffffc001601f88)24.650847ms3342.731930:1-swapper/0: initcall: accdet_mod_init 34.558538ms3362.740776:1-swapper/0: initcall: init 18.654000ms3443.727469:1-swapper/0: probe: probe=platform_drv_probe drv=musb-hdrc(ffffffc00160bd38)20.658847ms3445.988392:1-swapper/0: probe: probe=platform_drv_probe drv=musb-mtu3d(ffffffc00160c008)23.848616ms3450.176623:1-swapper/0: initcall: mtu3d_driver_init 29.606231ms3710.967392:1-swapper/0: probe: probe=mtkfb_probe drv=mtkfb(ffffffc001612008)223.363924ms3714.922854:1-swapper/0: initcall: mtkfb_init 231.631924ms3751.890316:1-swapper/0: probe: probe=platform_drv_probe drv=mali(ffffffc001617578)21.980308ms3755.982085:1-swapper/0: initcall: kbase_platform_driver_init 27.714923ms3863.481316:1-swapper/0: probe: probe=i2c_device_probe drv=kd_camera_hw(ffffffc00161a448)57.799539ms3865.574854:1-swapper/0: probe: probe=platform_drv_probe drv=image_sensor(ffffffc00161a1e0)85.040846ms3873.808316:1-swapper/0: initcall: CAMERA_HW_i2C_init 99.528308ms3962.954393:1-swapper/0: probe: probe=platform_drv_probe drv=kd_camera_flashlight(ffffffc00161e258)59.763000ms3969.943778:1-swapper/0: initcall: flashlight_init 75.757616ms4090.410316:1-swapper/0: probe: probe=platform_drv_probe drv=cldma_modem(ffffffc00162d590)108.923078ms4095.188932:1-swapper/0: initcall: modem_cd_init 114.386231ms4153.136394:1-swapper/0: initcall: BTIF_init 39.421231ms4286.060009:1-swapper/0: initcall: mtk_cooler_dtm_init 24.058692ms4339.072932:1-swapper/0: initcall: emi_mpu_mod_init 23.010693ms4364.575009:1-swapper/0: initcall: init 18.190692ms4440.468856:1-swapper/0: probe: probe=platform_drv_probe drv=HardwareInfo(ffffffc001639f08)53.160539ms4443.734163:1-swapper/0: initcall:HardwareInfo_mod_init58.462154ms4575.167471:1-swapper/0: probe: probe=platform_drv_probe drv=mtk-kpd(ffffffc00164df40)15.611769ms4580.932318:1-swapper/0: initcall: kpd_mod_init 22.393846ms4690.719933:1-swapper/0: probe: probe=platform_drv_probe drv=battery_meter(ffffffc001661020)83.773770ms4692.538703:1-swapper/0: probe: pdev=battery_meter(ffffffc001660cd0)86.807769ms4694.067472:1-swapper/0: probe: probe=platform_drv_probe drv=battery_meter_dts(ffffffc0016610d0)89.507462ms4697.669010:1-swapper/0: initcall: battery_meter_init 96.310308ms4747.176241:1-swapper/0: initcall: mt67xx_v2_cpuidle_init 25.403769ms4776.516934:1-swapper/0: initcall: mt_msdc_init 23.781692ms5067.848319:1-swapper/0: probe: probe=platform_drv_probe drv=soc-audio(ffffffc0016774a0)121.699693ms5068.152934:1-swapper/0: initcall: mt_soc_snd_init 123.002000ms5120.639396:1-swapper/0: initcall: inet6_init 32.686385ms5340.091243:1-swapper/0: initcall: enable_ftrace 194.529078ms5373.725781:1-swapper/0: initcall: add_shrinker_debug 30.885000ms5485.367704:1-swapper/0: initcall: mt_dcm_init 88.614615ms5532.398243:1-swapper/0: probe: probe=platform_drv_probe drv=mt-cpufreq(ffffffc0015f0198)35.841154ms5535.746935:1-swapper/0: initcall: _mt_cpufreq_pdrv_init 43.911154ms5543.812781:6-kworker/u16:0: probe: probe=mmc_bus_probe drv=mmcblk(ffffffc001668c40)72.474692ms5670.824782:1-swapper/0: probe: probe=i2c_device_probe drv=stk3x1x(ffffffc0015fd9c8)89.990308ms5682.310166:1-swapper/0: initcall: alsps_init 107.247231ms5707.768705:1-swapper/0: probe: probe=i2c_device_probe drv=BMA2XX(ffffffc0015fe440)21.252154ms5717.638936:1-swapper/0: initcall: acc_init 32.605384ms5784.254397:1-swapper/0: probe: probe=i2c_device_probe drv=bmg250_gyro(ffffffc0015ff168)64.123231ms5802.952705:1-swapper/0: initcall: gyro_init 84.019539ms5820.408705:1-swapper/0: initcall: mag_init 16.166846ms5841.251475:1-swapper/0: initcall: step_c_init 19.552769ms5873.744628:1-swapper/0: initcall: devapc_init 15.065000ms5953.311398:1-swapper/0: initcall: init 62.161462ms6636.759323:1-swapper/0: probe: probe=spi_drv_probe drv=fp_spi(ffffffc00165b6a0)390.230540ms6850.068400:1-swapper/0: probe: probe=platform_drv_probe drv=fp_drv(ffffffc00164daf0)892.541617ms6853.522477:1-swapper/0: initcall: fp_drv_init 898.986541ms6890.832323:1-swapper/0: initcall: battery_init 27.719308ms6939.269631:147-kworker/u16:2: probe: probe=platform_drv_probe drv=battery(ffffffc001663978)42.569539ms6939.860093:147-kworker/u16:2: probe: pdev=battery(ffffffc0016635a8)45.113385ms6939.923785:147-kworker/u16:2: probe: probe=platform_drv_probe drv=battery-dts(ffffffc001663160)46.362692ms7076.133477:1-swapper/0: initcall: clk_debug_init 169.705539ms7110.142478:1-swapper/0: initcall: regulator_init_complete 26.655154ms7124.238862:1-swapper/0:Kernel_init_done7346.506940:6-kworker/u16:0: probe: probe=i2c_device_probe drv=fts(ffffffc00164f200)461.019770ms7380.387632:6-kworker/u16:0: probe: probe=platform_drv_probe drv=mtk-tpd(ffffffc00164e1b0)505.097539ms8436.728096:1-init : INIT:early-init9527.990176:1-init : INIT:late-init9529.631329:1-init : INIT:Mount_START13540.467877:1-init : INIT:Mount_END13564.849262:1-init : setup mobicore perms ++(on fs)13572.114570:1-init : setup mobicore perms --(on fs)15212.874112:1-init : INIT:post-fs16440.699577:1-init : INIT:post-fs-data16635.690577:1-init : post-fs-data: on modem start16951.829809:1-init : INIT:boot17245.023579:1-init : create /data/misc/mcRegistry ++(unencrypted)17246.505271:1-init : create /data/misc/mcRegistry --(unencrypted)17247.555963:1-init : create /data/misc/mcRegistry ++(unencrypted)17249.106502:1-init : create /data/misc/mcRegistry --(unencrypted)17284.131502:328-wmt_loader : probe: probe=platform_drv_probe drv=fm(ffffffc001633d10)47.623538ms20117.511509:340-surfaceflinger : BOOT_Animation:START22752.109976:381-main :Zygote:PreloadStart22901.186131:380-main :Zygote:PreloadStart25185.028905:380-main :Zygote:Preload4161 classes in2124ms25203.203751:381-main :Zygote:Preload4161 classes in2299ms26061.491523:380-main :Zygote:Preload114 obtain resources in405ms26065.363292:381-main :Zygote:Preload114 obtain resources in415ms26087.808215:380-main :Zygote:Preload41 resources in24ms26089.247907:381-main :Zygote:Preload41 resources in22ms26370.564985:380-main :Zygote:PreloadEnd26500.120062:381-main :Zygote:PreloadEnd26715.354986:857-system_server :Android:SysServerInit_START28576.801452:857-system_server :Android:PackageManagerService_Start28886.731453:857-system_server :Android:PMS_scan_START29073.939761:857-system_server :Android:PMS_scan_data:/vendor/overlay30086.105455:857-system_server :Android:PMS_scan_data:/system/framework30408.115379:857-system_server :Android:PMS_scan_data:/vendor/framework30513.919072:857-system_server :Android:PMS_scan_data:/system/custpack/app/unremoveable/priv-app30933.341996:857-system_server :Android:PMS_scan_data:/system/custpack/app/unremoveable/withlibs31652.178228:857-system_server :Android:PMS_scan_data:/system/priv-app34101.119465:857-system_server :Android:PMS_scan_data:/system/app36764.976164:857-system_server :Android:PMS_scan_data:/vendor/priv-app36875.507164:857-system_server :Android:PMS_scan_data:/system/vendor/app37153.869472:857-system_server :Android:PMS_scan_data:/vendor/plugin37226.375626:857-system_server :Android:PMS_scan_END49955.817887:857-system_server :Android:PMS_READY56871.808288:857-system_server : AMS:systemReady56897.408827:857-system_server : AMS:AMS_READY57065.576981:935-ActivityManager: AP_Init:[broadcast]:[com.android.settings]:[com.android.settings/.wifi.WifiPreconfigAPReceiver]:pid:146057140.895520:857-system_server : AP_Init:[service]:[com.android.inputmethod.latin]:[com.android.inputmethod.latin/.LatinIME]:pid:147657350.931367:935-ActivityManager: AP_Init:[broadcast]:[android.process.media]:[com.android.providers.media/.MtpReceiver]:pid:149457426.956059:857-system_server : AP_Init:[service]:[com.android.systemui]:[com.android.systemui/.SystemUIService]:pid:1508:(PersistAP)58150.542907:857-system_server :SystemServer:NetworkManagementService systemReady58427.997369:857-system_server :SystemServer:NetworkStatsService systemReady59029.889063:857-system_server :SystemServer:NetworkPolicyManagerService systemReady59106.422755:857-system_server :SystemServer:ConnectivityService systemReady59417.024295:857-system_server :SystemServer:PhaseThirdPartyAppsCanStart59480.887141:857-system_server : AP_Init:[added application]:[com.android.phone]:[com.android.phone]:pid:1625:(PersistAP)59534.872987:857-system_server : AP_Init:[added application]:[com.mediatek.ims]:[com.mediatek.ims]:pid:1639:(PersistAP)59588.214526:857-system_server : AP_Init:[added application]:[com.mediatek.wfo.impl]:[com.mediatek.wfo.impl]:pid:1653:(PersistAP)59645.845064:857-system_server : AP_Init:[added application]:[se.dirac.acs]:[se.dirac.acs]:pid:1667:(PersistAP)59657.955141:857-system_server : AMS:ENABLE_SCREEN59714.057064:857-system_server :Android:SysServerInit_END64974.737462:496-Binder:340_1 : BOOT_Animation:END64977.551385: OFF----------------------------------------标签:div power overlay server apc before 2.7 强制 cache
原文地址:http://www.cnblogs.com/sayhellowen/p/c52acda1192c871bd5d6cce1a9c6669c.html