Android framework裁减

58 阅读12分钟

前言:android系统裁剪优化一直是各个厂商定制产品的关键步骤,包括浅层次的去除不必要的apk(android apk裁剪定制 )和深层次的裁剪整个编译系统和框架层.   android作为开源系统,各个产品同质化严重,只有深层次的裁剪定制自己的系统,才能充分体现各自产品的特性,也是优化各自产品的关键步骤,此篇文章主要关注编译系统和框架层的裁剪,抛砖引玉, 还有很多地方可以改进的地方,基于工作中时间限制,没有彻彻底底的进行,此处只是工作的实战篇,请拍砖引论,apk裁剪请看之前的单独文章(android apk裁剪定制 ).

 

思路:

   android系统大而繁杂,对于不太熟悉android真个框架的朋友可以从真个思路入手:
1.   给予原生的代码镜像,adb shell进入单板, 主要是查看/system文件夹的内容,从这个文件夹入手,裁剪不必要的服务,库文件,apk,等等.

        2.  了解整个编译系统,从编译过程入手,看隐含的可裁剪项,过程和思路很重要。

 

具体裁剪内容:
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包的大小)
2.  external/icu4c/stubdata/icu-data-default.txt: 修改此文件,去除编译出的icu.dat文件大小,去除不需要的语言,重新用脚本生成想要的dat文件
external/skia/Android.mk: 去除其中test的编译
3. 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: 去除不需要的字体
4.  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: 裁剪不必要的资源加载
5.  init.rc: 裁剪不需要的本地服务
system.prop: 裁剪不必要的属性内容

 

以上这些内容可以使得镜像大大的减少,包括参加apk内容,根据实践,镜像减少100M,当然还有可以裁剪的地方,请广大同胞搞点玉出来,我也好学习学习

 

1.系统自带apk作用及是否可删除,系统比较老,原理都差不多的。
Andriod 4.0.4系统包     Andriod 4.1.1系统包     说明      
ApplicationsProvider.apk     ApplicationsProvider.apk     应用程序存储、 程序管理器(不可删)      
BackupRestoreConfirmation.apk     BackupRestoreConfirmation.apk     (不能删)      
Bluetooth.apk     Bluetooth.apk     蓝牙(不能删,你懂的)      
BooksTablet.apk     Books.apk     谷歌读书软件(可删,没用的看书软件,可用GGbook或者其他代替,没啥用,我删了)      
BrowserGoogle.apk     BrowserGoogle.apk     自带浏览器(可删,没啥用,我删了,反正我用UC浏览器)      
Calculator.apk     Calculator.apk     计算器(可删,鸡肋的计算器,可用其他多功能计算器代替,没啥用,我删了)      
CalendarGoogle.apk     CalendarGoogle.apk     日历(可删,鸡肋的日历,我删了,加个中华万年历)      
CalendarProvider.apk     CalendarProvider.apk     日历储存(可删,上面删了这个也要删)      
CameraGoogle.apk           相机(不能删,系统自带的好过其他软件,我已经对比过很多照相软件都没自带的好.原生的强大啊!
CertInstaller.apk     CertInstaller.apk     证书(不能删)      
ChromeBookmarksSyncAdapter.apk     ChromeBookmarksSyncAdapter.apk     书签同步(可删,没啥用,我删了)      
Contacts.apk     Contacts.apk     通讯录(不建议删,自带通讯录)      
ContactsProvider.apk     ContactsProvider.apk     联系人储存(不建议删,如果用QQ通讯录可直接删掉)      
Currents.apk     新鲜汇(4.1.1新增,可删,没用过)      
DefaultContainerService.apk     DefaultContainerService.apk     软件包访问(不能删,删了不能安装软件了)      
DeskClockGoogle.apk     DeskClockGoogle.apk     时钟(可删,可用整点闹钟代替,没啥用,我删了)      
DownloadProvider.apk.     DownloadProvider.apk     下载提供(可删,那个下载内容,没啥用,我删了)      
DownloadProviderUi.apk     DownloadProviderUi.apk     下载提供UI(可删,没啥用,我删了)      
DrmProvider.apk     DrmProvider.apk     DRM受保护数据存储服务(不能删)      
EmailGoogle.apk     EmailGoogle.apk     电子邮件(可删,没用手机看邮件的可删,可用其他代替)      
ExchangeGoogle.apk     Exchange2Google.apk     电子邮件服务(可删,上面删了,这也删)      
FaceLock.apk     FaceLock.apk     人脸识别(不能删,删了就不能通过人脸锁屏了)      
GalleryGoogle.apk     GalleryGoogle.apk     图库 4.1.1包括了相机(不要删,很强大,很好用)      
GenieWidget.apk     GenieWidget.apk     新闻与天气(可删,没用的东西)      
Gmail.apk     Gmail.apk     谷歌邮箱(可删,没用谷歌邮箱都可以删,反正我就删了)      
GmsCore.apk     谷歌PLAY服务(4.1.1新增,可删,不用Google PLAY的可删)      
GoogleBackupTransport.apk     GoogleBackupTransport.apk     谷歌备份传输(建议不删,不喜谷歌者或不需要可删,无FC)      
GoogleContactsSyncAdapter.apk     GoogleContactsSyncAdapter.apk     谷歌联系人同步适配器(可删,不喜谷歌者或不需要可删,无FC)      
GoogleEars.apk     歌曲识别功能(可删,不怎么用)      
GoogleEarth.apk     GoogleEarth.apk     谷歌地球(可删,没啥用的东西,电脑上用还可以,手机简直无用)      
GoogleFeedback.apk     GoogleFeedback.apk     电子市场反馈(可删,不用自带的电子市场就可以删掉这个了,没啥用,反正我就删了)      
GoogleLoginService.apk     GoogleLoginService.apk     谷歌账户管理(可删,谷歌帐户,我从不用谷歌帐号的,我删了)      
GooglePartnerSetup.apk     GooglePartnerSetup.apk     谷歌合作伙伴(可删,要用谷歌的服务的别删.没啥用,我删了)      
GoogleQuickSearchBox.apk           谷歌搜索(可删,要用谷歌搜索的别删.没啥用,我删了)      
GoogleServicesFramework.apk     GoogleServicesFramework.apk     谷歌服务构架(可删,不喜谷歌者或不需要可删,无FC)      
GoogleTTS.apk     GoogleTTS.apk     文字转语音(可删,没啥用的东西,反正我就删了)      
HoloSpiralWallpaper.apk     HoloSpiralWallpaper.apk     不能删,删了出FC      
HTMLViewer.apk     HTMLViewer.apk     HTML查看器(可删,没啥用,反正我删了,无FC)      
InputDevices.apk     4.1.1新增,不能删      
KeyChain.apk     KeyChain.apk     密码管理服务, 系统基本组件, 不可卸载(不能删)      
LatinImeDictionaryPack.apk     LatinImeDictionaryPack.apk     词典大全(可删.没啥用,,无FC)      
LatinImeGoogle.apk     LatinImeGoogle.apk     安卓键盘(可删,没啥用,可百度输入法替代)      
Launcher2.apk     Launcher2.apk     启动器(不能删,删了你就没有桌面,也就是用不了了,除非你用其他桌面软件替代
LiveWallpapers.apk     LiveWallpapers.apk     动态壁纸(可删,上面删看这个也要删)      
LiveWallpapersPicker.apk     LiveWallpapersPicker.apk     动态壁纸选择器(可删,反正我不用动态壁纸的,卡啊!,反正我就删了)      
Magazines.apk     谷歌杂志(4.1.1新增,可删,没怎么用)      
Map.apk     Maps.apk     地图(可删,可用高德地图或者导航替代,没啥用,我删了)      
MediaProvider.apk     MediaProvider.apk     媒体储存(不能删,删除后会出现无法设置铃声)      
MediaUploader.apk     MediaUploader.apk     上传的内容(可删,不发彩信的可删)      
Microbes.apk           微生物动态壁纸(可删,反正我不用动态壁纸的,我删了)      
Mms.apk     Mms.apk     短信(删除后接受不了彩信)      
Music2.apk     Music2.apk     音乐(可删,没有天天动听好用,反正我删了)      
MusicFX.apk     MusicFX.apk     音乐音效(可删,上面删了,这也删)      
NetworkLocation.apk     NetworkLocation.apk     提供网络位置(可删,删除后有时无法定位,GPS好的时候就没影响)
Nfc.apk     Nfc.apk     近场通讯(可删,反正也用不上)      
NoiseField.apk     NoiseField.apk     动态壁纸(可删,反正我不用动态壁纸的,我删了)      
OneTimeInitializer.apk     OneTimeInitializer.apk     (建议不删,刷机后第一次启动用到的,现在没啥用了,我删了)
PackageInstaller.apk     PackageInstaller.apk     打包安装管理(不能删)      
PhaseBeam.apk     PhaseBeam.apk     动态壁纸(可删,反正我不用动态壁纸的,我删了)      
Phone.apk     Phone.apk     手机拨号器(不能删)      
Phoneskyapk     Phonesky.apk     Google play电子市场(可删,反正不用电子市场,删了就不能从google play上下载软件了)      
PlusOne.apk     PlusOne.apk     google+社区软件(可删,没啥用,我删了)      
Settings.apk     Settings.apk     设置(不能删)      
SettingsProvider.apk     SettingsProvider.apk     设置储存(不能删)      
SetupWizard.apk     SetupWizard.apk     设置向导(不建议删,如果删了,在恢复出厂值开机的时候进不去)
SharedStorageBackup.apk     SharedStorageBackup.apk     共享存储备份(不能删)      
SoundRecorder.apk     SoundRecorder.apk     录音机(建议不删,不用的可删)      
Stk.apx     Stk.apk     SIM卡管理程序(不可删)      
Street.apk     Street.apk     谷歌街景(可删,没啥用,我删了,大把软件替代)      
Superuser.apk     Superuser.apk     Root后才有的(当然不能删)      
SystemUI.apk     SystemUI.apk     系统用户界面(不能删)      
TagGoogle.apk     TagGoogle.apk     NFC标记(建议不删,删了NFC功能不能用)      
Talk.apk     Talk.apk     谷歌talk(可删,没啥用,反正我就删了)      
Talkback.apk     talkback.apk     盲人辅助(可删,在辅助功能里的,没啥用,反正我就删了)      
TelephonyProvider.apk     TelephonyProvider.apk     电话信息储存(不能删)      
Thinkfree.apk     Thinkfree.apk     文档软件(可删,没啥用,用其他文档软件可替代)      
UserDictionaryProvider.apk     UserDictionaryProvider.apk     我的字典(不能删,删了这个设置语言和输入法的时候会出现FC)
Velvet.apk     谷歌搜索(4.1.1新增,可删,要用谷歌搜索的别删)      
VideoEditorGoogle.apk     VideoEditorGoogle.apk     电影(可删,没啥用,反正我就删了)      
Videos.apk     Videos.apk     视频(可删,没啥用,反正我就删了)      
VisualizationWallpapers.apk     VisualizationWallpapers.apk     可视化壁纸(可删,反正我不用动态壁纸的,我删了)      
VoiceDialer.apk           语音拨号器(可删,语音?那不如那国产山寨机哦,识别速度慢死了,有后天进程,我删了)      
VoiceSearch.apk           语音搜索(可删,理由同上)      
VoiceSearchStub.apk     语音搜索(4.1.1改名了 不用语音搜索的可删)      
vpnDialogs.apk     vpnDialogs.apk     vpn连接上网管理(不可删)      
YouTube.apk     YouTube.apk     (可删,国内都用不了,都被封了,建议都删)      

 2.不可以删除(15项)

1 AccountAndSyncSettings.apk 同步与帐户设定

2 ApplicationsProvider.apk 应用程序支持服务

3 CertInstaller.apk 证书服务

4 ContactsProvider.apk 通讯录/联系人数据存储服务

5 DefaultContainerService.apk 默认通讯录服务

6 DownloadProvider.apk 下载管理器

7 DrmProvider.apk DRM 受保护数据存储服务

8 googlevoice.apk 这个是电话和短信功能

9 MediaProvider.apk 媒体数据存储服务

10 MtkBt.apk 全球卫星定位系统接收器

11 PackageInstaller.apk 程序安装

12 Phone.apk 电话拨号程序

13 Settings.apk 系统设置

14 SettingsProvider.apk 设置服务程序

15 TelephonyProvider.apk 拨号记录存储服务

建议保留(23项)

1 AcwfDialog.APK 
2 apkCompassCH.apk 超级指南针(建议保留)
3 Bluetooth.apk 蓝牙(删了就没有蓝牙了)建议保留 
4 Calculator.apk 计算器(自带计算器较弱,可用其他替代) 
5 Camera.apk 自带相机(用360的可删) 
6 Contacts.apk 通讯录/联系人(用第三方通讯录的可删) 
7 DataDialog.apk 数据对话框 不确定,没删 
8 DeskClock.apk 自带闹钟(用第三方闹钟的可删) 
9 EngineerMode.apk 工程师模式 不确定,没删 
10 ES_filemanager.apk 资源浏览器(建议保留) 
11 fmradio.apk 收音机(可删) 
12 Gallery3D.apk 相机相框 (可删) 
13 GoLauncher.apk 桌面 
14 Mms.apk 自带信息(可删,用第三方短信的就删了吧,提示:删了后,用handsms的的弹出短信框会变得延时,chomp没自带短信甚至不能使用) 
15 Music.apk 自带音乐(可删,换成其他播放器) 
16 Provision.apk 开机引导程序 
17 SetupWizard.apk 开机引导(在定制rom时不可删,刷好机可用rootexplorer删掉,恢复出厂前要装回去) 
18 SoundRecorder.apk 录音机(可用第三方录音软件替代) 
19 Stk.apk s卡服务(可删,有机油把联系人复制在s卡上的就不要删它,删了可解决信号问题) 
20 Superuser.apk 授权程序(就是程序列表上面那个,用这个获取root才有的) 
21 Term.apk 访问终端的 
22 VolumeControl.apk 音量控制中心 
23 YGPS.apk 这个应该和GPS有关吧

可删除(57项)

1 Browser.apk 谷歌浏览器(喜欢UC的可用UC替代) 
2 Calendar.apk 日历(不用日历的可删) 
3 CalendarProvider.apk 日历程序支持服务(不用日历的可删) 
4 ChtPack.apk touchpal输入法注音语言包(从来不用注音的删) 
5 Email.apk Email(不用自带email接受邮件的可删) 
6 facebook.apk facebook(用不到的删) 
7 GenieWidget.apk 天气与新闻(我自己不用他看新闻,删了) 
8 Gmail.apk Gmail邮件(可删) 
9 GoogleBackupTransport.apk 谷歌备份(可删) 
10 GoogleCalendarSyncAdapter.apk 谷歌日历同步适配器(可删) 
11 GoogleContactsSyncAdapter.apk 谷歌联系人同步适配器(可删) 
12 GoogleFeedback.apk 谷歌反馈(可删) 
13 GooglePartnerSetup.apk 谷歌合作伙伴设置(可删) 
14 GoogleQuickSearchBox.apk 谷歌搜索(删了影响到桌面的搜索插件) 
15 GoogleServicesFramework.apk 谷歌同步支持服务框架(删了不能同步联系人,不能登录google) 
16 HTMLViewer.apk HTML浏览器(本地看html,用不到可删) 
17 HWCalla_TaiWan.apk 繁体中文手写输入法(可写简体的,不用手写的可删) 
18 KaiXinAccountService.apk 未知程序,没敢删 
19 LatinIME.apk android键盘输入法(可删) 
20 LatinImeGoogle.apk 未知程序,没敢删 输入法谷歌,换百度输入了,删 
21 LatinImeTutorial.apk android键盘输入法设置(可删) 
22 Launcher2.apk 2.2原生桌面(用ADW和PRO的可删,删了以后第三方桌面要在开机以后从电脑安装,91,豌豆助手都可) 
23 LiveWallpapers.apk 动态壁纸 
24 LiveWallpapersPicker.apk 同上动态壁纸(可删) 
25 LiveWalls.apk 动态壁纸(可删) 
26 MagicSmokeWallpapers.apk 魔术烟雾壁纸 
27 Maps.apk Google地图(可删,自行换成brust版本) 
28 MarketUpdater.apk 谷歌市场升级(软件更新用到,可删) 
29 MediaUploader.apk 媒体上传(可删) 
30 MMITest_II.apk 工程模式里用到的手机测试程序(可删) 
31 NetworkLocation.apk 网络位置(可删) 
32 NotePad.apk 记事本(可删) 
33 OneTimeInitiaLizer.apk 首次启动时用来装 Google Apps 的,可删除 
34 PicoTts.apk 可删(文字语言转换的语音合成引擎,设置-语音输入与输出中) 
35 PingYinIME.apk 拼音输入法 
36 ProjectMenuAct.apk 工程菜单 
37 Protips.apk 桌面小绿人插件(可删,就是有提示怎么玩手机) 
38 RenRenAccountService.apk 
39 SNSCommon.apk 常见的SNS,不需要,删 
40 SnsContentProvider.apk SnS的内容提供商,删 
41 SnsWidget.apk SnS的小工具,删 
42 SnsWidget24.apk SnS社区,删 
43 Soundback.apk 辅助功能 删 
44 Street.apk 谷歌街道(可删,对于国内街道无效果的貌似,与地图关联) 
45 Talk.apk 谷歌talk(可删,但删了就用不了电子市场) 
46 Talkback.apk 辅助功能 删 
47 TouchPal.apk TouchPal输入法(可删,但自带的三种输入法最好至少保留一种) 
48 TtsService.apk Google TTS(Text-to-speech)语音库服务(可删) 
49 TwidroydFree342-Huawei-rev1.apk twitter客户端(不用的删了) 
50 Updataonline.apk 在线升级(可删) 
51 UserDictionaryProvider.apk 用户数据字典服务(可删) 
52 Vending.apk 电子市场(可删,不过不建议,很多软件的自动升级时候有它很方便) 
53 VisualizationWalls.apk 动态音乐背景壁纸 (删了) 
54 VoiceSearch.apk 语音搜索(可删,虽然看上去很美好,事实上我从未用过) 
55 VpnServices.apk VPN服务(vpn服务,可删) 
56 YouTube.apk YouTube视频(要vpn才能看,删了) 
57 zhuyincangjieIME.apk 注音仓颉输入法,用百度了,删

注:转自网络,特供参考。
--------------------- 
作者:墨尘深巷 
来源:CSDN 
原文:blog.csdn.net/kai_zone/ar… 
版权声明:本文为博主原创文章,转载请附上博文链接!

IOS