android開發常用路徑

2021-09-09 09:26:41 字數 1886 閱讀 1280

作為乙個開發者,我們經常需要通過快取一些檔案到sd卡中,常見的方式就是,通過:

file sdcard = environment.getexternalstoragedirectory();

sd卡根目錄會迅速變得雜亂不堪。並且在api 6.0之後,根目錄檔案儲存是需要使用者授權的,就算你在

androidmanifest.xml中配置了儲存許可權,使用者不授權也是寫不進去了.

sd卡讀寫許可權:

android:name="android.permission.write_external_storage"/>

其實,google已經提供了最佳的外部儲存方案,那就是統一路徑為:

/android/data/< package name >/files/… (該路徑通常掛載在/mnt/sdcard/下)

外部儲存路徑呼叫方法是:context.getexternalfilesdir(dir).getabsolutepath() //通過context呼叫,

引數dir為自自定義資料夾.

這個方法獲得的檔案儲存路徑適用於6.0以後系統,主要androidmanifest.xml配置讀寫許可權了,

就不需要使用者再授權了.

以上,是關於外部儲存的介紹,那麼如果有些手機沒有sd卡或者系統自身沒有分配外部儲存空間,時,

我們應該怎麼快取資料呢?

那就需要用到內部儲存了,內部儲存的路徑是: /data/data/< package name >/files/…

(該路徑掛載在在手機自身儲存目錄)

內部儲存路徑呼叫方法是:context().getcachedir().getabsolutepath() //通過context呼叫

因此,正常開發中獲取儲存路徑的方法是:

/*** 

* @param context 上下文物件

* @param dir  儲存目錄

* @return

*/public static string getfilepath(context context,string dir) else

file file = new file(directorypath);  

if(!file.exists()) 

logutil.i("filepath====>"+directorypath);

return directorypath;

}其中,getexternalcachedir()與getcachedir()的區別 與getexternalfilesdir()及getfilesdir()的區別相同,

前者只是在路徑下自動建好了乙個cac**件目錄:/data/< package name >/files/cach/...

儲存區別簡明示意圖如下:

區別方法

備註external storage 

外部儲存

environment.getexternalstoragedirectory()

sd根目錄:/mnt/sdcard/ (6.0後寫入需要使用者授權)

context.getexternalfilesdir(dir)

路徑為:/mnt/sdcard/android/data/< package name >/files/… 

context.getexternalcachedir()

路徑為:/mnt/sdcard//android/data/< package name >/cach/…

internal storage

內部儲存

context.getfilesdir()

路徑是:/data/data/< package name >/files/…

context.getcachedir()

路徑是:/data/data/< package name >/cach/…

Android常用檔案路徑介紹

我想很多得人都和我一樣,經常記不住檔案的路徑,到使用的時候又是懵的,然後就想著寫一篇來記錄一下,方便以後檢視。1.context.getcachedir 應用內部儲存空間 資料檔案私有 當我們的檔案儲存在這個檔案下,是不需要申請許可權 當應用被解除安裝的時候目錄下的檔案也會跟著被刪除。複製 注意 這...

Android開發常用屬性

1 android string.xml 文字中間加入空格 密 碼 這個就代表著空格 2 文字單行顯示 文字單行顯示 文字輸入框單行輸入 android singleline true 單行顯示 3 editview輸入框屬性 文字輸入框的輸入資料不直接顯示 文字輸入框的輸入資料只能為數字 andr...

常用android開發命令

1.檢視專案的依賴 2.當前執行的activity adb shell dumpsys window grep mcurrentfocus 3.等待debug debug.waitfordebugger 安裝apk adb install apk所在的位址 apk的名字解除安裝apk adb uni...