Android 11特性調整:安裝外部來源應用需要重啟APP
儘管每次Android版本更新都會引入一系列新功能,但谷歌習慣重新打磨或者完全刪除某些稱手的功能和特性,而目前處於Developer Preview 4的Android 11也不例外。正如穀歌在問題追踪器上提交的那樣,新版Android讓應用安裝APK的權限變得不再方便,需要重新啟動相關應用才能生效。該行為與強制分區存儲(Scoped Storage)有關。
在Android 10 及以下版本,APK 文件的安裝過程相對來說比較簡單。當你從瀏覽器或者其他應用(例如APKMirror Installer)中安裝APK文件的時候,會被要求授予安裝權限。
如果你選擇打開該選項,那麼使用手勢或者點擊返回按鈕就會跳轉回原來的位置,並且會跳出一個對話框詢問你是否願意安裝之前選擇的APK。如下方圖片所示:
而這個行為在Android 11 上就會發生改變。正如不滿該特性的測試人員在該問題的追踪頁面上所反饋的,在用戶授予權限之後,雖然安裝對話框依然會彈出,但是該應用本身就消失了。
當你重新打開應用程序的時候,你就會發現整個APP 被重新加載,這就意味著此前輸入的內容或者其他尚未緩存的數據就會丟失。而Android 通常只有在撤銷權限的時候才會強行退出應用程序以阻止應用被破解,而不是在授予權限的時候強行退出。
在問題追踪器上,谷歌工程師並沒有太過重視這個問題。最初的評論中只是寫道:“這實際上是按照預期的工作方式進行”。直到有更多開發者反饋這個問題之後,谷歌才明確這個新特性是實際上和分區存儲(Scoped Storage)有關。
在Android R 中,文件系統和存儲掛載的設置方式發生了很大變化。當一個應用程序在沒有這個權限的情況下啟動時,它將獲得一個不允許寫入某些目錄(例如Android/obb 的文件系統視圖。一旦應用被授予了這個權限,這個視圖就不再準確,需要更新為允許應用寫入某些目錄的視圖。
以Android R 文件系統現有的設置方式,不可能馬上改變這個視圖。正如評論#16中提到的,我們正在內部評估。我只是提供了一些額外的細節,說明為什麼這和Q上的方式不一樣。
雖然Scoped Storage 將有利於安全和隱私,但新系統顯然會帶來比預期的更大的變化。讓我們希望該公司想出一個不需要強行退出應用程序改變其讀寫權限的解決方案。但sideloading 支持在谷歌的優先級上不會太高,我不會感到驚訝,特別是由於每個應用程序只需要授予權限一次,因此理想情況下,每個應用程序只需要強行停止一次。