Android軟體分享 - 簡單介紹一下 Android 的 apk 安裝檔 - 手機

前往內容


簡單介紹一下 Android 的 apk 安裝檔

本文轉自個人網站

這幾天剛好有機會重刷了兩次 ROM (milestone),
為了精簡 ROM 的容量,特別來研究一下,以下用比較白話的方式介紹。

說文解字
ROM: 類似電腦的硬碟,安裝程式的地方,
會隨著安裝程式而逐漸減少,只有移除程式才會恢復空間。
RAM: 記憶體,執行程式的地方,會動態調整,
可以利用 Task Manager 之類的軟體清除不執行的程式,提高 RAM 可用量,可以增加效能。

RAM 不提了,今天只介紹 ROM。

Android 的安裝軟體非常簡單,簡單到靠北,
安裝檔只有一個 .apk 檔案,其實就是 zip 壓縮檔,
在 PC 上面打開就可以看到裡面有什麼東西(其實不用去開它,沒意義),
Android 沒有真正的「安裝」,所謂的安裝只是下載檔案後把 .apk 放進指定的目錄,
檔案放進去同時也就安裝完成了,如果要移除也就只是刪掉 .apk,
就這麼簡單!

接下來介紹放置 .apk 的地方,以下請先取得 root 權限,
並付費購買 root explorer 這個軟體來操作。
root explorer 這是一個具有 root 權限可以修改所有系統檔的檔案總管。

打開 root explorer,看看以下兩個地方,
/system/app:這裡面是放置「原廠內建」軟體的地方,
例如 milestone 內建的就是 MotoNav 導航、VoiceDial 聲控撥號等軟體,
特點是「放在這裡面的程式無法移除」,
另外,也不計入「安裝軟體所消耗的容量」,
理論上裝在這裡的軟體就是永遠不會改變的,除非重刷 ROM。
/system/app 預設容量 180MB,
預設佔用??(我忘了,因為我改過裡面東西,不知道原本佔用多少)
目前佔用 132MB,還有 69MB 左右。

/data /app:這是放置使用者自行安裝軟體的地方,可安裝,可移除,
預設容量 200MB,當使用者從 Market 下載軟體就是裝入這裡,
如果出現空間不足,也是從這邊的 200MB 去計算出來,
和剛剛的 /system/app 無關,這點一定要注意。

所以當我們發現安裝空間不足時,就要想辦法從這兩個地方去動手腳了。

空間不足時,我們可以把 /data/app 的軟體搬移到 /system/app 裡面,
來取得更多的 /data/app 空間,
首先先來把 /system/app 清出空間吧。

milestone 內建的軟體,以這兩個最佔空間,
分別是 MotoNav(13MB) 和 Voice Dialer(4MB),
先用 root explorer 打開 /system/app,如果怕萬一的話,
可以先把整個資料夾複製到 /sdcard 備份,
然後把 /system/app 按下右上角的 R/W,掛載為可讀寫,才可以刪檔案,
先刪除 motonav.apk,再刪除 VSuiteApp(這個就是 VoiceDialer)
然後重新開機,
VSuiteApp 一定要最後刪,因為 VoiceDialer 是系統服務,
一刪掉就會馬上不停的跳出錯誤訊息,什麼事都不能做,
只能重新開機,重開機就好了。

重新開機後,再進入 root explorer,再看 Maps 和 Facebook,
這兩個軟體都有內建,但我們一入手就會上 Market 更新到最新版,
所以會有兩份:
/system/app 這裡是內建的 Maps 和 Facebook 舊版
/data/app 這裡是更新的 Maps 和 Facebook (當然你要先更新過才會有這兩個檔)
同一個軟體為什麼要分別存兩份?所以來把
/system/app 裡面的 Maps 和 Facebook 刪除,
把 /data/app 裡面的 Maps 和 Facebook 移動過來。

做完以上的工作,就成功把 /system/app 清出空間,
並且把新版軟體從 /data/app 移動到 /system/app,
這樣 /data/app 就可以清出空間了!

接下來,因為 /system/app 還有很多容量,
所以我把賽微語音輸入法、 Dolphin HD 都丟進 /system/app 裡面了~
這幾個軟體都很龐大,可以清出更多空間,
經過整理,我的 /data/app 剩餘 70MB,
接下來可以裝 Google Earth 或其他遊戲軟體了 :D:D:D
如果要移動或刪除其他的 .apk 請自行斟酌喔!

重要:
1. 全部做完後,別忘了把這兩個目錄恢復為 R/O 唯讀,才不會出意外喔!!
2. 放進 /system/app 的賽微語音輸入法和 Dolphin HD,
會被列為「系統內建軟體」以後就無法移除,
所以若有更新,就會裝在 /data/app 裡面,
像 Maps 和 Facebook 一樣,變成兩份,到時還要再移動一次檔案,
才會清出空間喔!所以這邊最好是把「較少異動」的軟體丟進去。

其實 /system/app 內建的東西還有很多用不到,
但我只從佔空間最大的幾個下手,其他就不去動了,
大致就先這樣囉!


2010/05/29:
我發現我似乎漏掉一點小細節,所以網友照著上面實作會發現一些小問題。

補充說明:
如果有從 /system/app 裏面刪除一些內建的 .apk,
別忘了再到「管理應用程式」裏面 (或者你慣用的其他安裝管理軟體都可以)
把一些名稱為「com.motorola....」或「com.google....」
這類名稱看起來不太像正常軟體名稱的項目移除,
這是 apk 相關的設定檔,名稱格式應該是 com.xxxx.xxx.xxx 這樣,
例如 motorola 內建的輸入法就是 com.motorola.inputmethod.latin
移除乾淨才會清除相關的捷徑或者不該存在的設定值。

以上。

作者為網路嘴砲家,長期關注論壇筆戰動向。
謝謝樓主分享
樓主的文章對我這種菜鳥來說,是增加功力的仙丹呀
THS!!!
threesecond wrote:
本文轉自個人網站這幾...(恕刪)


正在對於APK的原理不甚了解
您解說詳盡簡單易懂,滿分奉上
真的是很棒的教學啊
存起來先
以後我的xt701一定用的到
感謝
THE ONE--救世主
感謝分享,受益良多。

不過好奇的是System\App 不是used size不會變的嗎?

System\App可以刪除檔案來增加那個partition空間囉 ?
小孟孟566 wrote:
不過好奇的是System\App 不是used size不會變的嗎?
System\App可以刪除檔案來增加那個partition空間囉 ?


前面有說過,/system/app 裡面是內建的軟體,
正常方法無法移除,也不能改變裡面的容量,
只有 root 才可以刪除,root explorer 只是一個工具而已,
如果你會用 adb shell,也可以登入後 su 成 root 然後刪檔,原理一樣,
只是這需要大量指令操作,對新手很困難,用 root explorer 簡單多了。

之所以想寫這篇,是因為網路上其他關於 .apk 操作的教學文章,
都只寫步驟沒說原理,指令寫了一大堆,
大家都看不懂「為什麼要刪檔案?我刪的是我想刪的檔案嗎?刪錯怎麼辦?」
所以我整理出心得之後再分享一次原理,
整篇不講指令,只講原理,原理懂了之後,
自然就知道自己該刪什麼,哪裡可以刪,哪裡不能刪,刪了會怎樣。
這樣就很容易了。
作者為網路嘴砲家,長期關注論壇筆戰動向。
讀完這篇文章真是獲益良多,解決了好幾個我長久以來的疑問。
感謝樓主的教學,雖然看不太懂,但看的出是一篇很專業的教學,謝謝!

另外單以使用者來說,是否只要能升至 2.2,其中的 App2SD 就可以讓手機的 ROM/RAM 不那麼吃力呢?
免責聲明:本文所載資料僅供參考,並不構成投資建議,本人對該資料或使用該資料所導致的結果概不承擔任何責任。

kevin03 wrote:
感謝樓主的教學,雖然看不太懂,但看的出是一篇很專業的教學,謝謝!

另外單以使用者來說,是否只要能升至 2.2,其中的 App2SD 就可以讓手機的 ROM/RAM 不那麼吃力呢?



APP2SD 只解決了 ROM 的問題,沒有解決 RAM 的問題
RAM 的問題可能要 ROOT 後找自動內存管理(Auto Memory Manager)才能稍稍克服
板大你好

我在將apk檔放進 /Data/app 時卻沒有反應

好像是跟使用者權限有關係,還是說跟apk檔案是unsigned的

所以無法安裝?

apk檔是我自己寫的

謝謝

1頁 (共5頁) » 分享到

前往



廣告
廣告