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/ 目录下包含了许多与硬件无关的应用:

  • 摄像头相关(cameraserverCameraExtensionsProxy

  • 传感器相关(FusedLocation

  • 电话/短信服务(TelecomTeleService

  • Rockchip演示应用(RKDeviceTestRkExplorer

这些应用在系统启动时都会被初始化,消耗宝贵的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系统开发者提供一份可操作的应用裁剪实践指南。

相关推荐
千里马学框架18 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台18 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone18 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc19 小时前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo20 小时前
Kotlin 协程中的 Job 结构化并发与取消
android
sun00770021 小时前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼1 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone1 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen1 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone1 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui