欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何讓Androidapp配置文件不要堆在根目錄?

江奕云2年前13瀏覽0評論

下周三,谷歌2019I/O開發者大會就將在其總部美國山景城的海岸線圓形劇場(TheShorelineAmphitheatre)舉行。如無意外的話,此次活動中也將迎來全新的AndroidQ大版本更新,以及Pixel3a系列中端機型的亮相。

不過在距離此次開發者大會的前一周,谷歌卻宣布了一個可能讓用戶略感到失望的消息。考慮到大量開發者認為適配新機制的難度較大,因此一個在AndroidQ上極大程度改善使用體驗的新特性“Scopedstorag”,將會被推遲一年上線。

文件存儲沙箱化與AndroidQ無緣

根據目前的相關信息顯示,在即將發布的AndroidQ上,谷歌將會帶來用戶期盼已經的黑暗模式、桌面模式、更強力的隱私管理、系統級的屏幕錄制、運營商SIM卡鎖定、多任務處理功能Bubbles,以及新字體新圖標形狀等等眾多的改變。

那么,這個所謂的“Scopedstorag”是什么呢?事實上,這是谷歌原計劃在AndroidQ上引入的全新文件存儲機制,即文件存儲沙箱化,能夠對應用文件存儲、訪問、分享等行為,帶來天翻地覆的變化。

簡單來說,就是在啟用這項新特性之后,通過第三方APP創建的文件夾,都只能被放置在一個個互不干擾的獨立存儲空間中,而無法像目前一樣寫入真正的存儲目錄,以實現真正的沙箱化。

存儲沙箱化將讓你的手機更私密、更安全

如果看到這里還是一頭霧水的話,那么不妨對比一下目前現行的Android系統存儲機制,就會很容易發現變化之處。AndroidQ之前,由于其系統底層是Linux,而Linux的機制是一個用戶對應一個uid,再加上Android是單用戶系統,而這里的“用戶”就變成了一個個的APP。

在APP安裝時,系統就會分配給其獨立的存儲區域以及uid,APP在虛擬機(ART)中運行,有獨立的空間和資源,在這一過程中,ART和Linux對文件訪問的控制實現了沙箱機制。當然,開發者可以給同樣簽名的應用(比如同一家公司的產品)配置相同的uid,以來實現資源共享。

但是Android在允許APP訪問屬于自己存儲區域(/data/data/packagename/),以及無法訪問不屬于自己的私有數據的限制之外,手機上的外部存儲(/sdcard)空間卻是共享的,也就是所有的APP都能隨意使用。需要指出的一點是,“sdcard”并非單純指常說的SD卡,而是指ROM在只讀型內存,以及不可見的內部存儲之外的區域。

絕大多數Android手機用戶應該都會遇到這種情況——以USB調試模式將手機連接到電腦上之后,在根目錄上可以看到茫茫多亂七八糟的文件夾,刪也不是,不刪著實讓人頭大。而在使用了“Scopedstorag”之后,所有的緩存文件都被強制限制在了“/sdcard/Android/sandbox”之中,在sdcard界面的文件夾數量減少到原來的不到百分之五,此時自然也就會變得更加簡潔。

APP只能在外部存儲中訪問自己的數據文件夾(位于/data/media/{user}/android),要訪問音樂或圖像照片等共享媒體文件,則必須請求用戶給予特定這些用例的動態存儲權限,獲得MediaProvider查詢系統的文件,并使用對應的ContentURI來訪問。

比如說在新機制下,微博想要讀寫外部存儲的時候,系統并不會開放所有權限,而是只能讓微博只能讀寫“/sdcard/Android/sandbox/WeiBo”。因此這時微博想要知道用戶在隔壁的微信里干了啥,也就顯然是無法實現的了。

開發者不買賬,谷歌也沒辦法

看到這里,作為用戶是不是覺得“Scopedstorag”很好很給力,對于隱私保護和安全性都有明顯的提升。但是抱歉,谷歌討好消費者的努力,并沒有得到開發者的歡迎,甚至不光口頭抱怨,在行動上也陽奉陰違。畢竟這項功能將實實在在傷害開發者的利益,因此在目前的AndroidQBeta2上,完全適配這一功能的APP少之又少,而許多其他APP在測試版中呈現出的,就是瘋狂閃退的現象。

開發者認為谷歌沒有給他們足夠的時間,來為StorageAccessFramework(存儲訪問框架)進行所有必要的更改,而不進行更改的后果,就是運行頻繁報錯。而且由于沙箱化存儲影響了運行在AndroidQ上的所有應用程序,因此無論該APP是否真正針對AndroidQ進行開發,都必須進行更新。

事實上,不同于之前AndroidO/P上提供APILEIVE很快被開發者接受,文件存儲沙箱化被其陽奉陰違也有著不少的原因。首先這一改變將提升開發者的工作量,同時讓第三方APP的一些小九九再也不能實現。在新的存儲機制之下,一款APP卸載之后就與iOS版一樣是無殘留的,之前的數據會一并清空,而這與目前許多APP,特別是國內應用“卸載后重裝依然能夠讀取老數據”的設計思路完全沖突,畢竟將會導致用戶流失率的提升,更不利于用數據吹牛。

再加上,如果Android也與iOS一樣完成整個系統的沙箱化,無法隨意訪問外部存儲,系統底層直接封殺越界讀寫,那么也就意味著某些心存不良的APP,此前隨便看照片及通訊錄等敏感數據的行為將成為歷史。而開發者在此前長時間已經習慣了這樣操作的情況下,突然這樣改變自然就會導致戒斷反應。

舉個例子,之前某東金融就被傳出在后臺運行時,會自動保存用戶的屏幕截圖,抓取用戶使用拍照功能拍攝的照片,就是因為保存照片的文件夾屬于外部存儲,基本是個APP都能訪問。有的APP自律性比較高,不是自己的東西不看,但是有的下限就很低了,而“Scopedstorag”就是為了杜絕這類現象,但是這不就擋著人家財路了嗎?

越界讀寫消失的同時,也會在無形中讓第三方文件管理類APP成為歷史名詞,畢竟都看不了其他APP都存放了些什么,自然也就無法進行自己的本職工作。

從這里就能看出,谷歌對于Android越來越不上心的原因,確實有在為用戶考量。但是一方面是Android本身的各種先天性不足,另一方面谷歌在Android中的地位是盟主和大股東,因此盡管說話確實一言九鼎,可架不住自家小弟們各懷鬼胎,而這一回就很有一種“陛下何故謀反”的感覺。

畢竟,谷歌不像作為AppStore和iOS唯一股東的蘋果,能夠對旗下的軟件生態擁有說一不二的權力。有10086種理由直接封殺與自己競爭的第三方APP,開發者只能去找歐盟訴苦的情況下,谷歌就只能放任這些第三方APP與自己搶生意。

在谷歌另起爐灶的FuchsiaOS第一個“發布候選版本(releasecandidate)”,以及華為方舟編譯器先后亮相之際,Android這艘大船還是不是能一直前進下去,恐怕現在誰都說不好了。