无所不用其极!盘点流氓App驻留后台的奇技淫巧

2017-08-26 10:36 稿源:太平洋电脑网  0条评论

流氓App驻留后台技巧:乱请求唤醒

用过安卓的朋友都知道,流氓App最烦人的一点就在于胡乱自行启动,这和流氓App们胡乱请求唤醒是密不可分的。安卓系统拥有唤醒机制,App可以同某些具体事件,触发特定动作。例如到了时间,App可以触发铃声;又例如连上了网络或者间隔一段时间,App可以触发数据同步动作。这些动作都需要唤醒App才能运行,于是流氓App就把频频使用“Alarm”、“Sync Adapter”等周期性任务唤醒自己,让自己不断在后台启动,这也是很多杀后台App无法彻底干掉流氓App后台进程的原因。

流氓App通常利用广播接收器触发后台自启动

对此,Google官方也尝试使用对齐唤醒机制来解决。在安卓6. 0 中Google引入Doze机制,让后台进程尽量在统一的周期中同时唤醒,使CPU得到尽可能长的休眠时间。不过,这个机制并不够激进,需要手机无操作静止较长时间才会工作,总体而言效果有限。如果用户使用手机频度较大,Doze机制甚至不会生效,流氓App们依然会不断吞噬着手机电量。

安卓6. 0 引入的Doze模式,旨在让App统一唤醒,但并不能彻底解决问题

流氓App驻留后台技巧:进程相互唤醒

除了利用安卓系统的唤醒机制,流氓App们还可以利用进程来相互唤醒。一方面,流氓App可以在后台注册多个进程,就算某个进程被干掉,也可以用其他进程来唤醒——如果你仔细观察,可以发现很多App都在后台注册了不止一个进程,为的就是不断唤醒;另一方面,流氓App们还可以抱团相互唤醒!当你开启了A应用后,它的进程可能会唤醒B应用,B应用的进程接而又会唤醒C应用,这种“链式唤醒”在国内的App中尤为常见,令人防不胜防。



用绿色守护能观察到很多App都是由其他App唤醒的

“链式唤醒”如此常见,是有原因的。由于Google服务的缺失,很多国内App为了实现推送和广告等功能,不得不使用一些第三方的SDK。这些第三方的SDK往往就会让App抱团唤醒,不少App其实不想耍流氓,但用了这些第三方SDK,也不得不变流氓。当然,解决方法还是有的,有心的开发者可以在使用流氓SDK的时候,接入Project Condom这个开源库,避免“链式唤醒”。

Google也知道进程唤醒的问题所在,于是安卓8. 0 的开发规范要求App一旦进入后台,需要在短时间内停止所有的后台服务,也不可以随便启动新的后台服务。至于这个效果如何,目前安卓8. 0 尚未普及,还有待观察。

流氓App驻留后台技巧:沆瀣一气

这应该就是终极的大招了!如果流氓App本身就和ROM有勾结,这App无疑就获得了最高通行权,无论如何也不会被干掉。例如,你何时看到过原生安卓会干掉Google Play(别说Play服务不流氓)?国内的一堆ROM也不会干掉自家的流氓推送服务,还得靠推送来卖广告呢。

面对这种情况,用户基本上是无能为力的。或许基于AOSP的第三方ROM可以解决问题,但并不是所有设备都有条件刷机。

总结

实际上,安卓的生态已经近似于恶性循环,流氓App们不断找方法驻留后台,而各种ROM为了对付流氓App,对后台限制又日益收紧,这令安卓渐渐缺失了最初的卖点。为此,业界也在想办法解决流氓App的问题,例如就有开发者提出了Android绿色应用公约,国内也打算联合开发者们建立统一的App推送机制,减少App后台驻留的必要性,希望安卓的生态最终还是可以越来越好吧。

有好的文章希望站长之家帮助分享推广,猛戳这里我要投稿

相关文章

相关热点

查看更多