1. 程式人生 > >android系統裁剪之APP精簡

android系統裁剪之APP精簡

    APP精簡的目標是精簡手機root下system/app和system/priv-app兩個目錄裡的APK檔案。

    精簡的手段是:弄清這些應用的用處,搞明白這些應用是否對系統無用,有沒有用需要根據自己的實際情況來判斷,且不可死板跟風網上搜到的。找到對自己無用的然後刪除。

    下面是列出我查到的這兩個目錄下的應用的情況。

    system/app目錄下的apk

裁剪檔案 大小 作用 是否可裁剪
AudioProfile.apk 79K 情景模式下的聲音設定,刪掉會影響原生Setting情景模式設定的使用 建議保留
BasicDreams.apk 25K 基本的互動屏保底層服務程式,跟動態屏保相關,目前來看對背景切換無影響 酌情可以刪除
Bluetooth.apk 441K 藍芽相關應用程式,平臺無藍芽相關功能,可以刪除 酌情可以刪除
Camera2.apk 1.7M 拍照相關功能 不可以刪除
Carddav-Sync.apk 151K 是Android的CardDAV客戶端,用於同步聯絡人 待驗證
CellBroadcastReceiver.apk 160K 小區廣播,可能與電話簡訊相關,具體未知 酌情可以刪除
CertInstaller.apk 29K android證書安裝工具,解除安裝可能會影響應用的安裝 不可以刪除
DeviceTest.apk 210K 工廠測試工具 不可以刪除
DocumentsUI.apk 286K 原生下載工具的UI層,刪除後會影響原生下載工具的使用 酌情可以刪除
DownloadProviderUi.apk 138K DownloadProvider的介面部分的實現 酌情可以刪除
DrmProvider.apk 12K DRM受保護資料儲存服務,具體不詳,高版本Android貌似已經沒這個了 酌情可以刪除
EngineerMode.apk 1.2M 工程師模式 不可以刪除
Gallery2.apk 3.6M 原生看圖軟體 不可以刪除
HTMLViewer.apk 35K HTML檢視器 酌情可以刪除
KeyChain.apk 22K 密碼管理服務, 系統基本元件,有人說會影響撥號盤不能按數字出現相關字母的聯絡人,可進一步驗證是否可刪除 建議保留
PacProcessor.apk 5.6K 處理代理自動配置的,異或是連結電腦的時候用,有說會影響計步軟體的,待驗證。可以刪除 建議保留
PackageInstaller.apk 91K 打包安裝管理(不能刪) 不可以刪除
PrintSpooler.apk 90K 列印服務,framework有多出與此服務進行了繫結 酌情可以刪除
Provision.apk 4.1K  開機載入程式,早於launcher啟動的應用,刪掉後可能會影響物理贏案件的使用(可能是不清分割槽時升級後) 不可以刪除
SGPS.apk 165K 非原生應用,GPS定位相關 不可以刪除
SoundRecorder.apk 244K 原生錄音機 酌情可以刪除
SprdRamOptimizer.apk 75K 展訊平臺以widget的形式來體現的一個記憶體優化工具 不可以刪除
Stk.apk 89K 運營商sim卡應用相關 不可以刪除
TelephonyProvider.apk 154K 電話資訊儲存,影響電話功能 不可以刪除
UserDictionaryProvider.apk 11K 使用者詞典,對原生谷歌輸入法和語言設定有影響 不可以刪除
ValidationTools.apk 538K  手機驗證測試工具,對手機的大部分功能進行測試,比如SIM卡功能,照相機功能,藍芽功能,wifi功能等等,可能與工程師模式應用有關 酌情可以刪除
Validator.apk 61K 手機語音錄製等相關測試工具,可能與工程師模式應用有關 酌情可以刪除
WAPPushManager.apk 7.1K WAP推送服務  酌情可以刪除
modemassert.apk 23K 展訊平臺應用,是socket的client端,開機即啟動,用於介面顯示,可能與工程師模式有關 建議保留

system/priv-app目錄下的apk:

裁剪檔案 大小 作用 是否可裁剪
BackupRestoreConfirmation.apk  16K 選刪,備份還原手機資料到連結電腦的,不用谷歌備份的留著沒啥用 建議保留
CalendarProvider.apk 155K 日曆相關,用來新增在日曆中新增的事項,備忘等,原生日曆會用到,自己寫的日曆也可以用這個來儲存備忘,如果沒有日曆相關的應用,可以刪除 酌情可以刪除
CarrierConfig.apk 103K 與電話服務相關,不可刪除 不可以刪除
Contacts.apk 1.5M 電話聯絡人相關,不可刪除 不可以刪除
ContactsProvider.apk 2.3M 電話聯絡人相關,不可刪除 不可以刪除
DefaultContainerService.apk  15K 軟體包訪問服務,刪除會影響應用的安裝,同時涉及到原生setting儲存部分的某些功能,不可刪除 不可以刪除
Dialer.apk 1.7M 原生撥號器 不可以刪除
DownloadProvider.apk 228K 原生下載管理器,如果使用原生的下載工具則需要保留 酌情可以刪除
ExternalStorageProvider.apk  16K 外接儲存裝置 建議保留
FusedLocation.apk 9.4K 該服務為定位服務的一種,意在降低耗電的同時為有需要的軟體提供後臺或前臺定位服務 不可以刪除
InputDevices.apk  57K 缺少這個檔案會導致資料線連線電腦的時候複製檔案有問題,待驗證 不可以刪除
Keyguard.apk 516K 鎖屏應用,如果刪除的話,可能會產生不可預知的問題,畢竟系統有個跟他關係很緊密的KeyguardManager服務,在系統的很多其他地方也會對當前是否為鎖屏狀態來進行判斷,所以這個要慎重對待 不可刪除
MediaProvider.apk 110K 媒體儲存媒體管理器 不可以刪除
Mms.apk 3.9M 原生簡訊應用 不可以刪除
MusicFX.apk  58K 是一款Android系統專用的音訊控制面板,使得Android音樂播放效果更加豐富和出色,使用不到可以刪除,不會影響系統執行。 酌情可以刪除
OmacpManager.apk  60K 與簡訊顯示有關,需要結合簡訊應用進行驗證 待驗證
OneTimeInitializer.apk 5.6K 首次啟動時用於安裝谷歌應用的,舊版本android系統刪除之後雙清會卡在開機嚮導,4.4有待驗證,可能會對聯絡人和電話的資料庫有影響 建議保留
ProxyHandler.apk 8.1K 上網代理相關服務 不可以刪除
radio_interactor_service.apk 3.9K 懷疑涉及RIL層(Radio Interface Layer)相關功能,建議不要刪除 不可以刪除
Settings.apk 2.3M 原生的設定 不可以刪除
SettingsProvider.apk 118K 為原生的設定資料庫提供服務 不可以刪除
SharedStorageBackup.apk 6.8K 在adb模式下,使用adb backup……命令時,sharedstoragebackup會將手機內建儲存和sd卡內容備份。所以不用adb除錯的可以刪除 建議保留
Shell.apk  17K 可能與Shell命令解析相關,檢視原始碼有錯誤報告的功能 不可以刪除
SL_FotaUpdate.apk 747K 第三方升級程式 酌情可以刪除
SystemUI.apk 897K 下拉狀態列 不可以刪除
TeleService.apk 1.8M 為電話提供服務 不可以刪除
VpnDialogs.apk  13K 如果沒有VpnDialogs.apk這個系統元件,會導致“VPN”類軟體無法建立網路連線,會影響翻牆。對日常操作無影響。 建議保留
WallpaperCropper.apk  65K 影響設定桌布 酌情可以刪除

以上app刪除的方式是在原始碼/build/target/product目錄下查詢每個應用的makefile配置,然後註釋掉相應的mk檔案中的內容,達到不參與編譯的目的。

以上是否可以刪除僅代表我在自己專案中的情況,所以最好不要照搬結果,還是應該以實際情況為準。

相關推薦

android系統裁剪APP精簡

    APP精簡的目標是精簡手機root下system/app和system/priv-app兩個目錄裡的APK檔案。     精簡的手段是:弄清這些應用的用處,搞明白這些應用是否對系統無用,有沒有用需要根據自己的實際情況來判斷,且不可死板跟風網上搜到的。找到對自己無用的

Android學習探索App多渠道打包及動態添加修改資源屬性

Android App 前言: 關於Android渠道打包是一個比較老的話題,今天主要記錄總結一下多渠道打包以及如果動態配置修改一些資源屬性。今天以公司實際需求為例進行演示,由於項目復用很多公共的業務組件,而且業務組件之間的跳轉采用Scheme協議,每個業務組

Android API Guides App Manifest(8)

SYNTAX: <dataandroid:scheme="string"android:host="string"android:port="string"android:path="string"android:pathPattern="string"android:pathPrefix="stri

Android系統----免root實現Hook系統服務攔截方法

一、Binder機制回顧 在之前一篇文章中介紹了 Android中的Binder機制和系統遠端服務呼叫機制,本文將繼續借助上一篇的內容來實現Hook系統服務攔截指定方法的邏輯,瞭解了上一篇文章之後,知道系統的服務其實都是一個遠端Binder物件,而這個物件都是由Se

Android系統分析ThreadLocal

1 ThreadLocal操作示例 1.1 例子 public class MainActivity extends AppCompatActivity { private static final String TAG = "ThreadLoacalTest"; @

Android系統開發燒錄開發板

一.環境配置: 開發板接上USB線和串列埠線,開啟DNW並配置好串列埠,給開發板上電後按reset鍵,緊接著按鍵盤的空格鍵,此時可輸入如下命令. 1. fdisk -c 0 2. ext3format mmc 0:3 3. fastboot 如果PC機提示發現新硬體

Android 系統穩定性ANR

       相信大部分Android 開發人員都遇到過ANR問題,本文根據一些實際的開發經歷介紹一下如何解決和避免ANR問題。 一,何為ANR        ANR是“Application Not Responding”的縮寫,即“應用程式無響應”。在Android中,

Android系統kernel到APP整個流程demo分析

一直想深入Android底層開發,首先就從寫一個完整的HAL層開發demo開始吧,步驟確實有很多,對我們這種不熟悉c/c++開發的人來說,確實是很痛苦,我看這簡單的demo都要理解半天。下面我就一步步的來實現HAL層開發,附程式碼。我這裡簡單的歸納了下,一共8大步驟linux驅動實現驅動測試hal層實現aid

Android系統----編寫系統服務並且將其編譯到系統原始碼中

點選頂部藍字"編碼美麗"關注公眾號 在之前已經介紹了一篇關於如何 編寫簡單的驅動以及訪問該驅動的小程式,最後將程式編譯到Android核心原始碼中通過程式訪問驅動驗證是可以通過的,那麼本文就繼續這個知識點,把這個驅動程式通過JNI連線建立一個系統服務,提供給上層應用訪問改服務功能,可以看到前一篇介

Android系統分析Activity的啟動流程

1 參考連結 2 概念 Activity就是被用來進行與使用者互動和用來與android內部特性互動的元件,在應用程式中用到的所有activity都需要在manifest.xml檔案中進行註冊。那麼Activity又是怎樣一種元件,怎麼樣進行顯示

定製Android系統開發四——系統服務實現的分析

在上一篇博文中,我給出了實現系統服務的步驟,這篇博文則將分析一下,為什麼這樣的實現方式能夠實現客戶端/伺服器模式。 RadioManagerService 首先來看一下RadioManagerService是如何建立的。 如果我沒有記錯的話,Syste

Android效能優化 App啟動原理分析及速度和時間優化

應用的啟動速度緩慢這是很多開發者都遇到的一個問題,比如啟動緩慢導致的黑屏,白屏問題,大部分的答案都是做一個透明的主題,或者是做一個Splash介面,但是這並沒有從根本上解決這個問題。那麼如何從根本上解決這個問題或者做到一定程度的緩解? 一、應用的啟動方式 1、冷啟動:

Android系統服務看門狗(WatchDog)

現在的CPU基本上都帶有WatchDog功能,這種硬體的WatchDog可以在系統死掉(死鎖或者程式跑飛)後重啟系統,讓系統回到可以工作的狀態。WatchDog不能防止系統死掉,但是它能夠起死回生,從而提高系統的可用性。 硬體級的WatchDog也有它的侷限性,它只能在系統

Android系統程序Activity管理——ActivityManagerService(AMS)

一. 為什麼會有AMS 對於Android app開發人員來說,Activity是其打交道最多的元件了:App的每一個介面都對應於一個Activity。每個Activity都有他的生命週期(那幾個生命週期應該已經爛熟於心了吧),所以我們應該有一種機制來記錄並管理這些Acti

Android系統工具Traceview的使用

使用Traceview的版本限制 對於Android 1.5及以下的版本:不支援。 對於Android 1.5以上2.1下(含2.1)的版本:受限支援。trace檔案只能生成到SD卡,且必須在程式中加入程式碼。 對於Android 2.2上(含2.2)的版本:全支援。可以不用SD卡,不用在程式中加程式碼,直

Android系統-免root實現Hook系統服務攔截方法

第二篇讀書筆記 梳理了下思路,解決了疑惑 我們使用剪下板服務的時候是呼叫了ContextImpl的getSystemService方法 ContextImpl的getSystemService方法 @Override public

Android系統----解讀AMS遠端服務呼叫機制以及Activity的啟動流程

一、為何本文不介紹Hook系統的AMS服務在之前一篇文章中已經講解了 Android中Hook系統服務,以及攔截具體方法的功能了,按照流程本文應該介紹如何Hook系統的AMS服務攔截應用的啟動流程操作,

Android 系統編譯核心編譯

本來想超頻自己的手機的,於是發現需要編譯核心才能實現 作為Android開發者的我 沒有任何核心編譯經驗,只是想試一下, 於是折騰了兩天終於把核心成功編譯出來了 現在分享下學習經驗 我的是小米手機,其實我看了一下github, 其他手機的核心開源的目錄結構幾乎

android系統裁減服務裁減

android系統服務分本地(native)服務和java服務。 1、本地(native)服務裁減 很明顯:本地(native)服務是基於C/C++實現的,本地服務的啟動都在init.rc中通過指令碼的方式控制,如surfaceflinger這個服務的啟動, servic

Android系統開發七:新增Android Native Service方法

一、 Android Service 介紹 Android 的 Service 分為兩種: Android Service 和 Native Service 。 Android Service :又稱為 Java Service ,是實現在框架層( framework )裡