舊API將被棄用:谷歌敦促開發者遷移至Android Q的氣泡彈窗
在I/O 2019開發者大會上,谷歌宣布了許多應用、服務和開發者工具更新,但Android OS依然是各界關注的焦點。目前Android已在全球超過25億台設備上運行,並且佔據了I/O會議的大部分時間。今年的大會上,谷歌依然為Android Q帶來了許多變化。比如在首日的《What’s New in Android》會議上,谷歌就宣布了一項重大的API更改。
(題圖via XDA-Developers)
據悉,SYSTEM_ALERT_WINDOW是一個允許開發者在屏幕頂上繪製疊加層的API,比如大家最熟悉的聊天氣泡(參考Facebook Messenger)。
不過現在,Google 已決定在Android Q 中,用Bubbles API 來替代SYSTEM_ALERT_WINDOW 。而且在未來的Android 版本中,谷歌還將徹底棄用舊API 。
Cloak & Dagger_ Invisible Grid Attack(via)
需要指出的是,儘管SYSTEM_ALERT_WINDOW可以方便開發者在其它App窗口上疊加氣泡窗口,但它也會帶來明顯的安全隱患,比如臭名昭著的“Cloak and Dagger”漏洞利用。
作為應對,谷歌開始對Android Oreo 中回退區域的層疊加以限制,且在Android Q(Go)版本中完全移除了對該API 的訪問。
對於用戶來說,應該盡量通過手動管理,對應用授予特殊的屏幕操作權限(Google Play 商店應用會在安裝時自動授權)。
慶幸的是,在Android Q 中,應用只擁有對SYSTEM_ALERT_WINDOW 的臨時訪問權限。
通過側載(Sideload)方式安裝的應用,只能獲得30 秒的訪問權限。而通過Play 商店安裝的應用,則能夠在重啟前保持這項訪問權限。
在未來的Android版本中,SYSTEM_ALERT_WINDOW將被完全棄用。所有使用該API的Android應用,都必須轉至Android Q beta 2中引入的全新氣泡API 。
不過,氣泡(Bubbles)屬於通知(Notification)API 的一部分,因此無法作為SYSTEM_ALERT_WINDOW 的完全替代品。
Android Q Beta 2 Experiments(via)
雖然氣泡能夠以微小、可調整大小的形式出現,但它們必須滿足一個或多個的條件,才能被通知API 給調用。
至於徹底棄用SYSTEM_ALERT_WINDOW API 的時間,谷歌尚未給出確切的時間表。但是對於開發者來說,現在也是時候做好遷移至Bubbles API 的準備了。