在I / O 2019首日“Android中有什么新東西”的演講中,谷歌宣布即將對一個非常舊的API——SYSTEM_ALERT_WINDOW,進(jìn)行重大更改。該API允許應(yīng)用在其他應(yīng)用上顯示內(nèi)容,常見的用途之一是“聊天頭泡”(例如Facebook Messenger,見下圖)。谷歌已經(jīng)在Android Q中以新的Bubbles API代替SYSTEM_ALERT_WINDOW API,并且決定在未來的Android版本中最終棄用SYSTEM_ALERT_WINDOW API。

允許應(yīng)用程序在其他應(yīng)用程序之上顯示內(nèi)容會帶來明顯的安全風(fēng)險(xiǎn),臭名昭著的“Cloak and Dagger”漏洞就是利用了該功能,證明SYSTEM_ALERT_WINDOW API需要被控制。

谷歌在Android Oreo開始限制疊加顯示的區(qū)域,并且在Android Q Go中已經(jīng)完全刪除了對的SYSTEM_ALERT_WINDOWAPI的訪問。在未來的Android版本中,SYSTEM_ALERT_WINDOW將被完全棄用,所有使用它的Android應(yīng)用都必須轉(zhuǎn)換到Android Q beta 2中引入的新Bubbles API。


▲Android Q中的Bubbles API
但是,Bubbles是通知消息API的一部分,因此它不是SYSTEM_ALERT_WINDOW的完全替代品。雖然Bubbles以很小的、可調(diào)整大小的活動形式出現(xiàn),但它們必須由用戶從滿足一個或多個這些條件的通知中啟動。
使用SYSTEM_ALERT_WINDOW API的應(yīng)用程序開發(fā)人員必須在不久的將來開始研究Bubbles API,谷歌并沒有給出何時棄用SYSTEM_ALERT_WINDOWAPI的具體時間表,但估計(jì)將不再適用于Android R。
關(guān)鍵詞: