RK3568 Android 13开机时间优化-系统应用裁剪实践

目录

前言

[1. 查看系统应用打包情况](#1. 查看系统应用打包情况)

[1.1 挂载 system.img 查看应用列表](#1.1 挂载 system.img 查看应用列表)

[1.2 分析应用归属](#1.2 分析应用归属)

[2. 定位应用打包源文件](#2. 定位应用打包源文件)

[2.1 搜索应用定义位置](#2.1 搜索应用定义位置)

[2.2 关键打包文件分析](#2.2 关键打包文件分析)

[3. 裁剪方案](#3. 裁剪方案)

[3.1 应用裁剪原则](#3.1 应用裁剪原则)

[3.2 裁剪方式](#3.2 裁剪方式)

总结


前言

在嵌入式Android系统开发中,开机时间是用户体验的关键指标之一。RK3568作为一款广泛用于工业平板、智能终端、广告机等场景的国产芯片,其Android 13系统的启动速度直接影响产品的竞争力。

从开机日志分析可以发现,系统预装的大量未使用应用 是拖慢启动速度的主要原因之一。以我的项目为例,system/app/ 目录下包含了许多与硬件无关的应用:

  • 摄像头相关(cameraserver、CameraExtensionsProxy)

  • 传感器相关(FusedLocation)

  • 电话/短信服务(Telecom、TeleService)

  • Rockchip演示应用(RKDeviceTest、RkExplorer)

这些应用在系统启动时都会被初始化,消耗宝贵的CPU和I/O资源。本文将详细讲解如何安全地识别和移除这些"无用"应用,从而缩短开机时间。


1. 查看系统应用打包情况

1.1 挂载 system.img 查看应用列表

首先,需要查看最终编译产物中包含了哪些应用:

bash 复制代码
# 创建挂载目录
mkdir system_mount

# 挂载 system.img(需在源码根目录执行)
sudo mount -o loop out/target/product/rk3568_t/system.img system_mount

# 查看系统应用
ls system_mount/system/app/
# 查看特权应用
ls system_mount/system/priv-app/

执行结果示例:

1.2 分析应用归属

根据应用名称,可以将它们分为几类:

类别 典型应用 说明
AOSP 核心应用 BasicDreams, PrintSpooler, NfcNci 来自 build/make/target/product/handheld_system.mk
Rockchip 厂商应用 RKDeviceTest, RkExplorer, RKUpdateService 来自 device/rockchip/common/modules/rockchip_apps.mk
设备层配置 CameraExtensionsProxy, CarrierDefaultApp 来自 device/rockchip/rk356x/device.mk

2. 定位应用打包源文件

2.1 搜索应用定义位置

使用 grep 命令在源码中搜索应用名,找出是在哪个 .mk 文件中被添加的:

bash 复制代码
# 搜索 RkExplorer 的来源
grep -r "RkExplorer" device/ vendor/ --include="*.mk" 2>/dev/null

# 搜索多个应用
grep -r -E "BasicDreams|NfcNci|PrintSpooler" build/make/target/product/ --include="*.mk"

2.2 关键打包文件分析

bash 复制代码
device/rockchip/common/modules/rockchip_apps.mk

Rockchip 厂商预置应用列表:

bash 复制代码
PRODUCT_PACKAGES += \
    RKDeviceTest \        # Rockchip 硬件测试工具
    Lightning \            # 轻量级浏览器
    LiveWallpapersPicker \ # 动态壁纸选择器
    RkVideoPlayer \       # 视频播放器
    RkExplorer \          # 文件管理器
    StressTest \          # 压力测试工具
    RKUpdateService       # OTA 更新服务
bash 复制代码
build/make/target/product/handheld_system.mk

AOSP 通用手持设备应用列表(部分):

bash 复制代码
PRODUCT_PACKAGES += \
    BasicDreams \          # 屏保
    BlockedNumberProvider \# 黑名单
    BluetoothMidiService \ # 蓝牙MIDI
    BookmarkProvider \     # 书签
    BuiltInPrintService \  # 打印服务
    CalendarProvider \     # 日历
    CameraExtensionsProxy \# 相机扩展
    CaptivePortalLogin \   # 公共WiFi登录
    CertInstaller \        # 证书安装(保留)
    DocumentsUI \          # 文件选择器(保留)
    FusedLocation \        # 融合定位
    ManagedProvisioning \  # 设备管理
    MmsService \           # 彩信
    MtpService \           # MTP传输
    NfcNci \               # NFC
    PrintSpooler \         # 打印队列
    Telecom \              # 电话服务
    TeleService \          # 电话服务
    TelephonyProvider \    # 电话数据(4G上网需要)
    Traceur \              # 系统跟踪
    VpnDialogs \           # VPN对话框
    vr                     # VR服务

3. 裁剪方案

3.1 应用裁剪原则

根据我的硬件配置(无摄像头、无NFC、无GPS、无通话需求、仅有4G上网需求),确定以下裁剪策略:

功能类别 操作 理由
摄像头相关 ❌ 全部删除 无摄像头硬件
NFC/定位 ❌ 全部删除 无NFC/GPS硬件
电话/短信 ❌ 删除UI和通话服务 仅需4G上网,保留 TelephonyProvider
打印服务 ❌ 全部删除 无打印需求
屏保/彩蛋 ❌ 全部删除 纯视觉效果
Rockchip 测试 ❌ 全部删除 终端用户不需要
核心系统 ✅ 必须保留 文件管理器、证书管理、输入设备等

3.2 裁剪方式

在PRODUCT_PACKAGES下注释或删除掉相关应用即可,如

rockchip_apps.mk文件中:

handheld_system.mk文件中:


总结

本文基于 RK3568 Android 13 平台,系统介绍了如何通过裁剪不必要的系统预装应用来优化开机时间。文章详细阐述了从查看系统应用 、定位打包源文件 、修改编译配置的完整流程。通过移除摄像头、NFC、GPS、打印服务等无关应用及Rockchip预置应用(RKDeviceTest、RkExplorer等),显著减少了系统体积并加快了启动速度。本文旨在为Android系统开发者提供一份可操作的应用裁剪实践指南。

相关推荐
应用市场7 小时前
不用一张图片的像素小游戏:小人是字符串,房间是矩形,平衡靠两千个假玩家
android·kotlin·游戏开发
stevenzqzq8 小时前
android 对渠道的理解
android
QEasycloud8 小时前
BOM接口抛转失败钉钉通知策略实战教程:MySQL异常日志到钉钉消息的端到端配置
android·mysql·钉钉
AIsoft_86898 小时前
医患交流内容如何做好记录?
android·iphone
蒸鱼Yuzheng9 小时前
Android Native 崩溃证据链:Tombstone、Build ID 与 Trace 如何联合归因
android·ndk·tombstone·调试符号·崩溃分析
事圆则缓9 小时前
Kotlin 变量与函数:把页面状态和行为写成清楚的契约
android·开发语言·kotlin
hunterandroid9 小时前
MVVM 迁移到 MVI:复杂页面状态如何收敛
android
妖星9 小时前
Android 开机动画定制:从 bootanimation.zip 到源码编译
android
临期冰淇淋10 小时前
MTK平台 安卓16 GMS报错修改
android·java·前端
mmsx10 小时前
Android 模块化三件套:轻量组件化、宿主插件双形态、AIDL 隔离
android·网络·组件化·aidl