Android數據存儲路徑分析

版權聲明:本文為作者原創,轉載必須注明出處。

轉載請注明出處:http://www.lxweimin.com/p/7b948b47e986

Android設置中中清除數據:

清理掉的數據路徑:

1、內部存儲:data\data\下的包名文件夾會被整個清除掉

2、外部存儲:mnt\sdcard\Android\data\包名文件夾會被整個清除掉

不會被清理掉的數據路徑:

外部存儲:mnt\sdcard\Android\除了對于包名之外的所有文件及文件夾都不會被清掉

對于內部存儲:獲取data\data\包名\files ?目錄下的文件流

context.openFileOutput 寫

context.openFileInput 讀

判斷有無sdcard:

android.os.Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED);

android獲取目錄的系統方法:

一、內部存儲(通過context獲取):

Context.getDatabasePath()???????????????????????????????????????????????????返回通過Context.openOrCreateDatabase?創建的數據庫文件

Context.getCacheDir().getPath()?:??????????????????????????????????????????用于獲取APP的cache目錄?/data/data//cache目錄

Context.getExternalCacheDir().getPath()??:????????????????????????????用于獲取APP的在SD卡中的cache目錄/mnt/sdcard/Android/data//cache ?不對

應該是/storage/emulated/0/Android/data/app_package_name/cache

Context.getFilesDir().getPath()??:???????????????????????????????????????????用于獲取APP的files目錄?/data/data//files

Context.getObbDir().getPath():?????????????????????????????????????????????用于獲取APPSDK中的obb目錄?/mnt/sdcard/Android/obb/

Context.getPackageName()?:????????????????????????????????????????????????用于獲取APP的所在包目錄

Context.getPackageCodePath()??:?????????????????????????????????????????來獲得當前應用程序對應的?apk?文件的路徑

Context.getPackageResourcePath()?:????????????????????????????????????獲取該程序的安裝包路徑

二、外部存儲(Environment獲取):

Environment.getDataDirectory().getPath()?:??????????????????????????獲得根目錄/data?內部存儲路徑

Environment.getDownloadCacheDirectory().getPath()??:??????獲得緩存目錄/cache

Environment.getExternalStorageDirectory().getPath():?????????獲得SD卡目錄/mnt/sdcard(獲取的是手機外置sd卡的路徑)

Environment.getRootDirectory().getPath()?:??????????????????????????獲得系統目錄/system

SD卡緩存目錄

當應用需要將圖片或者文件緩存到SD卡中時要去申請創建目錄,有下面幾種途徑

我們可以通過API調用應用專屬目錄:

//?/storage/emulated/0/Android/data/app_package_name/files/Pictures

Content.getExternalFilesDir(Environment.DIRECTORY_PICTURES);

//?/storage/emulated/0/Android/data/app_package_name/cache

Content.getExternalCacheDir();

上面兩個目錄是專屬于當前app的,當應用被刪除時,上面目錄下的文件也會清空

內存緩存目錄

相對于應用的專屬SD卡緩存有兩個內存緩存地址:

Content.?getCacheDir();?//? /data/data/app_package_name/cache

Content.?getFilesDir();?//? /data/data/app_package_name/files

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,251評論 25 708
  • 文件存儲和清理: 可以看到,當SD卡存在或者SD卡不可被移除的時候,就調用getExternalCacheDir(...
    3Q竹林閱讀 2,243評論 0 2
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,511評論 0 17
  • 一.getCacheDir、getCacheDir getCacheDir()方法用于獲取/data/data//...
    蟻隊蟻行閱讀 652評論 0 2
  • 第一章 拜別師傅 “下山了什么好吃的好玩的你可別忘了師傅,碰到漂亮女人別忘了問她愿不愿意做你師...
    黏人的貓閱讀 154評論 0 0