前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 功耗(12)---省电续航-相互唤醒

Android 功耗(12)---省电续航-相互唤醒

作者头像
233333
发布2020-10-29 10:41:57
9990
发布2020-10-29 10:41:57
举报
文章被收录于专栏:linux驱动个人学习

省电续航-相互唤醒

相互唤醒现象描述

代码语言:javascript
复制
安装100个APP,不小心点开了一个唤醒类型的APP,过一会儿,后台偷偷自启动了30~40个APP。
怪不得雷布斯之前说国内的应用市场环境太乱了,很多情况下用户都把耗电归结于Android系统就是比IOS不给力、电池low、这个ODM厂商的系统真耗电。

相互唤醒类型APP

代码语言:javascript
复制
01百度系APP家族:
02阿里系APP家族:
03腾讯系APP家族:
04个推系APP家族:
05友盟系APP家族:
06各种推送服务类型的APP

这是一个很有趣的“葫芦娃”现象,举个栗子,不小心点开了上述家族的任意一个应用,手机亮屏解锁,这时被打开的葫芦娃,

他会马上叫醒家族中的所有葫芦娃,“大家快后台启动起来啊,待会我们要在通知栏发消息,打广告了”。

可以在设置中的“正在运行的应用列表”查看,一般会发现好多应用启动了。

相互唤醒带来的危害

代码语言:javascript
复制
01同时启动家族内的所有APP的动作,会因后台启动数量过多,带来短暂造成系统卡顿;
02过多且非用户主动打开的后台应用,对系统内存和续航能力都是一种流氓的慢性蚕食。
03用户通知栏更是变成各种商业的博弈,个别后台推送消息还调用提示音进行广告提示,巴不得用户24小时使用。其实任何的图形和声音调用都是需要费电的。
04若缺乏自启动管理,每次用户开机不打开任何应用,后台也是会卖力的启动任何可以后台启动的应用
05待机下快速进入深度休眠模式因相互唤醒机制变得很困难,系统深度休眠模式的待机电流在5mA左右,若是一款不装任何应用的手机,待机时
代码语言:javascript
复制
间按天算都是小case
总之一句话,占内存费电。

相互唤醒的启动方式

方式一:
代码语言:javascript
复制
系统广播(开机、解锁)->启动推送服务pushService,即第三方APP永远不被杀死的SDK技术->将所有注册相同推送服务的家族系APP执行后
台启动;
方式二:
代码语言:javascript
复制
通过AlamManagerService定时启动pushService->将所有注册相同推送服务的家族系APP执行后台启动;
方式三:
代码语言:javascript
复制
ContentProvide读取数据启动app->启动推送服务pushService,即第三方APP永远不被杀死的SDK技术->将所有注册相同推送服务的家族系APP执行后台启动;
方式四:

伪装Activity或前台进程启动app->启动推送服务pushService,即第三方APP永远不被杀死的SDK技术->将所有注册相同推送服务的 家族系APP执行后台启动;

上述相同点在于推送SDK技术完成相互唤醒操作,主要是由于官方的Google本身被墙,品牌厂商不得已阉割了Google服务,导致无法想IOS那样APNS技术管理推送消息进行统一管理,导致国内的应用市场环境趋利性,一味的根据自己的利益,后台强行推送自己的广告消息给无辜的用户。

解决方法:

1.自启动管理:在开机的时候就限制应用的后台偷偷自启动行为;PS:经过多年的手机厂商和流氓应用的斗智斗勇,目前市面上品牌手机自带的自启动管理可以很好的限制程序自启动,当然以前的纯粹禁用开机广播组件方法在相互唤醒已经流氓应用 失效了,当然解决方案也是有的,毕竟道高一尺,魔高一丈,大家都是相互进步的。

2.后台清理:主要利用APP休眠技术防止应用的后台启动和相互唤醒,这里的技术实现也是很巧妙的;

3.通知管理:将不希望在通知栏出现广告信息的应用屏蔽显示,这里主要是通过权限管理的方式禁用流氓应用的消息显示功能;

4.Android设置–> WLAN–>点击菜单键选择高级–>休眠状态下保持WLAN连接的下拉列表{始终、仅限充电时、从不(会增加数据流量)},如果设置不为始终,那么我们锁屏休眠后,程序将会处于无网络状态,相应的app用户会一直处于离线模式,不仅仅更省电,还可以进一步限制应用相互唤醒行为;

上述相同点在于推送SDK技术完成相互唤醒操作,主要是由于官方的Google本身被墙,品牌厂商不得已阉割了Google服务,导致无法想IOS那样APNS技术管理推送消息进行统一管理,导致国内的应用市场环境趋利性,一味的根据自己的利益,后台强行推送自己的广告消息给无辜的用户。

解决方法:

1.自启动管理:在开机的时候就限制应用的后台偷偷自启动行为;PS:经过多年的手机厂商和流氓应用的斗智斗勇,目前市面上品牌手机自带的自启动管理可以很好的限制程序自启动,当然以前的纯粹禁用开机广播组件方法在相互唤醒已经流氓应用

2.后台清理:主要利用APP休眠技术防止应用的后台启动和相互唤醒,这里的技术实现也是很巧妙的;

3.通知管理:将不希望在通知栏出现广告信息的应用屏蔽显示,这里主要是通过权限管理的方式禁用流氓应用的消息显示功能;

4.Android设置–> WLAN–>点击菜单键选择高级–>休眠状态下保持WLAN连接的下拉列表{始终、仅限充电时、从不(会增加数据流量)},如果设置不为始终,那么我们锁屏休眠后,程序将会处于无网络状态,相应的app用户会一直处于 离线模式,不仅仅更省电,还可以进一步限制应用相互唤醒行为;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 省电续航-相互唤醒
    • 相互唤醒现象描述
      • 相互唤醒类型APP
        • 相互唤醒带来的危害
          • 相互唤醒的启动方式
            • 方式一:
            • 方式二:
            • 方式三:
            • 方式四:
            • 解决方法:
          • 解决方法:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档