在 I/O 2019 開發者大會上,谷歌宣佈了許多應用、服務和開發者工具更新,但 Android OS 依然是各界關注的焦點。
今年的大會上,谷歌依然為 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】
需要指出的是,儘管 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】
雖然氣泡能夠以微小、可調整大小的形式出現,但它們必須滿足一個或多個的條件,才能被通知 API 給呼叫。
至於徹底棄用 SYSTEM_ALERT_WINDOW API 的時間,谷歌尚未給出確切的時間表。但是對於開發者來說,現在也是時候做好遷移至 Bubbles API 的準備了。
在 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】
需要指出的是,儘管 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】
雖然氣泡能夠以微小、可調整大小的形式出現,但它們必須滿足一個或多個的條件,才能被通知 API 給呼叫。
至於徹底棄用 SYSTEM_ALERT_WINDOW API 的時間,谷歌尚未給出確切的時間表。但是對於開發者來說,現在也是時候做好遷移至 Bubbles API 的準備了。