Google的年度I / O开发人员大会上充斥着有关Google所有应用程序,服务和开发人员工具的新闻,但是Android OS是最大的主题之一。Android目前在全球超过25亿台设备上使用,在Google I / O上花费了大量时间。该平台有很多更改-实际上,是如此之多,以至于Google不可能对每个更改都给予同等的关注。在I / O 2019第一天的“ Android新增功能”演讲中,Google宣布即将对一个非常老的API进行重大更改:SYSTEM_ALERT_WINDOW。该API使开发人员可以在屏幕上方绘制覆盖图,最著名的用途是用于聊天气泡(例如Facebook Messenger)。现在,Google 以Android Q中的Bubbles形式向SYSTEM_ALERT_WINDOW提供了替代API,Google已决定在以后的Android版本中最终弃用SYSTEM_ALERT_WINDOW。

有关SYSTEM_ALERT_WINDOW即将弃用的文章,已成定局。允许一个应用在其他应用之上覆盖窗口会带来明显的安全风险;臭名昭著的“ 斗篷和匕首 ”漏洞证明了需要控制SYSTEM_ALERT_WINDOW。

Google开始限制在Android Oreo中可以覆盖叠加层的区域,并且它们已经完全删除了对Android Q(Go Edition)API的访问。SYSTEM_ALERT_WINDOW的最大问题是,尽管事实上用户应该手动进行通过特殊的权限管理屏幕授予权限,则Google Play商店会在安装后自动授予对该权限的访问权限。在Android Q中,对SYSTEM_ALERT_WINDOW权限的访问是短暂的:侧面加载的应用只能访问该权限30秒钟,而通过Google Play安装的应用可以访问该权限,直到设备重启。

但是在未来的Android版本中,将不建议使用SYSTEM_ALERT_WINDOW,所有使用该版本的Android应用都必须过渡到Android Q beta 2中引入的新Bubbles API。

但是,气泡是Notification API的一部分,因此它不能完全替代SYSTEM_ALERT_WINDOW。尽管气泡的形式是微小的,可调整大小的活动,但是气泡必须由用户从满足这些条件中一个或多个的通知中启动。

使用SYSTEM_ALERT_WINDOW API(其中有很多)的应用程序的开发人员必须在不久的将来开始研究替代的Bubbles API。我们试图确定Google何时计划弃用该API的时间表,但没有得到答案。不过,假设该API不会持续很长时间:我敢打赌,它将不再在Android R中可用。

您可以通过以下YouTube链接(始于16:53)观看整个“ Android新增功能”会话。