系統目錄結構:
-
/system 系統目錄,例如系統軟件,字體,媒體,屬性等基本信息
-
/data/data 目錄,,這裏包含了app的數據、文件、數據庫等信息,並且以包名的形式來區分各個應用。既然提到這個目錄,我就補充一下。在這個目錄下,找到自己項目的包名,然後出現以下的目錄結構:
-
/data/data/package-name/database 下存放着項目的數據庫文件(.db文件)。
/data/data/package-name/database 下存放着項目的以SharedPrefrence形式保存的文件(.xml文件) -
/data/app/目錄 用戶安裝的app或者是升級的app文件
-
/data/system/目錄 這裏存放着手機各項的系統信息。
-
/data/misc/目錄 這裏存放着大部分的WIFI、VPN信息。
-
/cache 此目錄存放着是臨時緩存的文件。
-
/etc 目錄 這裏存放了系統中幾乎所有的配置文件。
/sdcard 是 /storage/self/primary 的一個符號鏈接
/storage/self/primary 是 /mnt/usr/0/primary 的一個符號鏈接
/storage/emulated/0 是 /mnt/usr/0/primary 的一個分區
參考博客:https://blog.csdn.net/qq_39074954/article/details/97613088
getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()
Cache和Files 二個目錄分別對應 設置->應用->應用詳情裏面的”清除數據“與”清除緩存“選項
getxxxDir():對應/data/data/package-name/xxx
getExternalxxxDir():對應/sdcard/Android/data/package-name/xxx
下面以Package-name爲:com.learn.test開始講解
內部存儲:
Environment.getDataDirectory(): /data
Context.getCacheDir(): /data/data/com.learn.test/cache
Context.getFilesDir(): /data/data/com.learn.test/files
Context.getFileStreamPath(""): /data/data/com.learn.test/files
Context.getFileStreamPath("test"): /data/data/com.learn.test/files/test
外部存儲
Environment.getExternalStorageDirectory(): /sdcard
Context.getExternalCacheDir(): /sdcard/Android/data/com.learn.test/cache
Context.getExternalFilesDir(""): /sdcard/Android/data/com.learn.test/files
Context.getExternalFilesDir("test"): /sdcard/Android/data/com.learn.test/files/test
以上文件的內容會隨着我們卸載應用而自動刪除。如果我們在外部存儲上新建任何文件夾,則需要手動清理,系統並不會因爲卸載而刪除。
公共存儲目錄
Environment.getExternalStorageDirectory(): /sdcard
Environment.getExternalStoragePublicDirectory(""): /sdcard
Environment.getExternalStoragePublicDirectory("test"): /sdcard/est
博客參考:https://blog.csdn.net/Kelaker/article/details/80471352