Google在其最新的行動裝置作業系統Android Q增加Scoped Storage功能,將開始更嚴格地限制應用程式存取裝置外部儲存中的檔案,而為了即將發布的Android Q第三測試版,Google說明Scoped Storage的實施細節以及最佳作法

Android Q為了增加其安全性,在其核心加入了應用程式沙盒的概念,只要是未經授權的應用程式,都只能在沙盒中執行,Android Q會為每個應用程式都創建獨立的儲存沙盒,限制應用程式互相存取那些儲存在外部儲存的檔案,要求應用程式在獲得額外授權之後,才能存取照片、影片或是音訊等共享檔案。由於Scoped Storage功能的加入,賦予Android Q具有更細緻的控制媒體存取權限的能力。

Scoped Storage要求開發者分開應用程式共享以及內部使用的檔案,當應用程式處理用戶預設與其他應用程式共享,並在移除應用程式後還能使用的檔案時,應該使用MediaStore API。音訊、影片與圖片常用的媒體檔案,在Android Q中被歸類為特定的集合,開發者可以將這些檔案儲存在新的下載集合(Downloads Collection)中,應用程式要存取下載集合中的檔案,則必須呼叫系統的選擇器。

而應用程式要儲存自己內部使用,不希望與其他應用程式共享的檔案,開發者可以選擇將這些檔案儲存在特定套件的目錄中,Google提到,這個做法不只可以保持檔案整齊,而且在系統卸載應用程式的時候,也能順便將這些檔案清理乾淨。

對於使用MediaStore儲存的檔案,應用程式存取自己的檔案不需要任何授權,但要使用其他應用程式共享的媒體,則需要獲得額外的權限,而且當應用程式卸載並重新安裝後,則需要重新向使用者請求權限,才能夠使用先前該應用程式儲存的檔案。

對於即將發布的Android Q第三預覽版,Google表示,為Android 9 Pie開發的應用程式,也就是使用API等級28或是更低等級的應用程式,預設還不會受到任何影響,其儲存行為仍然跟之前的Android版本相同,但是當應用程式更新使用Scoped Storage之後,開發者可以使用新的Manifest屬性,在Android Q裝置上啟用新的儲存行為,Google預告,明年任何SDK等級的應用程式,即便是使用API等級28或是更低等級的應用程式,都將強制應用Scoped Storage,開發者現在就應該提早測試應對。


Advertisement

更多 iThome相關內容