摘要:正如QQ刪除圖片引起的誤會一樣,安卓存儲目錄的亂象也是由於APP的不規範行爲引起的。我們經常可以觀察到安卓相冊中滿布莫名其妙的圖片,或者安卓存儲目錄到處是亂七八糟的文件夾。

最近,QQ偷偷刪圖片一事鬧得沸沸揚揚。有網友觀察到,在EMUI手機ROM當中,會提示QQ試圖刪除圖片。

QQ會偷偷刪圖片?只是一場誤會

但真相真的如此嗎?當然不是。騰訊和華爲很快就進行了回應,表明QQ刪除的是緩存文件,並非是用戶手動保存的圖片,QQ並不會對特定圖片採取刪除措施。而這個誤會,是由於QQ未遵循安卓規範、導致緩存圖片被誤判爲普通圖片引起的。

QQ官方回應,刪除的只是緩存圖片

實際上,除了QQ外,安卓APP不規範使用安卓存儲已經司空見慣。我們經常可以觀察到安卓相冊中滿布莫名其妙的圖片,或者安卓存儲目錄到處是亂七八糟的文件夾。爲什麼會變成這樣子呢?今天就來說說安卓目錄的亂象吧。

安卓相冊爲何亂糟糟?QQ被誤會的根本原因

正如QQ刪除圖片引起的誤會一樣,安卓存儲目錄的亂象也是由於APP的不規範行爲引起的。先來說說安卓對圖片存儲方面的規範吧。

安卓相冊之中,之所以會出現各類雜亂圖片,是因爲安卓會對存儲目錄進行掃描,並將掃描到的圖片們都在相冊當中顯示。很多用戶認爲,這個機制不盡合理,因爲掃描全盤圖片會令APP的緩存例如雜七雜八的、頭像廣告圖,都被掃描到相冊中顯示。然而,安卓其實早已經想到了這點,相冊混亂的鍋安卓還真不該背。

安卓相冊爲什麼經常有亂七八糟的圖?

在安卓的規範當中,如果某個目錄的圖片不想被相冊掃描到,可以在目錄當中生成一個.nomedia文件,標明這個目錄中不存在媒體文件,圖片就不會在相冊中被顯示出來。然而,很多APP都沒有去做這一步,這就導致安卓相冊被加了很多料。

本次QQ被提示試圖刪除圖片,也是因爲如此。QQ並沒有在緩存圖片的文件夾中添加.nomedia,這導致EMUI將QQ緩存圖片識別爲普通圖片,QQ自動清理緩存時,自然也會被EMUI提示有刪除圖片的行爲。

換言之,只要QQ按照安卓規範,在緩存目錄中添加.nomedia文件,就不會產生這個問題。

亂七八糟的安卓存儲目錄有救嗎?

安卓混亂是不只有相冊,文件目錄也是一團糟。

和iOS相比,安卓的一大便利之處在於更爲開放的文件系統,用戶可以在安卓機的存儲目錄下隨意讀寫文件。但是,這也帶來了問題,不少人發現,安卓機用久了以後,存儲目錄下就會多出很多奇奇怪怪的文件夾,這到底是哪來的呢?

安卓存儲目錄各種雜亂的文件夾哪來的呢?

這些文件夾其實是由各類APP創建的,不少APP會在安卓存儲目錄下生成自己要用到的目錄。百花齊放下,安卓的存儲目錄變得越來越令人眼花繚亂。

然而,安卓並非對此坐視不理。實際上,安卓也有APP建立存儲目錄的規範,例如安卓系統規定APP如果要在內部存儲空間建立文件夾,需要建立到/data/data/目錄下,在外部存儲空間則需要建立在/sdcard/Android/data/目錄下。APP在這些目錄創建文件夾有個好處,那就是當APP卸載的時候,相應的文件夾也會被刪除,而不會像現在那樣,APP卸載了,它創建的亂七八糟的文件夾依然存在,讓人煩不勝煩。

爲什麼安卓APP會不遵循規範呢?這裏面存在歷史遺留問題。安卓機的內部存儲目錄一度非常小,例如經典的Milestone的ROM只有512M,需要用SD卡擴展存儲空間,因此安卓APP往往會將文件保存在外部存儲目錄下(也就是sdcard目錄)。而安卓在4.3版本前並沒有提供外部存儲目錄的規範,APP習慣在sdcard目錄中隨意建立自己的文件夾,這個習慣一直保留到如今。

現在,儘管安卓建立了sdcard目錄的存儲規範,然而這一規範並非是強制性的。很多APP由於使用第三方SDK等各種各樣的原因,視安卓的存儲目錄規範不見,依然在sdcard目錄下自建文件夾,安卓存儲目錄的混亂由此而來。

不過,在新版的安卓系統中,這個現象有望得到改觀。在安卓9和安卓10中,安卓開始限制APP創建的文件夾;到了安卓11,系統將不再允許APP在sdcard建目錄和文件,APP只能夠往特定目錄的私人文件夾寫入數據。目前某些APP已經開始爲此做準備,例如新版QQ將存儲目錄從/sdcard/tencent/變更到了/sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是爲了適應安卓的存儲新機制。

總結

總的來說,當前安卓的存儲目錄依然是比較混亂的,但隨着安卓11的發佈,這個現象有望得到改善。並不是所有的安卓機都能夠用上安卓11,也希望各類APP儘快拋棄歷史包裹,規範自己的存儲目錄,帶來更少的垃圾文件,也避免“偷刪圖片”這類誤會發生。

相關文章