Android 开机加速优化

文章目录

  • Android 开机加速优化
    • 关闭BootLoader的企鹅
    • 关闭开机动画Android
    • 关闭锁屏
    • 删除预装APP
      • 查看预装APP
      • 删除编译生成的APK
      • 不编译APK
        • 1. 统一配置
        • 2. 修改单个APK的Android.mk
      • 谷歌APP
      • 高通APP
    • 关闭系统服务
    • 修改LOG打印级别
    • 并发加载class和resource等资源
    • readahead机制预加载
    • 测试
      • 1. 关闭系统服务
      • 2. 显示
      • 3. 删除预装APP
      • 4. 其它

关闭BootLoader的企鹅

# kernel/msm-4.9/arch/arm64/configs/msm8953_defconfig
# kernel/msm-4.9/arch/arm64/configs/msm8953-perf_defconfigCONFIG_FRAMEBUFFER_CONSOLE、CONFIG_LOGO
第一个编译选项表示内核支持帧缓冲区控制台,它对应的配置菜单项为:
Device Drivers —> Graphics support —> Console display driver support —> Framebuffer Console support。
第二个编译选项表示内核在启动的过程中,需要显示LOGO,它对应的配置菜单项为:
Device Drivers —> Graphics support —> Bootup logo。内核源码:
/kernel/goldfish/drivers/video/
/kernel/goldfish/drivers/video/logo/注意:默认没开启企鹅图标

关闭开机动画Android

# system/core/rootdir/init.rc
# cat frameworks/base/cmds/bootanimation/bootanim.rcservice bootanim /system/bin/bootanimationclass core animationuser graphicsgroup graphics audiodisabledoneshotwritepid /dev/stune/top-app/tasks关闭服务
# setprop service.bootanim.exit 0
# start bootanim
注意:没起作用,还是有明暗变化的Android logo修改:
#  vi frameworks/base/cmds/bootanimation/bootanimation_main.cpp
直接注释main()方法的内容
不显示Android logo,但是没有看到明显的改善

关闭锁屏

# frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_lockscreen_disabled">true</bool>

删除预装APP

查看预装APP

adb shell pm list packages > all.txt
package:com.android.cts.priv.ctsshim
package:com.qualcomm.qti.qms.service.telemetry
package:com.qualcomm.qti.perfdump
package:com.android.internal.display.cutout.emulation.corner
package:com.android.internal.display.cutout.emulation.double
package:com.android.providers.telephony
package:com.verizon.dmclientupdate
package:com.android.providers.calendar
package:com.android.providers.media
package:com.adups.dmc
package:com.qualcomm.qti.modemtestmode
package:com.android.wallpapercropper
package:com.quicinc.cne.CNEService
package:com.android.protips
package:com.android.documentsui
package:com.android.externalstorage
package:com.qualcomm.uimremoteclient
package:com.android.htmlviewer
package:com.qualcomm.qti.uceShimService
package:com.android.companiondevicemanager
package:com.android.mms.service
package:com.qualcomm.qti.qms.service.connectionsecurity
package:com.android.providers.downloads
package:com.qualcomm.qti.callenhancement
package:com.qualcomm.qti.telephonyservice
package:com.qualcomm.qti.auth.fidocryptoservice
package:com.qualcomm.qti.optinoverlay
package:com.android.soundrecorder
package:com.qualcomm.uimremoteserver
package:com.android.defcontainer
package:com.qti.confuridialer
package:com.android.providers.downloads.ui
package:com.android.pacprocessor
package:com.android.simappdialog
package:com.android.settings.overlay.cmcc
package:com.android.internal.display.cutout.emulation.tall
package:com.android.certinstaller
package:com.android.carrierconfig
package:com.android.mms.overlay.cmcc
package:com.qti.qualcomm.datastatusnotification
package:android
package:com.android.contacts
package:org.codeaurora.gallery
package:com.qualcomm.qti.callfeaturessetting
package:com.qualcomm.wfd.service
package:android.ui.overlay.ct
package:com.qti.qualcomm.deviceinfo
package:com.android.egg
package:com.android.mms
package:com.android.mtp
package:com.android.nfc
package:com.android.stk
package:com.android.launcher3
package:com.android.backupconfirm
package:com.qualcomm.qti.server.wigigapp
package:com.android.provision
package:org.codeaurora.ims
package:com.android.statementservice
package:com.android.settings.intelligence
package:com.android.systemui.theme.dark
package:com.qualcomm.qti.dynamicddsservice
package:com.qualcomm.qcrilmsgtunnel
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.android.dreams.basic
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.android.bips
package:com.qti.dpmserviceapp
package:com.qti.xdivert
package:com.android.systemui.overlay.cmcc
package:com.android.musicfx
package:com.android.cellbroadcastreceiver
package:android.telephony.overlay.cmcc
package:android.ext.shared
package:com.android.onetimeinitializer
package:com.qualcomm.qti.simsettings
package:com.android.server.telecom
package:com.android.backup
package:com.android.keychain
package:com.qualcomm.qti.presenceappSub2
package:com.android.printservice.recommendation
package:com.android.dialer
package:android.ext.services
package:com.qualcomm.qti.qtisystemservice
package:com.android.calllogbackup
package:com.verizon.dmbrowser
package:com.android.packageinstaller
package:com.android.carrierdefaultapp
package:com.dsi.ant.server
package:com.qualcomm.qti.remoteSimlockAuth
package:com.android.proxyhandler
package:com.cyanogenmod.filemanager
package:com.android.inputmethod.latin
package:com.qualcomm.qti.ltedirect
package:com.android.managedprovisioning
package:com.android.dreams.phototable
package:com.qualcomm.qct.dlt
package:com.android.smspush
package:com.android.wallpaper.livepicker
package:com.example.connmgr
package:com.qualcomm.qti.presenceapp
package:com.android.apps.tag
package:com.android.storagemanager
package:com.android.bookmarkprovider
package:com.android.settings
package:com.qualcomm.qti.ims
package:com.qualcomm.qti.lpa
package:com.qualcomm.qti.sva
package:com.qualcomm.qti.uim
package:com.qualcomm.location
package:com.qualcomm.simcontacts
package:com.android.cts.ctsshim
package:com.android.systemui.overlay.ct
package:com.caf.fmradio
package:com.qti.diagservices
package:com.qualcomm.qti.services.secureui
package:com.android.vpndialogs
package:com.qualcomm.location.XT
package:com.android.music
package:com.android.phone
package:com.android.shell
package:com.android.wallpaperbackup
package:com.android.providers.blockednumber
package:org.codeaurora.snapcam
package:com.android.providers.userdictionary
package:com.android.emergency
package:com.android.location.fused
package:com.android.deskclock
package:com.android.systemui
package:com.android.exchange
package:com.android.bluetoothmidiservice
package:com.qualcomm.qti.confdialer
package:com.qualcomm.qti.poweroffalarm
package:com.qualcomm.qti.networksetting
package:com.android.traceur
package:com.qualcomm.qti.qms.service.trustzoneaccess
package:com.android.bluetooth
package:com.qualcomm.timeservice
package:com.qualcomm.atfwd
package:com.qualcomm.embms
package:com.android.providers.contacts
package:com.android.captiveportallogin
package:org.codeaurora.qti.nrNetworkSettingApp

删除编译生成的APK

# test
rm -rf out/target/product/msm8953_64/vendor/app/QSensorTest/QSensorTest.apk
rm -rf out/target/product/msm8953_64/system/app/EmbmsTestApp/EmbmsTestApp.apk
rm -rf out/target/product/msm8953_64/system/app/ModemTestMode/ModemTestMode.apk# bluetooth
rm -rf out/target/product/msm8953_64/system/app/BluetoothExt/BluetoothExt.apk
rm -rf out/target/product/msm8953_64/system/priv-app/BATestApp/BATestApp.apk
rm -rf out/target/product/msm8953_64/system/app/BTTestApp/BTTestApp.apk
rm -rf out/target/product/msm8953_64/system/app/HidTestApp/HidTestApp.apk# web
rm -rf out/target/product/msm8953_64/system/app/webview/webview.apk
rm -rf out/target/product/msm8953_64/system/app/HTMLViewer/HTMLViewer.apk

不编译APK

1. 统一配置

去除选项
# build/make/target/product/core.mk
# device/qcom/common/base.mk

2. 修改单个APK的Android.mk

把
LOCAL_MODULE_TAGS := debug # 在debug模式下编译,改成不是debug模式,就不会编译
改成
LOCAL_MODULE_TAGS := samples# 跳过
LOCAL_OVERRIDES_PACKAGES := APP Name

谷歌APP

# 删除APK
Browser2         # 浏览器
Calendar         # 日历
Email            # 邮件
ExactCalculator  # 精确计算器
PrintSpooler     # 打印
QuickSearchBox   # 谷歌搜索vi device/qcom/common/base.mk
vi build/make/target/product/core.mk

高通APP

# 查找APK
find out/target/product/msm8953_64/system/app/ -name  "QSensorTest.apk"# 查找mk文件
find . -type f -name \*.mk | xargs grep TestApp -in
find . -type f -name \*.mk | xargs grep BATestApp -in
find . -type f -name \*.mk | xargs grep QSensorTest -in
find . -type f -name \*.mk | xargs grep EmbmsTestApp -in# BluetoothExt.apk
cat vendor/qcom/opensource/commonsys/bluetooth/hidtestapp/Android.mk
cat vendor/qcom/opensource/commonsys/bluetooth/bttestapp/Android.mk
cat vendor/qcom/opensource/commonsys/bluetooth_ext/BATestApp/Android.mk# cat vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8953_64/Android.mkvendor/qcom/proprietary/sensors/QSensorTest/Android.mk# vi vendor/qcom/proprietary/common/config/device-vendor.mk
# vi vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8953_64/prebuilt.mk
改成simples

关闭系统服务

# frameworks/base/services/java/com/android/server/SystemServer.java关闭服务
VibratorService          震动器服务
ClipboardService         粘贴板服务
FingerprintService       指纹其他服务:
PowerManagerService      电源管理服务
BatteryService           电池服务,当电量不足时发广播
AlarmManagerService      闹钟服务
WallpaperManagerService  壁纸管理服务
StatusBarManagerService  状态栏管理服务
注意:电源服务无法关闭

修改LOG打印级别

并发加载class和resource等资源

# frameworks/base/core/java/com/android/internal/os/ZygoteInit.javaThread t1 = new Thread(new Runnable() {@Override public void run(){long startTimeThread = SystemClock.uptimeMillis();bootTimingsTraceLog.traceBegin("PreloadResources");preloadResources();bootTimingsTraceLog.traceEnd(); // PreloadResourcesLog.i(TAG, "thread:" + (SystemClock.uptimeMillis() - startTimeThread) + "ms.");}
});t1.start();//wait Thread complete.
try
{t1.join();
}
catch (InterruptedException e)
{e.printStackTrace();
}

注意:

  • 失败,不能创建线程,错误提示:java.lang.InternalError: Cannot create threads in zygote
  • 这里总共耗时2.5s左右

readahead机制预加载

测试

1. 关闭系统服务

操作 说明 备注
关闭系统服务 VibratorService 震动器服务
FingerprintService 指纹服务
ClipboardService 粘贴板服务
其他服务:
AlarmManagerService 闹钟服务
WallpaperManagerService 壁纸管理服务
StatusBarManagerService 状态栏管理服务

2. 显示

操作 说明 备注
关闭开机动画 企鹅LOGO
高通LOGO
Android LOGO
OK
开机显示自定义静态LOGO OK
隐藏状态栏 下拉显示 OK
隐藏三大按钮 上拉显示 OK
删除谷歌搜索栏 OK
关闭电量显示和电量的监听 OK
开机不显示No SIM card 提示 OK
屏幕不休眠 OK
系统中文显示 OK
默认开启以太网 OK

3. 删除预装APP

操作 说明 备注
删除谷歌APP Browser2.apk 浏览器
Calendar.apk 计算器
ExactCalculator.apk 计算器
Email.apk 邮箱
PrintSpooler.apk 打印
QuickSearchBox.apk 搜索
OK
删除高通APP BluetoothExt.apk 蓝牙
BATestApp.apk 蓝牙
BTTestApp.apk 蓝牙
HidTestApp.apk 蓝牙
QSensorTest
EmbmsTestApp
OK

4. 其它

操作 说明 备注
修改LOG打印级别 4 4 1 4 OK
开机显示自定义动画LOGO

作者 [@lhgcs]
2020 年 07月 30日

Android 开机加速优化相关推荐

  1. 直播代码,Android开机速度优化

    直播代码,Android开机速度优化的相关方法和代码 cpu升频和task上大核: on init# boost sched tunewrite /dev/stune/schedtune.prefer ...

  2. 浅谈Android开机启动速度优化(含应用程序启动速度优化)

    众所周知Android开机启动速度较慢,于是如何加快启动速度便成为一个值得讨论的问题. 在查阅过许多资料后(特别是Google Group的android-platform),我整理总结出下面几点基本 ...

  3. Android开机启动速度优化 app启动速度优化

    众所周知Android开机启动速度较慢,于是如何加快启动速度便成为一个值得讨论的问题.在查阅过许多资料后(特别是Google Group的android-platform),我整理总结出下面几点基本看 ...

  4. android开机优化服务,Android开机速度优化简单回顾

    Android的开机速度,基本上没人说快的,通常移植完系统后,马上要看的事情就是优化开机时间,以下是简单回忆以下以前做优化的那些事. 开机时间都花在哪? 优化开机时间,通常做的首先是那有有没有BUG, ...

  5. Android开机启动性能优化

    Android 开机启动速度优化 一 在开机启动中,可以借助bootchart 工具分析android的启动过程.bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自 ...

  6. Rockchip Android平台内存优化及系统裁剪

    Rockchip Android平台内存优化及系统裁剪 文章目录 Rockchip Android平台内存优化及系统裁剪 编译32bit的Android系统 启用Android GO的配置 系统裁剪 ...

  7. android 性能优化---(2) MTK 平台开机时间优化

    一.在工程模式开启MTKLogger, 开机后取日志bootprof  adb pull /storage/emulated/0/mtklog/mobilelog/APLog_2018_0309_10 ...

  8. android系统 修改优化,修改Android系统源代码,优化开机速度。

    通常情况下,Android系统开机保持在20s~25s应该算是合格比较好的状态. 最近几天在看关于Android系统开机启动过程的相关内容.做个笔记. 关于有话Android系统开机时间有话,采取三个 ...

  9. Win7开机加速全攻略四:系统服务优化

    IT168 实用技巧]如何加快Windows 7系统的开机速度一直都是大家热议的问题,网络中流传的方法也很多,本站为大家整理了一些加快Windows 7系统的开机速度的方法,在接下去的几天中,将陆续分 ...

  10. 如何用 GPU 硬件层加速优化 Android 系统的游戏流畅度

    作为一款VR实时操作游戏App,我们需要根据重力感应系统,实时监控手机的角度,并渲染出相应位置的VR图像,因此在不同 Android 设备之间,由于使用的芯片组和不同架构的GPU,游戏性能会因此受到影 ...

最新文章

  1. mysql-interview
  2. 2016/08/24 CppCon 2015 Bjarne Stroustrup “Writing Good C++14
  3. 实战:配置DNS客户端域名搜索后缀构造域名进行域名解析
  4. 浅谈Volatile与多线程
  5. 配置phpmyadmin的认证方式 wamp下的phpmyadmin密码修改
  6. 计算机视觉课_计算机视觉教程—第4课
  7. 前端学习(1164):剩余参数02
  8. 函数进阶之生成器和迭代器
  9. SecondaryNameNode 的作用
  10. Like Sunday, Like Rain - JavaScript运算符优先级
  11. 什么软件可以查月经周期,检测月经周期的软件
  12. 三星 android驱动安装失败,三星安卓手机usb驱动安装教程
  13. Sonatype Nexus: Recommended file descriptor limit is 65536 but count is 4096
  14. CSS首字母下沉怎么设置?
  15. 处理器架构 (十五) 国产cpu芯片与架构
  16. 《嫌疑人X的献身》——两个天才之间的思想火花
  17. 一文读懂机器学习中的贝叶斯统计学
  18. 关于封装各英文解释 资料
  19. 长篇好文:提问的智慧
  20. 《互联网保险业务监管暂行办法》

热门文章

  1. [MRCTF2020]你传你马呢
  2. 计算机怎么执行程序代码,代码如何运行?
  3. mysql不等于的写法_mysql 不等于 符号写法
  4. 鸿蒙系统怎么关闭地理位置通知,让隐私无忧,查看和去除照片地理位置信息的App小集合...
  5. bignumber.js API
  6. c++实现矩阵乘法关系矩阵乘法
  7. c语言实验作业感想,c语言程序报告实验总结(共10篇).docx
  8. .NET的.snk文件使用方法和DLL加密
  9. 视频转换gif动图 - 在线gif制作工具
  10. 关于扫雷的c语言程序设计,C语言程序设计扫雷游戏实验报告