【老文档】长待机场景优化,24.5mA优化到20.29mA

本文介绍了一种通过管控特定应用程序行为来降低设备功耗的方法。针对后台启动透明activity及deepidle状态下通知栏应用或前台服务进程的网络访问问题,提出了具体的分析方法与解决方案,并实现了从24.50mA降至20.29mA的优化效果。
摘要由CSDN通过智能技术生成

1.现象:

在这里插入图片描述

2.分析方法:

  1. 使用移动热点+Wireshark实时查看第三方应用联网状态;
  2. NetLog+BugReport 查看唤醒异常

3.功耗异常点:

QQ
、微信等即时通讯应用,实际抓包和对比华为,依旧存在待机耗电,但是考虑消息即时性不进行任何省电管控;
针对灭屏后台启动透明activity类型,导致原生
doze误判加入 temp-power-save whitelist 的管控
11-08 20:13:19.157391 1199 2422 I
am_finish_activity: [0,73220790,224,com.jingdong.app.mall/com.igexin.sdk.GActivity,startActivity]
11-08 20:13:19.157500 1199 2422 I
am_destroy_activity: [0,73220790,224,com.jingdong.app.mall/com.igexin.sdk.GActivity,finish-imm:finishActivityLocked]

temp-power-save whitelist for 10175(com.jingdong.app.mall)
changed to: true
针对deep idle 下,通知栏应用或前台服务进程,可以被NetworkPolicyManagerService豁免现象
例如淘宝、百度搜索、网易新闻
Proc #25:
fore F/ /TOP trm: 5 0:com.netease.newsreader.activity/u0a191
(vis-activity)

com.fadi.android.launcher
oom: max=1001 curRaw=250 setRaw=250 cur=250 set=250

com.fadi.logger
oom: max=1001 curRaw=200 setRaw=200 cur=200 set=200

com.baidu.appsearch.AppSearch
oom: max=1001 curRaw=100 setRaw=100 cur=100 set=100

com.taobao.taobao
oom: max=1001 curRaw=200 setRaw=200 cur=200 set=200

/**
 * Returns true

if {@param procState} is considered foreground and as such will be allowed
* to access
network when the device is idle or in battery saver mode. Otherwise, false.
*/
public static boolean isProcStateAllowedWhileIdleOrPowerSaveMode(int
procState) {
return procState <=
FOREGROUND_THRESHOLD_STATE;
}

4.解决方案:

针对灭屏后台启动透明activity类型,导致原生
doze误判加入 temp-power-save whitelist 的管控

针对deep idle 下,通知栏应用或前台服务进程,可以被NetworkPolicyManagerService豁免现象

5.优化结果:由24.50 mA下降到20.29mA

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值