Android 开机加速优化

时间:2025-02-08 16:18:19

文章目录

  • Android 开机加速优化
    • 关闭BootLoader的企鹅
    • 关闭开机动画Android
    • 关闭锁屏
    • 删除预装APP
      • 查看预装APP
      • 删除编译生成的APK
      • 不编译APK
        • 1. 统一配置
        • 2. 修改单个APK的
      • 谷歌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_defconfig

CONFIG_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/
# cat frameworks/base/cmds/bootanimation/

service bootanim /system/bin/bootanimation
    class core animation
    user graphics
    group graphics audio
    disabled
    oneshot
    writepid /dev/stune/top-app/tasks

关闭服务
# setprop  0
# start bootanim
注意:没起作用,还是有明暗变化的Android logo

修改:
#  vi frameworks/base/cmds/bootanimation/bootanimation_main.cpp
直接注释main()方法的内容
不显示Android logo,但是没有看到明显的改善

关闭锁屏

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

删除预装APP

查看预装APP

adb shell pm list packages > 
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:android
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:.launcher3
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:.presenceappSub2
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:
package:

删除编译生成的APK

# test
rm -rf out/target/product/msm8953_64/vendor/app/QSensorTest/
rm -rf out/target/product/msm8953_64/system/app/EmbmsTestApp/
rm -rf out/target/product/msm8953_64/system/app/ModemTestMode/

# bluetooth
rm -rf out/target/product/msm8953_64/system/app/BluetoothExt/
rm -rf out/target/product/msm8953_64/system/priv-app/BATestApp/
rm -rf out/target/product/msm8953_64/system/app/BTTestApp/
rm -rf out/target/product/msm8953_64/system/app/HidTestApp/

# web
rm -rf out/target/product/msm8953_64/system/app/webview/
rm -rf out/target/product/msm8953_64/system/app/HTMLViewer/

不编译APK

1. 统一配置

去除选项
# build/make/target/product/
# device/qcom/common/

2. 修改单个APK的

把
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/
vi build/make/target/product/

高通APP

# 查找APK
find out/target/product/msm8953_64/system/app/ -name  ""

# 查找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


# 
cat vendor/qcom/opensource/commonsys/bluetooth/hidtestapp/
cat vendor/qcom/opensource/commonsys/bluetooth/bttestapp/
cat vendor/qcom/opensource/commonsys/bluetooth_ext/BATestApp/

# cat vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8953_64/

vendor/qcom/proprietary/sensors/QSensorTest/

# vi vendor/qcom/proprietary/common/config/
# vi vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8953_64/
改成simples

关闭系统服务

# frameworks/base/services/java/com/android/server/

关闭服务
VibratorService          震动器服务
ClipboardService         粘贴板服务
FingerprintService       指纹

其他服务:
PowerManagerService      电源管理服务
BatteryService           电池服务,当电量不足时发广播
AlarmManagerService      闹钟服务  
WallpaperManagerService  壁纸管理服务
StatusBarManagerService  状态栏管理服务
注意:电源服务无法关闭

修改LOG打印级别

并发加载class和resource等资源

# frameworks/base/core/java/com/android/internal/os/

Thread t1 = new Thread(new Runnable() {
    @Override public void run()
    {
        long startTimeThread = ();

        ("PreloadResources");
        preloadResources();
        (); // PreloadResources

        (TAG, "thread:" + (() - startTimeThread) + "ms.");
    }
});

();

//wait Thread complete.
try
{
    ();
}
catch (InterruptedException e)
{
    ();
}

注意:

  • 失败,不能创建线程,错误提示:: 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 浏览器
计算器
计算器
邮箱
打印
搜索
OK
删除高通APP 蓝牙
蓝牙
蓝牙
蓝牙
QSensorTest
EmbmsTestApp
OK

4. 其它

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