小米10pro(截止到2020年7月版本)最近疯狂杀后台就是小米照明弹功能和目前安卓机制冲突最好的例子。在小白测评 的20款应用打开测试中,小米系列miui12几款机型都有较为严重的杀后台问题,今天就给大家解析一下为什么会这样。安卓软件启动机制这有一个特别详细的博客,介绍了安卓软件从启动到后台防止被杀死的相关策略,具体如下,学过安卓开发的朋友可以研究一下,这里只做简单介绍,不做技术类代码解析:
安卓后台机制简单来说就是,目前大部分软件防止被杀死的办法有两种,一个是我打开一个父线程,如果检测到被杀后台马上打开新的子进程。另外一半办法将服务设置为粘性service。这样带来的好处就是我自己可以不断检测自己。简单理解两个思路分别是爹拉着儿子一起跑步,一个是自己监督自己运动。
小米在miui12开发的时候为了照明弹功能对service做出了极其严格的限制,这一块都在图四的小米miui12的相关文档描述中可以看到。也就是说小米是把粘性service直接禁了的,这对于一部分一直在用粘性service开发软件的厂商来说不是一件好事,因为这就意味着他们这条路被小米堵死了。
当然小米的本意也不是为了不让软件开发者开发,而是miui12的照明弹的本身需要这项功能。后续的话,安卓11 最新的ccd文档和谷歌开发者的讲述显示,会针对service进行新一轮的严格管理,再加上小米自己也会采用相应的策略避免此类问题,我相信类似的问题一定会解决。
最后,希望miui越来越好,后续我会解释更多的技术问题,如果需要我解释的话。