本篇博文作为Android 开机优化 的续篇,之前的博文在排查底层耗时比较粗糙。本篇作为补充,提供剖析底层耗时的方法。
优化Bootloader
- 减少不必要的log,最近遇到的开机慢问题就发现UART log没有关闭,这里一般而言能优化1s左右的时间。UART关闭改动kernel config文件的如下:
CONFIG_SERIAL_MSM_HSL=n
CONFIG_SERIAL_MSM_HSL_CONSOLE=n
Android 开机优化 里也提到了可以移除部分无用的kernel config,为了方便check,编写了一个python脚本,可以方便查看哪些无用config依然包含在项目中。
#!/usr/bin/env python
'''
@author: azhengye
'''
import difflib
import sys
_DEFAULT_CAN_REMOVE_CONFIG = [
'CONFIG_SCHED_DEBUG\n',
'CONFIG_DEBUG_KMEMLEAK\n',
'CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE\n',
'CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF\n',
'CONFIG_DEBUG_SPINLOCK\n',
'CONFIG_DEBUG_MUTEXES\n',
'CONFIG_DEBUG_ATOMIC_SLEEP\n',
'CONFIG_DEBUG_STACK_USAGE\n',
'CONFIG_DEBUG_LIST\n',
'CONFIG_FAULT_INJECTION_DEBUG_FS\n',
'CONFIG_LOCKUP_DETECTOR\n'
'CONFIG_DEBUG_PAGEALLOC\n',
'CONFIG_PAGE_POISONING\n',
'CONFIG_RMNET_DATA_DEBUG_PKT\n',
'CONFIG_MMC_PERF_PROFILING\n',
'CONFIG_DEBUG_BUS_VOTER\n',
'CONFIG_SLUB_DEBUG\n',
'CONFIG_DEBUG_BUGVERBOSE\n',
'CONFIG_ALLOC_BUFFERS_IN_4K_CHUNK\n',
'CONFIG_SERIAL_CORE\n',
'CONFIG_SERIAL_CORE_CONSOLE\n',
'CONFIG_SERIAL_MSM_HSL\n',
'CONFIG_SERIAL_MSM_HSL_CONSOLE\n',
'CONFIG_MSM_TZ_LOG\n',
'CONFIG_DYNAMIC_DEBUG\n',
'CONFIG_ANDROID_LOGGER\n&