安卓應用為什麼要在內部存儲留下這麼多文件?

不是很了解安卓系統,但是就我所知,系統為每個應用都提供了獨立的數據存儲空間。那麼為什麼很多應用還要在內部存儲新建大量文件夾?

舉幾個例子:

1 支付寶錢包生成了3個文件夾,alipay,還有兩個com.*的目錄。(不過新版好像把它們已到了子目錄里)

2 UC瀏覽器:UCDownloaded,UCDownloadedHD,即使設置了下載目錄為Download文件夾,每次啟動仍然會創建。

3 網易:網易舊版的News,CloudMusic都把文件放在了netease之下,但新版似乎倒退了。

……

這一行為似乎很不為用戶考慮,使得根目錄混亂不堪,自己的文件只能放在SD卡,以便於查找。

-----

個人想法,大部分應用應該完全不需要這些文件夾,log文件普通用戶絕對不會去查看,那麼為什麼還要新建目錄存放在用戶可見的區域呢?下載類應用比如UC,CloudMusic等應該在用戶自定義設置後根據設置管理目錄而非啟動新建。

-----

不針對個別應用,因為這個一個普遍現象,上述僅是舉例而已。個人想法只是希望開發者能夠考慮到這一點,更多地為用戶考慮。

也如果是因為對安卓的知識太少的錯誤。。。


因為它們是流氓唄

因為它能做所以它就是這麼做了


因為Google文檔上給的是 Environment.getExternalStoragePublicDirectory() 或者 getExternalFilesDir()【前者公有,卸載時會被保留】

而如果使用百度「Android 在SD卡上寫入文件」上查到的 基本都是getSDPath();

前者拿到擴展區程序儲存目錄,後者是SD根目錄。

[怪Google被牆嘍


1.首先android是有提供獲取內置和外置存儲,app存儲數據所需要的目錄介面,不過存放的數據會隨著app的卸載而被系統自動清掉。

2.在外置存儲(sd卡)創建目錄存放數據則不會隨著應用卸載而被清掉,適用於下載的歌曲,應用等重要數據。

3.至於為什麼一個應用或同一公司多個應用會創建多個目錄,私以為由於各個模塊編寫人不同,沒有制定統一的數據存放約束規範。

4.為什麼像緩存,廣告,縮略圖等這些不重要的數據,放在單獨創建的目錄里,而不是app指定的目錄里。可能是一部分開發人員沒太在意這2者的區別,或者是不知道,或者能好使就行。而在sd卡創建文件存放數據,這一思路,為大家所熟知,所以造成了到處都是目錄的情況。


留下革命的種子


支付寶錢包其實生成了7個文件夾,包括隱藏的,淘寶則生成了6個。阿里喜歡把用戶的內存卡當自己家,我很不喜歡真么大大咧咧的客人,所以把它全家都請走了,包括UC瀏覽器、高德地圖、蝦米音樂。


觀察可以發現,創建多個文件夾的多是國產軟體。國際各廠多是僅一個文件夾。所以是國產流氓誤導你認知。


因為在sd卡上自己建目錄才不會在卸載的時候被一同刪掉


推薦閱讀:

程序員在公司沒事幹時候,做什麼好?
eclipse中運行安卓模擬器為什麼這麼慢?
20K的Android程序員需要哪些技能?
android studio創建新項目為什麼沒有R文件,layout文件夾等?
2016年年末作為一個Android 中級工程師都需要掌握哪些技能呢?

TAG:Android應用 | Android開發 |