Android系統(tǒng)目錄結(jié)構(gòu)
/init 【系統(tǒng)啟動(dòng)文件】
/systemapp【系統(tǒng)應(yīng)用安裝目錄】
- bin【常用的系統(tǒng)本地命令(二進(jìn)制),大部分是toolbar的鏈接(類似于嵌入式Linux中的busybox)】
- etc【系統(tǒng)配置文件,如hosts】
- font【字體目錄】
- framework【Java平臺(tái)架構(gòu)核心庫(kù),jar包和odex優(yōu)化的文件】
- lib【系統(tǒng)底層共享庫(kù),.so庫(kù)文件】
- xbin【不常用的系統(tǒng)管理工具,相當(dāng)于linux 的/sbin】
- mediaaudio【鈴聲,提示音 等音頻文件, .ogg】notifications【通知】
- ui【界面】
- alarms【警告】
- ringtones【鈴聲】
- usr【用戶文件夾】keychars
- keylayout
- share
- srec【配置】
等等
vendor
build.prop【系統(tǒng)設(shè)置和變更屬性】
/etc –> /system/etc
/vendor –> /system/vendor
/dev【存放設(shè)備節(jié)點(diǎn)文件】
/proc【全局系統(tǒng)信息】
/data【用戶軟件和各種數(shù)據(jù)】local/tmp【臨時(shí)目錄,無(wú)權(quán)限要求】app【普遍程序安裝目錄】
systemlocation【其中的location.gps記錄最后的坐標(biāo),LocationManager.getLastKnownLocation()數(shù)據(jù)來(lái)自此處】
datafiles【Context.getFilesDir(), Context.getFileOutput()】
cache【Context.getCacheDir() , 系統(tǒng)會(huì)在內(nèi)存不足或者目錄大小達(dá)到特定數(shù)值時(shí)自動(dòng)清理。】
shared_pref【Context.getSharedPreferences()建立的 SharedPreferences文件存放目錄】anr【應(yīng)用在發(fā)生ANR 時(shí),Android將問(wèn)題點(diǎn)的堆棧寫入traces.txt文件中】
locationgps【GPS location provider配置】
property【其中persist.sys.timezone記錄系統(tǒng)臨時(shí)區(qū)】
/sdcard –> /storage/emulated/legacy 【SD卡的FAT32文件系統(tǒng)掛載到這個(gè)目錄】
Android****data【應(yīng)用的額外數(shù)據(jù),應(yīng)用卸載時(shí)自動(dòng)刪除】files【Context.getExternalFilesDir()獲取 。 設(shè)置 → 應(yīng)用 → 具體應(yīng)用詳情→ 清除數(shù)據(jù) 的操作對(duì)象】
cache【Context.getExternalCacheDir()獲取 。 設(shè)置 → 應(yīng)用 → 具體應(yīng)用詳情→ 清除緩存 的操作對(duì)象】
lost+foundyaffs文件系統(tǒng)固有的,類似于回收站的文件夾。
ODEX從apk中提取出來(lái)的可運(yùn)行文件,即原apk中classes.dex通過(guò)dex優(yōu)化生成的一個(gè)單獨(dú)存放的dex文件。啟動(dòng)應(yīng)用時(shí)不需要再?gòu)腶pk包中提取dex,速度更快。還可以刪除apk包中的dex減少體積。缺點(diǎn)是體積變大,而且升級(jí)某個(gè)給Odex的應(yīng)用可能會(huì)出現(xiàn)問(wèn)題。
二、獲取系統(tǒng)各個(gè)目錄)二、獲取系統(tǒng)各個(gè)目錄
以包名為“com.androidjp.app”的應(yīng)用示例實(shí)測(cè)得到以下結(jié)果,模擬器和真機(jī)結(jié)果一致。
- Environment.getExternalStorageDirectory().getAbsolutePath():
結(jié)果:/storage/emulated/0---------平時(shí)文件管理器看到的主目錄。 - Environment.getExternalStoragePublicDirectory(“”).getAbsolutePath():
結(jié)果:/storage/emulated/0 - MyAppl.getContext().getPackageName():
結(jié)果:com.androidjp.app【你的app的包目錄】 - Environment.getDownloadCacheDirectory().getAbsolutePath():
結(jié)果:/cache - Environment.getRootDirectory().getAbsolutePath():
結(jié)果:/system - Environment.getDataDirectory().getAbsolutePath():
結(jié)果:/data - MyAppl.getContext().getFilesDir().getAbsolutePath():
結(jié)果:/data/user/0/com.androidjp.app/files - Environment.getExternalStoragePublicDirectory(“files”).getAbsolutePath():
結(jié)果:/storage/emulated/0/files - MyAppl.getContext().getExternalFilesDir(“”).getAbsolutePath():
結(jié)果:/storage/emulated/0/Android/data/com.androidjp.app/files - MyAppl.getContext().getCacheDir().getAbsolutePath():
結(jié)果:/data/user/0/com.androidjp.app/cache - Environment.getExternalStoragePublicDirectory(“cache”).getAbsolutePath():
結(jié)果:/storage/emulated/0/cache - MyAppl.getContext().getExternalCacheDir().getAbsolutePath():
結(jié)果:/storage/emulated/0/Android/data/com.androidjp.app/cache