Android系統編譯后生成三個映像文件,都是用cpio打包,gzip壓縮的。
- ramdisk.img 文件系統,包含/system, /data, /bin等目錄。kernel啟動時負責初始化。
- system.img 系統包和庫文件,掛載到/system目錄
- userdata.img 用戶數據,掛載到/data目錄
Android系統目錄結構
- /init 系統啟動文件
- /system
- app 系統應用安裝目錄
- bin 常用的系統本地命令(二進制),大部分是toolbox的鏈接(類似於嵌入式Linux中的busybox)
- etc 系統配置文件,如hosts
- font 字體目錄
- framework Java平台架構核心庫,jar包和odex優化的文件
- lib 系統底層共享庫,.so庫文件
- xbin 不常用的系統管理工具,相當於linux的/sbin
- media
- audio 鈴聲,提示音等音頻文件, .ogg
- notifications 通知
- ui 界面
- alarms 警告
- ringtones 鈴聲
- audio 鈴聲,提示音等音頻文件, .ogg
- usr 用戶文件夾
- keychars
- keylayout
- share
- srec 配置
- ......
- vendor
- build.prop 系統設置和變更屬性
- /etc --> /system/etc
- /vendor --> /system/vendor
- /dev 存放設備節點文件
- /proc 全局系統信息
- /data 用戶軟件和各種數據
- local/tmp 臨時目錄,無權限要求
- app 普通程序安裝目錄
- system
- location 其中的location.gps記錄最后的坐標,LocationManager.getLastKnownLocation()數據來自此處
- data
- <package_name>
- files Context.getFilesDir() ,Context.openFileOutput() 獲取的目錄,應用安裝目錄下
- cache Context.getCacheDir() 獲取的目錄,應用安裝目錄下,系統會自動在內存不足或目錄大小達到特定數值時自動清理。
- shared_pref Context.getSharedPreferences() 建立的preferences文件(xml)存放目錄
- <package_name>
- anr 應用發生ANR(Applicaiton is Not Responding)時,Android將問題點的堆棧寫入到traces.txt文件中
- location
- gps GPS location provider配置
- property 其中persist.sys.timezone記錄系統時區
- /sdcard -->/storage/emulated/legacy SD卡的FAT32文件系統掛載到此目錄
- Android
- data
- <package_name> 應用的額外數據,應用卸載時自動刪除。
- files Context.getExternalFilesDir()獲取的目錄。設置->應用->具體應用詳情-> 清除數據 操作對象就是這個目錄。
- cache Context.getExternalCacheDir()獲取的緩存目錄。設置->應用->具體應用詳情-> 清除緩存 操作對象就是這個目錄。
- <package_name> 應用的額外數據,應用卸載時自動刪除。
- data
- Android
lost+found
yaffs文件系統固有的,類似回收站的文件夾。
ODEX
從apk中提取出來的可運行文件,即原apk中classes.dex通過dex優化生成的一個單獨存放的dex文件。啟動應用時不需要再從apk包中提取dex,速度更快。還可以刪除apk包中的dex減少體積。缺點是體積變大,而且升級某個給Odex的應用可能會出現問題。
參考文檔
http://blog.csdn.net/conowen/article/details/7251057