當前位置:首頁 » 安卓系統 » android內部存儲路徑

android內部存儲路徑

發布時間: 2023-08-10 02:39:37

1. Android 內部存儲/外部存儲 及 讀寫許可權

Android 使用 VFS (Virtual File System) 虛擬文件系統。VFS提供了供存儲設備掛載的節點,同一存儲設備經過分區後,不同的分區可以掛載到不同的節點上,如手機的內置存儲卡。

內置存儲卡 / 外置SD卡
內部存儲 / 外部存儲

VFS 的目錄以 / 為根節點,根節點下面又有不同的節點。物理存儲設備就是掛載到這些節點上。

內部存儲卡/外置SD卡 內部存儲/外部存儲

首先明確, 內置存儲卡/外置SD卡 是在 物理層面 相對於 手機大眾用戶 來說的。
外置SD卡:可手動插拔的SD卡。
內置存儲卡:焊接在手機內部不可拆卸的存儲卡。

而, 內部存 /外部存儲 是在 文件系統邏輯層面 相對於 開發者 來說的,指具體的路徑。
一般針對某個應用而言的,屬於該應用的存儲路徑叫內部存儲,反之為外部存儲。

路徑: /data/data/package_name

/data/data/ 下都是已安裝應用的目錄,該目錄下包含的文件都是以包名作為文件名的目錄,例如 /data/data/com.sankuai.meituan

獲取內部存儲的方式如下:

其中,參數 mode 指創建模式,一種 4 種

注意: Android 7.0 以上 android.os.Build.VERSION.SDK_INT>=Build.VERSION_CODES.N 使用3/4 常量時,將會導致SecurityException,這意味著 不能通過名稱共享私有文件
嘗試共享 file://URI URI將會導致FileUriExposedException,StrictMode API政策禁止在您的應用外部公開file://URL。如果您的應用需要與其他應用共享私有文件,則可以使用 FileProvider 與 FLAG_GRANT_READ_URI_PERMISSION 配合使用。 Android 7.0 行為變更 通過FileProvider在應用間共享文件吧

外部存儲,可以是 外置SD卡 或 內置存儲卡的部分分區。

外部存儲,分為 公共目錄 和 私有目錄

獲取方式

檢查可用性的方法:

Android 4.3 以下,只能通過 Context#getExternalFilesDir(type) 來獲取外部存儲在內置存儲卡分區的私有目錄,無法獲取外置SD卡。

Android 4.3 開始,可以通過 Context#getExternalFilesDirs(type) 獲取一個File數組,包含了內置存儲卡分區和外置SD的私有目錄地址。

可以使用兼容庫的靜態方法 ContextCompate.getExternalFilesDirs() 兼容 4.3。

感謝以下文章作者
解析Android內部存儲、外部存儲的區別

2. 安卓系統的通訊錄里的Vcard文件路徑在哪裡

安卓手機通訊錄存放位置:data/data/com.android.provides.contacts。喚信

打開步驟如下:

1、打開「我的文和改輪件」。



(2)android內部存儲路徑擴展閱讀

Android平台的優勢:

1、開放性:

在優勢方面,Android平台首先就是其開放性,開發的平台允許任何移動終端廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨著用戶和應用的日益豐富,一個嶄新的平台也將很快走向成殲銀熟。

開放性對於Android的發展而言,有利於積累人氣,這里的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟體資源。開放的平台也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

2、豐富的硬體:

這一點還是與Android平台的開放性相關,由於Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。

功能上的差異和特色,卻不會影響到數據同步、甚至軟體的兼容,如同從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優秀的軟體帶到iPhone上使用、聯系人等資料更是可以方便地轉移。

3、Google應用:

在互聯網的Google已經走過10年度歷史,從搜索巨人到全面的互聯網滲透,Google服務如地圖、郵件、搜索等已經成為連接用戶和互聯網的重要紐帶,而Android平台手機將無縫結合這些優秀的Google服務。

3. Android存儲及路徑

分為:內部存儲和外部存儲

如何區分內部存儲和外部存儲:可以從物理和邏輯區分

從物理的角度區分,內部存儲就是手機自帶存儲空間,外部存儲就是外部接入的存儲空間例如SD卡

從邏輯意義上區分,data,system 目錄就是手機的內部存儲,而 mnt 或者 storage目錄下的sdcard0指向的sdcard目錄就是外部存儲。如果是手機自帶的外部存儲被稱為機身外部存儲,外置的SD卡則稱之為外部存儲。當然兩者都稱為外部存儲也沒關系。這里描述的內部存儲和機身外部存儲都屬於機身存儲;

邏輯區分是從4.4以上版本開始的;

獲取內部存儲路徑和api對應關系

1,通過Environment

2,通過上下文Context

Build.VERSION_CODES.LOLLIPOP及以上版本新增的API

Build.VERSION_CODES.N及以上版本新增的API

特點:

1、內部存儲路徑中的文件是分類存儲的,我們無法干涉,除了cache目錄,別的目錄系統不會自動創建

2、除了files目錄,別的目錄我們幾乎都是無法手動操作的

3、別的App幾乎無法訪問內部存儲中的數據,除了用非法手段或者我們主動暴露

4、內部存儲目錄下的文件夾及文件會隨著app的卸載而被系統自動刪除

外部存儲又可分為共有目錄和私有目錄;

私有目錄

私有目錄:不需要訪問許可權

Android 在外部存儲空間中也提供了特殊目錄供App存放私有文件,該路徑為:/storage/emulated/0/Android/data/包名/

注意:應用安裝之後/storage/emulated/0/Android/data/是沒有對應的應用文件夾的,需要手動調用對應的API創建;

獲取私有目錄路徑

共有目錄

共有目錄:需要申請許可權才能訪問

許可權:6.0以上需要動態申請

獲取共有目錄的API 29中已過時:

4. Android數據存儲之File總結

在使用File存儲App數據時,我們需要了解Android系統的存儲系統。Android的存儲分為內部存儲和外部存儲。

由於Android系統的廠商比較多,對於外部存儲目錄的定義有所不同,可能在根目錄下的mnt,sdcard和storage下。以storage為例,打開emulated/0目錄,外部存儲目錄就出現了。雖然可以通過多種路徑打開外部存儲文件,但是最終他們的路徑是相同的:

mnt:

storage:

sdcard:

外部存儲目錄下包含兩大類:公有目錄和私有目錄

私有目錄:

對比下來External有以下幾點優點:

缺點:

內部存儲與外部存儲許可權申請對比如下:

首先我們要獲取外部存儲目標文件的路徑:

然後確定自己需要創建的文件名,結合上面的到的路徑,創建一個File對象:

Android系統默認數據清理的路徑是,內部存儲目錄中相應的cache文件夾中的文件和外部存儲中相應的cache文件夾中的文件。

你的app的internal storage 目錄是以你的app的包名作為標識存放在Android文件系統的特定目錄下[data/data/com.example.xx]。 從技術上講,如果你設置文件為可讀的,那麼其他app就可以讀取你的internal文件。然而,其他app需要知道你的包名與文件名。若是你沒有設置為可讀或者可寫,其他app是沒有辦法讀寫的。因此只要你使用MODE_PRIVATE ,那麼這些文件就不可能被其他app所訪問。

另外記住一點,內部存儲在你的APP卸載的時候,會一塊被刪除,因此,我們可以在cache目錄裡面放置我們的圖片緩存,而且cache與files的差別在於,如果手機的內部存儲空間不夠了,會自行選擇cache目錄進行刪除,因此,不要把重要的文件放在cache文件裡面,可以放置在files裡面,因為這個文件只有在APP被卸載的時候才會被刪除。還有要注意的一點是,如果應用程序是更新操作,內部存儲不會被刪除,區別於被用戶手動卸載。

不管你是使用 () 來存儲可以共享的文件,還是使用 getExternalFilesDir() 來儲存那些對於你的app來說是私有的文件,有一點很重要,那就是你要使用那些類似DIRECTORY_PICTURES 的API的常量。那些目錄類型參數可以確保那些文件被系統正確的對待。例如,那些以DIRECTORY_RINGTONES 類型保存的文件就會被系統的media scanner認為是ringtone而不是音樂。

在開發中,不建議往內部存儲中寫太多的數據,畢竟空間有限。外部存儲在使用的時候最好能夠將文件存放在私有目錄下,這樣有利於系統維護,也避免用戶的反感。

徹底理解android中的內部存儲與外部存儲

Android存儲挖坑記

緩存文件可以放在哪裡?它們各自的特點是什麼

5. 手機內部存儲空間是哪個文件夾

/storage/emulated/0 手機的內部儲存根目錄,/storage/emulated/1 手機的內存卡儲存根目錄。

android的API的得到的就是/storage/emulated/0/,這個路徑我們用的時候一般直接進/sdcard/或者/mnt/sdcard/,其實是一個相同的位置。

/storage/emulated/0這個是手機內部存儲空間(即手機內存),手機連接電腦後,在手機上選擇管理文件就可以查看了。



擴展汪搭資料

主要敬余包含自身系統占據的空間和用戶可用的空間困稿拿兩部分。ROM相當於PC機上的硬碟,用來存儲和保存數據。

即使是斷電,ROM也能夠保留數據。手機中的系統文件,或者圖片、音樂、照片等通常是存儲在這裡面的。

從技術上講,這個代碼在Windows上也能運行,因為python會在調用open()函數時識別出任何一種斜杠。即便如此,你也不應該依賴它。

不是所有的python庫都可以在錯誤的操作系統上使用錯誤的斜杠,特別是當它們有外部程序或庫介面時。並且,Python對混合斜杠類型的支持僅限Windows,它無法反向工作。

參考資料

網路—手機系統內存

鳳凰網—Python小技巧:3個處理文件路徑的簡單方法

6. android系統,手機拍完的視頻存在哪個文件夾里

camera文件夾。

在相冊點開該視頻的詳細信息可以看到具體完整路徑,完整路徑是:文件管理→內部存儲→DCIM→Camera。

以榮耀10為例,查看路徑並找到該文件的步驟:

1、手機桌面點擊相冊。

7. 安卓 文件夾目錄整理

記錄一下開發中遇到的一些目錄。
在開發中會有內部存儲器(Internal Storage)和外部存儲器(External Storage)。

內部存儲,路徑:data/data/packageName/(此部分的根目錄)。這個目錄下的文件為應用私有的,其他的應用是無法訪問的。同時此目錄下的文件是會隨應用的卸載而被刪除。 讀寫此目錄下的文件是不需要許可權的。

- getDir(String name, int mode) 返回對應目錄下的File文件夾對象。
- getFilesDir() 返回根目錄/files文件夾, Context.openFileInput() 和 Context.openFileOutput 都是這個文件夾。
- fileList() 返回的是files下的所有文件名
- deleteFile(String name) 刪除files下指定名稱的文件。
- getCacheDir() 該方法返回的是根目錄/cache的File對象.當Android的內部存儲容量過低時,android會自動清除緩存文件

外部儲存,在此存儲數據是不安全的。在這部分存儲,個人可以分為兩個部分來總結。

1.本應用相關目錄
此部分路徑為/storage/emulated/0/Android/data/packageName/。此目錄下的文件會隨軟體的卸載而被刪除。 在4.4之後讀寫此目錄下的文件不需要許可權 。但是這個目錄下的文件可以被用戶以及帶有 WRITE_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 許可權的應用讀取或修改。

- getExternalFilesDir(String type) 返回/storage/emulated/0/Android/data/packageName/files/type文件夾,若type為 null 則返回/storage/emulated/0/Android/data/packageName/files文件夾。
- getExternalCacheDir() 返回/storage/emulated/0/Android/data/packageName/cache文件夾

2.外部自定義目錄
除1以外的目錄。讀寫這部分文件需要 WRITE_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 許可權, 6.0以上需要運行時許可權。這部分文件是不會隨應用被卸載而刪除。

- Environment.getExternalStorageDirectory() 返回/storage/emulated/0文件。

熱點內容
易手遙控連接密碼是多少 發布:2025-02-03 22:44:26 瀏覽:166
sql安裝程序配置伺服器失敗 發布:2025-02-03 22:44:25 瀏覽:586
可以寫腳本的點擊器 發布:2025-02-03 22:44:22 瀏覽:612
c演算法代碼 發布:2025-02-03 22:42:20 瀏覽:862
腳本貓 發布:2025-02-03 22:36:30 瀏覽:137
qt軟體如何反編譯 發布:2025-02-03 22:36:27 瀏覽:22
linux串口數據接收 發布:2025-02-03 22:33:11 瀏覽:553
戰雙封腳本嗎 發布:2025-02-03 22:32:14 瀏覽:446
可用內存存儲 發布:2025-02-03 22:28:05 瀏覽:74
郵箱登錄需要伺服器地址是啥 發布:2025-02-03 22:27:27 瀏覽:550