Android开机时间系统优化

1. 删除无用的系统应用

1.1. 可删除的系统应用网络参考

1.2. 自己整理的本系统可以删除的应用如下所示:

1.  /system/app 目录: 
CalendarImporter 
EngineerMode 
HyCustomReceiver 
MtkBt(蓝牙相关) 
OmacpAtciService 
CertInstaller 
Exchange2 
SoundRecorderAutoDialer 
DataTransfer 
FWUpgrade 
LiveWallpapers 
MtkWeatherProvider 
PackageInstaller 
SystemUpdateBSPTelephonyDevTool 
DeskClock 
FWUpgradeProvider 
LiveWallpapersPicker 
MtkWeatherWidget 
PhaseBeam 
SystemUpdateAssistantBatteryWarning 
Development 
FileManager 
LocationEM2 
Music PicoTts 
UserDictionaryProviderBluetooth 
DeviceTestApp 
Galaxy4 
MusicFX 
PrintSpooler 
VisualizationWallpapersDocumentsUI 
Gallery2 
MTKLoggerCalculator  
HTMLViewer 
MTKThermalManager 
NlpService 
QuickSearchBoxCalendar 
Email 
HoloSpiralWallpaper 
NoiseField 
SchedulePowerOnOff
2.  /system/priv-app/ 目录: 
BackupRestoreConfirmation 
GooglePinyin 
WiFiTestCalendarProvider 
DownloadProvider 
Tag 
mobileinfo 
Launcher3 
FmRadio 
RaindiAppstore 
Shell

1.33 修改下面文件中的 PRODUCT_PACKAGES 字段的内容,将不需要的内置应用的名称删除,这样可以缩短 scan packages 的过程。

build/target/product/core.mk
build/target/product/full_base.mk
build/target/product/full_base_telephony.mk
build/target/product/generic_no_telephony.mk

同时,可以删除 packages 文件中的不必要的 app 源码,这样可以缩短编译时间。修改完之后,重新 make snod 编译 system.img 镜像即可。

优化效果:开机时间缩短10秒左右。

2. kernel 优化

2.1 在kernel中修改log默认等级

优化效果: 开机时间缩短8s左右。

kernel-3.10/include/linux/printk.h

修改 static inline void console_verbose(void) 函数中的 console_loglevel 的值,从默认的15改成2, 然后重新编译内核

2.2 修改config文件

优化效果:和精简版本进行对比diff的地方不多,修改完之后几乎没有提升速度
在 kernel-3.10 目录运行:

ARCH=arm64 scripts/kconfig/merge_config.sh arch/arm/configs/ap7350_65u_l1_debug_defconfig android/configs/android-base.cfg android/configs/android-recommended.cfg

在本目录下生成 .config 文件,此文件是具有极简的 defconfig,用这个文件和系统的defconfig文件进行对比,进行删减。(可以使用 scripts 目录中的 diffconfig 文件查看两个文件的不同)

3. service 精简

优化效果 :网上其他人说去除动画会提升很多,但是我们的系统效果不明显,1s左右。
修改:

system/core/rootdir/init.rc

去掉开机动画服务 service bootanim
也可以 adb shell 删除动画:

/system/bin/bootanimation

4. doex 优化

优化效果:这个部分系统中已经进行了优化,没有起到优化作用。
ODEX优化
系统已经进行在builde/target/board/里面进行了odex优化

5 preloader 优化

优化效果:没有什么效果。
优化 ZygoteInit 的类预加载 preloaderClasses 和资源预加载 preloaderResources 机制

  • 删除不必要的classes(没有进行尝试,不知道具体删除哪些class)
  • 删除preloader加载的res文件(尝试将所有preloader里面的res文件删除,刷机之后出现不断重启,没有成功)

6、查看系统启动时间的命令

查看精简启动过程:

adb logcat –b events | grep boot
// user space 开始时间
07-06 22:18:00.136 I/boot_progress_start(  407): 15528 
//Zygote 进程preload 开始时间 32bit zygote
07-06 22:18:03.846 I/boot_progress_preload_start(  407): 19238
//Zygote 进程preload 开始时间64bit zygote
07-06 22:18:04.551 I/boot_progress_preload_start(  408): 19943
//Zygote 进程preload 结束时间32bit zygot
07-06 22:18:06.313 I/boot_progress_preload_end(  407): 21705
//Zygote 进程preload 结束时间64bit zygote
07-06 22:18:06.356 I/boot_progress_preload_end(  408): 21747
//System server 开始运行时间
07-06 22:18:06.462 I/boot_progress_system_run( 2182): 21853
//Package Scan 开始
07-06 22:18:06.784 I/boot_progress_pms_start( 2182): 22176
//System 目录开始scan
07-06 22:18:06.899 I/boot_progress_pms_system_scan_start(2182): 22290
//data 目录开始scan
07-06 22:18:38.644 I/boot_progress_pms_data_scan_start(2182): 54036
//package scan 结束时间
07-06 22:18:38.660 I/boot_progress_pms_scan_end( 2182):54052
//package manager ready
07-06 22:18:38.882 I/boot_progress_pms_ready( 2182): 54274
//Activity manager ready,这个事件之后便会启动home Activity。
07-06 22:21:40.221 I/boot_progress_ams_ready( 2182): 235613
//HomeActivity 启动完毕,系统将检查目前所有的window是否画完,如果所有的window(包括wallpaper, Keyguard 等)都已经画好,系统会设置属性service.bootanim.exit值为1.并且trigger下面的event。
07-06 22:21:52.740 I/boot_progress_enable_screen( 2182):248132
Boot_progress_enable_screen表示系统启动完成。

在本项目中因为launcher应用启动速度占用了时间较长,导致ams_ready到enable_screen的时间较长。
查看具体启动过程:abd shell “cat /proc/bootprof”

补充说明:

刷机中遇到的问题
问题:

  • 将preloaderResource删除之后系统不能启动,无法在开发者模式里面将“oem解锁”打开,导致在fastboot oem unlock 时不能成功,从而不能刷入新的系统;
  • 解决办法:
    将fastboot oem unlock改成fastboot oem lock,成功解锁。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,969评论 3 119
  • 我像一具尸体,浑身散发着酸臭味,躺在沙发上。 很快沙发也会散发出跟我一样的汗臭味,并且不久会变成尸臭味。 我边流汗...
    立_adec阅读 191评论 0 0
  • 2018年3月21日加入互加,互加的课让我收获很多,也有惊喜。其实一路走来一路歌,每一次的踏入都有一个小故事。可以...
    彩虹花杨春英阅读 447评论 2 3
  • 没有想好名字 所以就先试试自己吧 我不知道 中国的家庭是怎么氛围 所以我也就不知道是不是就我家是这个样子的 因为这...
    洁宝乖乖阅读 125评论 0 0