Android應用安裝有如下四種方式
1.系統應用安裝――開機時完成,沒有安裝界面
2.網絡下載應用安裝――通過market應用完成,沒有安裝界面
3.ADB工具安裝――沒有安裝界面。
4.第三方應用安裝――通過SD卡里的APK文件安裝,有安裝界面,由packageinstaller.apk應用處理安裝及卸載過程的界面。
下載好的Android apk, 在安裝過程中,其中文件內容是這樣處理的:
1. 先把apk拷貝到/data/app下, 沒錯,就是完整的apk, 例如com.calendar.UI-2.apk
2. 解壓apk,把其中的classes.dex 拷貝到/data/dalvik-cache, 其命名規則是 apk路徑+classes.dex, 如: data@app@com.calendar.UI-2.apk@classes.dex, 其中@表示目錄符號/
3. 在/data/data下創建對應的目錄,用於存儲程序的數據,例如cache, database等, 目錄名稱與包名相同, 如com.calendar.ui.
要注意的是, 安裝過程並沒有把資源文件, assets目錄下文件拷貝出來,他們還在apk包里面呆着,所以,當應用要訪問資源的時候,其實是從apk包里讀取出來的。其過程是,首先加載apk里的resources.arsc(這個文件是存儲資源Id與值的映射文件),根據資源id讀取加載相應的資源。