Android 系统精简思路

Android 系统精简思路

Android 系统精简思路

文章目录

Android 系统精简思路Android框架层次层次(从上往下)移除

删除(还没有删,待确认)不同层次的log另一种删除预装APK方法

Android框架层次

层次(从上往下)

应用程序层(Application)应用程序框架层(Application Framework)运行时库层(Runtime)硬件抽象层(HAL)Linux内核层(Linux kernel)

移除

应用程序层:移除APP/可执行文件(已经删除谷歌和高通的一部分APP了)应用程序框架层:移除资源:图片/音视频/字库/语言包运行时库层(Runtime)硬件抽象层(HAL):移除JNI生成的SOLinux内核层(Linux kernel):移除驱动/关闭后台服务

删除(还没有删,待确认)

字库:frameworks/base/data/fonts铃声:frameworks/base/data/sounds视频:frameworks/base/data/videos键盘:frameworks/base/data/keyboards环境权限等配置:frameworks/base/data/etc安装包:frameworks/base/packagesGoogle VR:frameworks/base/vr

注意

不要删除源文件先把xml里的配置删除,再在Android.mk里删除资源文件名称(即不复制到image中)

1. build/target/product是编译产品关键的mk文件存放处,此处可以更改各个mk文件编译内容进行裁剪

base.mk文件:去除不必要的lib库文件和bin文件

core_minimal.mk:dmtracedump, Shell, HTMLViewer, screencap等工具和apk等

core.mk: libnfc_ndef, mms-common nfc功能库文件和mms短信功能等

embedded.mk:dumpstate, dumpsys

emulator.mk: camera.goldfish , camera.goldfish.jpeg , lights.goldfish , gps.goldfish等

full_base.mk: 去除不需要的库和apk

full_base_telephony.mk: 去除apk和电话功能

generic_no_telephony.mk:去除apk和不必要的库

languages_full.mk,locales_full.mk: 去除不需要的语言设置(可以去除res包的大小)

1. external/icu4c/stubdata/icu-data-default.txt: 修改此文件,去除编译出的icu.dat文件大小,去除不需要的语言,重新用脚本生成想要的dat文件

external/skia/Android.mk: 去除其中test的编译

2. frameworks/base/data/etc/platform.xml: 去除不需要的属性

frameworks/base/data/fonts/Android.mk: 去除不需要的字体

frameworks/base/data/fonts/fallback_fonts.xml: 去除不需要的字体

frameworks/base/data/fonts/fonts.mk: 去除不需要的字体

3. frameworks/base/data/sounds/AllAudio.mk: 去除不需要的声音文件(除了ui的保留,其他都可以去除)

frameworks/base/data/videos/VideoPackage1.mk: 去除不需要的视频文件

frameworks/native/data/etc/handheld_core_hardware.xml: 去除不需要的属性

frameworks/native/data/etc/tablet_core_hardware.xml:去除不需要的属性

frameworks/base/preloaded-classes: 裁剪不必要的资源加载

4. init.rc: 裁剪不需要的本地服务

system.prop: 裁剪不必要的属性内容

不同层次的log

java层:Log.v()framework层:Slog.v()HAL:LOGV()JNI:LOGV()

另一种删除预装APK方法

# device/qcom/msm8953_64/msm8953_64.mk

# 这里定义了PRODUCT_PACKAGES

# build/core/main.mk

# 这里加载了PRODUCT_PACKAGES

# 再过滤过滤

ifdef FULL_BUILD

# The base list of modules to build for this product is specified

# by the appropriate product definition file, which was included

# by product_config.mk.

product_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES)

ifdef BOARD_VNDK_VERSION

product_MODULES += vndk_package

endif

# Filter out the overridden packages before doing expansion

product_MODULES := $(filter-out $(foreach p, $(product_MODULES), \

$(PACKAGES.$(p).OVERRIDES)), $(product_MODULES))

# Filter out executables as well

product_MODULES := $(filter-out $(foreach m, $(product_MODULES), \

$(EXECUTABLES.$(m).OVERRIDES)), $(product_MODULES))

作者 [@lhgcs] 2020 年 09月 03

相关推荐

非洲雄鹰的世界杯梦,争胜在扩军的背景下
beat365正版网站唯一官网app

非洲雄鹰的世界杯梦,争胜在扩军的背景下

📅 07-02 👁️ 8481
火的不只是“苏超”!新疆办了场国际级足球赛|这座城市有点东西
365最专业的数据服务平台

火的不只是“苏超”!新疆办了场国际级足球赛|这座城市有点东西

📅 06-29 👁️ 3761
手机可以看大秀的直播软件排行榜TOP10推荐
beat365正版网站唯一官网app

手机可以看大秀的直播软件排行榜TOP10推荐

📅 07-07 👁️ 222
火的不只是“苏超”!新疆办了场国际级足球赛|这座城市有点东西
365最专业的数据服务平台

火的不只是“苏超”!新疆办了场国际级足球赛|这座城市有点东西

📅 06-29 👁️ 3761
蚰蜓简介
beat365正版网站唯一官网app

蚰蜓简介

📅 07-02 👁️ 1947
做SEO到底好不好?从多个角度剖析SEO的优劣势
beat365正版网站唯一官网app

做SEO到底好不好?从多个角度剖析SEO的优劣势

📅 07-06 👁️ 8315
离开了我们15年,为什么“张国荣”这个符号依然活跃?
beat365正版网站唯一官网app

离开了我们15年,为什么“张国荣”这个符号依然活跃?

📅 07-04 👁️ 5294
3月8日是什么星座 双鱼座性格特点
365bet官方网站

3月8日是什么星座 双鱼座性格特点

📅 07-09 👁️ 7596