旧API将被弃用:谷歌敦促开发者迁移至Android Q的气泡弹窗

在 I/O 2019 开发者大会上,谷歌宣布了许多应用、服务和开发者工具更新,但 Android OS 依然是各界关注的焦点。目前 Android 已在全球超过 25 亿台设备上运行,并且占据了 I/O 会议的大部分时间。今年的大会上,谷歌依然为 Android Q 带来了许多变化。比如在首日的《What's New in Android》会议上,谷歌就宣布了一项重大的 API 更改。

旧API将被弃用:谷歌敦促开发者迁移至Android Q的气泡弹窗

(题图 via XDA-Developers)

据悉,SYSTEM_ALERT_WINDOW 是一个允许开发者在屏幕顶上绘制叠加层的全局弹窗 API,比如大家最熟悉的聊天气泡(参考 Facebook Messenger)。

不过现在,Google 已决定在 Android Q 中,用 Bubbles API 来替代 SYSTEM_ALERT_WINDOW 。而且在未来的 Android 版本中,谷歌还将彻底弃用旧 API 。

需要指出的是,尽管 SYSTEM_ALERT_WINDOW 可以方便开发者在其它 App 窗口上叠加气泡窗口,但它也会带来明显的安全隐患,比如臭名昭著的“Cloak and Dagger”漏洞利用。

作为应对,谷歌开始对 Android Oreo 中回退区域的层叠加以限制,且在 Android Q(Go)版本中完全移除了对该 API 的访问。

对于用户来说,应该尽量通过手动管理,对应用授予特殊的屏幕操作权限(Google Play 商店应用会在安装时自动授权)。

旧API将被弃用:谷歌敦促开发者迁移至Android Q的气泡弹窗

庆幸的是,在 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 的完全替代品。

相关推荐