日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Android 中的文件存儲

瀏覽:20日期:2022-09-20 14:30:05
概要

當我們查看手機的文件管理器的時候,會發現里面的文件五花八門,想要找到自己項目所對應的文件非常困難,甚至有可能壓根就找不到自己的文件,本文就來介紹一下APP開發過程當中文件存儲的注意事項。

通常我們會將存放的文件分為兩種:獨立文件和專屬文件。顧名思義,獨立文件就是獨立于APP之外的文件,不會隨著APP的刪除而刪除,而專屬文件則是專屬于某個APP的文件,當APP刪除后,會自動清空相對應的專屬文件。

獨立文件

獨立文件指的是存放在shared/external storage directory下的文件,通常意義上就是我們的SD卡??梢酝ㄟ^以下方法獲取SD卡路徑:

Environment.getExternalStorageDirectory ()

不建議將文件存儲在SD卡的根目錄下,這樣會污染用戶的SD卡根目錄,通常是在根目錄下建立一個次級目錄并將文件存儲在次級目錄下面:

File sdCardDir = Environment.getExternalStorageDirectory ();File cacheDir = new File(sdCardDir, 'Cache');

得到的路徑如下所示:

/storage/emulated/0/Cache

不同平臺下SD卡的路徑有所差別,所以開發者通常都是持有一個相對路徑。

Tips:不同手機廠商外部存儲根目錄(Environment.getExternalStorageDirectory())的物理地址不一定相同,但它們映射之后的根目錄通常都是一致的,映射之后的根目錄為:/mnt/sdcard/

還可以通過另一種方法獲取一個SD卡的次級目錄:

Environment.getExternalStoragePublicDirectory(String)

針對于該方法,Android已經給出了一套固定的String參數:

Environment.DIRECTORY_ALARMSEnvironment.DIRECTORY_DCIMEnvironment.DIRECTORY_DOCUMENTSEnvironment.DIRECTORY_DOWNLOADSEnvironment.DIRECTORY_MOVIESEnvironment.DIRECTORY_MUSICEnvironment.DIRECTORY_NOTIFICATIONSEnvironment.DIRECTORY_PICTURESEnvironment.DIRECTORY_PODCASTSEnvironment.DIRECTORY_RINGTONES// ps:調用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)// 得到的路徑就是:/storage/emulated/0/Pictures

個人還是更喜歡第一種方法,因為第一種方法更加的靈活,可以自定義次級目錄。

當然,在向SD卡存儲文件之前,還需要判斷SD卡是否存在,判斷的方法如下:

if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ // SD卡存在}

由于要存儲的是獨立文件,還需要添加讀寫權限:

<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/><uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE'/>

通常情況下只要添加寫權限即可,添加寫權限就默認添了讀權限,這兩個權限始于Android4.4(KITKAT)

專屬文件

專屬文件可以存放在external storage,也可以存放在internal storage。external storage指的是SD卡,internal storage指的是手機自帶的存儲區域。有人可能會有疑問:之前獨立文件不也存放在SD卡中嗎?怎么專屬文件也放在SD卡中,我們的APP怎么區分這兩者呢?其中獨立文件通常是存放在SD卡的次級目錄下,比如剛才提到的'根目錄/Cache',而專屬文件則是存儲于'根目錄/Android/data/packge name'目錄下面,當APP刪除時,會自動銷毀這個文件夾。

通常情況下,我們會將一些體量比較小的數據存放在internal storage中,比如Shared Prefrence文件或者數據庫文件,而將一些體量較大的文件放在external storage中,比如視頻,圖片文件。

存儲專屬文件不需要讀寫權限~~

internal storage

獲取APP在internal storage中存儲路徑的方法如下:

getCacheDir();getFileDir();getDir('name', mode);

得到的路徑如下所示:

/data/data/<package name>/cache/data/data/<package name>/file/data/data/<package name>/'name'

這是APP的私有路徑,對于沒有root過的手機,用戶是無法訪問該路徑的,所以安全性有所保障(開發人員可以在AS3.0以上版本的Device File Explorer中訪問該路徑)。同時手機的SD卡并不是任何時候都可用的,所以我們必須要將重要的數據存放在internal storage中。

根據Android SDK的說法,當手機磁盤空間不足時,系統會自動將清除cache目錄下的文件(除cache以外的其它內部存儲空間不會被自動清除)。針對這種情況,需要將緩存盡可能存儲在非cache文件夾中;或者將cache文件夾下的文件大小控制在系統指標之下,獲取系統指標的方法如下:

getCacheQuotaBytes(java.util.UUID)

如果控制在該指標以下,文件的清除優先級將會被排到最低(指標是Android8.0特性)。

external storage

獲取APP在external storage中存儲路徑的方法如下:

getExternalCacheDir()

得到的路徑之前也提過一筆,如下所示:

/storage/emulated/0/Android/data/<package name>/cache

熟悉了external storage的路徑后,也可以通過SD卡的根目錄來手動創建路徑:

File dataDir = new File(new File(Environment.getExternalStorageDirectory(), 'Android'), 'data');File externalCacheDir = new File(new File(dataDir, context.getPackageName()), 'cache');if (!externalCacheDir.exists()) { externalCacheDir.mkdirs();}

除了上面提到過的視頻、圖片文件,有的時候,開發者還希望在APP的專屬路徑下放一些可訪問的文件,比如crash或者debug的log日志文件,此時internal storage不能滿足需求(用戶無法訪問internal storage并反饋具體日志),就可以將這些專屬文件放在external storage目錄下。

以上就是詳解Android 中的文件存儲的詳細內容,更多關于Android 文件存儲的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品免费不| 久久精品国产亚洲一区二区三区| 视频福利一区| 国产精品调教| 久久精品官网| 日韩伦理福利| 精品国产aⅴ| 国产视频一区二区在线播放| 国产精品网站在线看| 四虎国产精品免费久久| 国产欧美日韩影院| 久久影院午夜精品| 综合一区二区三区| 国产精品v亚洲精品v日韩精品| 久久高清免费观看| 国产精品永久| 国产精品极品国产中出| 国产日韩欧美一区二区三区| 激情综合网站| 91精品精品| 99精品美女| 亚洲色诱最新| 国产精品1区| 老鸭窝毛片一区二区三区| 久久一区精品| 在线日韩成人| 国产视频网站一区二区三区| 国产午夜精品一区在线观看| 福利精品在线| 好看的亚洲午夜视频在线| 免费日韩精品中文字幕视频在线| 少妇精品在线| 国产九一精品| 国产精品传媒麻豆hd| 桃色一区二区| 免费看黄色91| 精品国产乱码久久久| 亚洲激情不卡| 欧美在线不卡| av综合电影网站| 亚洲aa在线| 亚洲无线一线二线三线区别av| 亚洲美女久久精品| 日本久久黄色| 麻豆精品蜜桃视频网站| 成人精品天堂一区二区三区| 成人羞羞在线观看网站| 四虎国产精品免费观看| 99久久亚洲精品蜜臀| 99视频精品全国免费| 国产99久久| 在线精品观看| 国产一区二区亚洲| 久久中文亚洲字幕| 极品裸体白嫩激情啪啪国产精品| 99精品国产一区二区三区| 久久麻豆视频| 国产精品香蕉| 日韩国产网站| 国产激情精品一区二区三区| 国产日韩三级| 亚洲欧美久久久| 久久久国产精品一区二区中文| 国产欧美一区二区三区国产幕精品 | 老司机精品视频在线播放| 亚洲激情社区| 精品1区2区3区4区| 久久精品福利| 久久不见久久见免费视频7| 亚洲高清影视| 久久精品伊人| 亚洲欧美日本国产| 国产精品igao视频网网址不卡日韩| 中文字幕日韩高清在线| 久久狠狠亚洲综合| 中文字幕视频精品一区二区三区| 国产a亚洲精品| 国产亚洲福利| 久久精品国产在热久久| 影音先锋久久精品| 成人污污视频| 在线免费观看亚洲| 欧美日韩色图| 日本伊人久久| 久久久精品午夜少妇| 亚洲女同一区| 国产精品白丝av嫩草影院| 欧美日韩免费看片| 伊人精品一区| 好吊一区二区三区| 亚洲高清av| 午夜欧美视频| 美女91精品| 欧美综合社区国产| 欧美视频一区| 丁香婷婷久久| 久热精品在线| 久久永久免费| 香蕉久久99| 国产精品久久久久久妇女 | 国产精品国产三级国产在线观看| 欧美好骚综合网| 亚洲香蕉网站| 精品亚洲a∨| 免费在线亚洲| 免费一级欧美片在线观看网站| 国产精品1区| 蜜桃一区二区三区在线| 青草av.久久免费一区| 欧美亚洲综合视频| 国产一区二区三区自拍| 国产精品九九| 久久亚洲国产精品一区二区| 六月丁香综合在线视频| 日韩视频一区二区三区在线播放免费观看| 欧美激情日韩| 视频一区中文字幕精品| 国产不卡av一区二区| 精品一区亚洲| 成人精品天堂一区二区三区| 91亚洲国产| 亚久久调教视频| 精品72久久久久中文字幕| 在线观看免费一区二区| 国产乱人伦丫前精品视频| 黑丝一区二区三区| 精品亚洲成人| 91九色综合| 日韩美女精品| 欧美日韩国产一区精品一区| 福利一区和二区| 久久亚洲黄色| 欧美日韩中出| 九一精品国产| 日韩国产激情| 色综合www| 国产精品美女久久久浪潮软件| 日韩午夜黄色| 亚洲精品影院在线观看| 亚洲二区在线| 福利片在线一区二区| 国内精品伊人| 国产精品毛片在线看| 日韩美女一区二区三区在线观看| 久久精品亚洲人成影院| 国产精品欧美在线观看| 国产激情欧美| 日韩a一区二区| 成人一区而且| 99成人在线视频| 水野朝阳av一区二区三区| 日韩精品一级| 国产精品99一区二区三区| 不卡在线一区| 国产激情在线播放| 国产一区91| 久久精品一区二区不卡| 国产精品亚洲综合久久| 亚洲一区二区免费看| 久久久久99| 午夜一级久久| 蜜臀久久99精品久久久久宅男 | av资源中文在线天堂| 亚洲人www| 亚洲人成在线影院| 综合在线一区| 在线视频观看日韩| 久久麻豆视频| 97国产精品| 尹人成人综合网| 日韩一区欧美| 欧美亚洲国产激情| 久久在线视频免费观看| 日本精品不卡| 不卡在线一区| 激情综合网五月| 国产亚洲精品v| 中文一区一区三区免费在线观| 免费日韩一区二区| 综合国产在线| 青青国产精品| 久久精品网址| 日韩欧美另类一区二区| 久久一区二区三区电影| 欧美日韩国产高清| 中文字幕成人| 国产精品99久久免费| 国产一区二区三区四区五区传媒| 日本不良网站在线观看| 婷婷综合激情| 欧美日韩a区| 久久精品 人人爱| www成人在线视频| 精品一区毛片| 精品72久久久久中文字幕| 日韩欧美美女在线观看| 狠狠躁少妇一区二区三区| 中文字幕日韩亚洲| 亲子伦视频一区二区三区| 欧美日韩va|