Android 4.4 KitKat雖然已經發佈很久了,還升級了好多次,但在浩如煙海的源代碼中,依然隱藏著大量的新東西等待挖掘,比如第三方應用對SD卡的訪問。
Android 系統手機有一套自己的存儲管理制度:幾乎任何類型的存儲設備都被稱為“外部存儲”(external storage),包括內部的NAND閃存,這個叫做“主要存儲”(primary storage),而其他的一切都是“次要存儲”(secondary storage),比如SD卡。
隨著 Android 系統的不斷升級,第三方應用對存儲的訪問權限控制經過了多次調整,詳細三說起來就複雜了,這裡重點說最早、最常用的寫入要求權限“ WRITE_EXTERNAL_STORAGE ”,它可以讓應用寫入主要存儲(內置閃存),但不能寫入次要存儲(SD卡)。
Android 4.4裡邊,對於對所有外部存儲,其上的文件屬性都改為基於文件夾結構,應用無需獲取WRITE_EXTERNAL_STORAGE權限,即可在外部存儲上管理與自己包名相關的文件夾。舉例來說,如果應用的包名是name com.example.foo,那麼外部存儲上的Android/data/com.example.foo/文件夾就是它的了,可隨意訪問。
這其中也包括SD卡,第三方應用可以在上邊創建一個屬於自己的專區,隨意讀寫、刪除,就像在內置存儲是各樣。
除此文件夾之外的其他地方,第三方應用仍然會被嚴格限制,得不到寫入和刪除權限。
不過這也存在一個潛在風險:SD卡是可以隨意插拔的,可以在電腦上訪問,因此可能會導致洩密。
另外需要特別注意的是,應用卸載的時候,在SD卡上創建的相應文件夾、數據都會被同時完全刪除,所以如果有照片、文檔等個人資料,應當避免這麼做。
最後,U盤等設備的訪問控制不在本文討論範圍之內。
最後的最後, Android 系統有自己的標準,OEM廠商、ROM開發者又有各自的一套,經常不會嚴格遵循Google制定的規則,因此剛才說的種種不一定會出現在你的手機裡。
凱366 發表於 2014-2-18 23:53 static/image/common/back.gif
Google一直在擋,第三方一直在鑽....
鸚鵡 發表於 2014-2-18 23:57 static/image/common/back.gif
是唷 我覺得這是比較好的方案耶
下班回家吃宵夜去
鸚鵡 發表於 2014-2-18 23:36 static/image/common/back.gif
我之前就一直在思考
為什麼系統不改成不限制 /data 下儲存資料
而是讓APP自己決定使用 /data 或是 外部儲存 ...
歡迎光臨 米柚愛好者論壇 (https://mi.ezbox.idv.tw/) | Powered by Discuz! X2.5 |