5月9日消息在I / O 2019首日“Android中有什么新东西”的演讲中,谷歌宣布即将对一个非常旧的API——SYSTEM_ALERT_WINDOW,进行重大更改。该API允许应用在其他应用上显示内容,常见的用途之一是“聊天头泡”(例如Facebook Messenger,见下图)。谷歌已经在Android Q中以新的Bubbles API代替SYSTEM_ALERT_WINDOW API,并且决定在未来的Android版本中最终弃用SYSTEM_ALERT_WINDOW API。
允许应用程序在其他应用程序之上显示内容会带来明显的安全风险,臭名昭着的“Cloak and Dagger”漏洞就是利用了该功能,证明SYSTEM_ALERT_WINDOW API需要被控制。
谷歌在Android Oreo开始限制叠加显示的区域,并且在Android Q Go中已经完全删除了对的SYSTEM_ALERT_WINDOWAPI的访问。在未来的Android版本中,SYSTEM_ALERT_WINDOW将被完全弃用,所有使用它的Android应用都必须转换到Android Q beta 2中引入的新Bubbles API。
但是,Bubbles是通知消息API的一部分,因此它不是SYSTEM_ALERT_WINDOW的完全替代品。虽然Bubbles以很小的、可调整大小的活动形式出现,但它们必须由用户从满足一个或多个这些条件的通知中启动。
使用SYSTEM_ALERT_WINDOW API的应用程序开发人员必须在不久的将来开始研究Bubbles API,谷歌并没有给出何时弃用SYSTEM_ALERT_WINDOWAPI的具体时间表,但估计将不再适用于Android R。