机型

智能通知管理

深色省电皮肤

智能分辨率

关联启动或链式启动

蓝牙后台扫描功耗检测

后台频繁刷新检测

夜间关闭蓝牙

热点超时关闭

非交互场景省电

后台播放视频耗电检测

xxxx

自启动管理

无(动态壁纸功耗分析)

华为 P20 Pro

灭屏后自动清理不重要的通知

界面改为深色,可能影响使用体验,开启后有助于省电

自动降低分辩率,有助于省电

统计自启动和拦截次数

统计xx启动xx时间

预置黑白名单

自启动拦截记录

后台蓝牙持续扫描(扫描超过2小时),耗电过快,建议关闭

后台频繁刷新,耗电过快

夜间广播蓝牙

小米 Mi 8 Pro

是否允许系统唤醒

是否允许被其他应用唤醒

禁止耗电应用自启动

禁止耗电应用相互调用

通过多种传感器数据智能判断用户的非交互场景,在该场景下通知亮屏、呼吸灯、指纹、双击亮屏等会自动关闭,可减低误触和省电作用

OPPO RX17

禁止后台运行

智能限制后台运行

允许自动启动

自启动拦截记录

AI智能判断睡眠时段,在睡眠时让手机处于低功耗状态,更省电

机型

隐身立体声

智能通知管理

通知栏管理

健康使用手机

游戏模式

xxx

华为 P20 Pro

手机横屏时,将自动由高音质模式切换到立体声模式

分类识别应用通知并按通知重要性排序

应用下载、游戏中、聊天通知、精选通知、热门消息是否允许显示

1.设置屏幕使用的时间

2.限制应用的使用时间

3.睡眠模式屏幕变灰,变限制应用使用

有,日志中体现

小米 Mi 8 Pro

OPPO RX17

省电功能点

功能介绍

更新日期

耗电详情

1.后台长时间蓝牙扫描检测-华为P20

Pro

2.后台应用频繁刷新检测-华为P20 Pro

3.后台长时间播放视频检测-动态壁纸Defect发现

4.可能需产品定义UI和交互

2019/8/1

夜间睡眠场景

(非交互场景)

1.禁止通知亮屏-小米MI

8 Pro

2.禁止呼吸灯-小米MI 8 Pro

3.禁止指纹-小米MI 8 Pro

4.禁止双击亮屏手势体感-小米MI 8 Pro

5.关闭蓝牙-华为P20 Pro

6.可能需产品定义UI和交互

2019/8/1

通知栏管理

1.灭屏清理不重要的消息通知-华为P20

Pro

2.可能需产品定义UI和交互

2019/8/1

GPS 省电_1

华为

P20 Pro

1. 监听应用前台和后台变化;

2. 限制处于后台的黑名单应用的GPS使用;

3.

在GeofenceManager.updateFences()和GnssLocationProvider.updateRequirements()进行判断限制;

备注:使用本方法限制,状态栏的定位图标不会消失

2019/8/6

附表<GPS省电>

WiFi热点扫描省电

华为

P20 Pro

1. 当 app 周期性调用 WifiManager.startScan() 时(扫描附近的WiFi热点信息);

2. 灭屏条件下Framework层 WifiServiceImpl.startScan() 进行拦截

OPPO F11 Pro

1. 当 app 周期性调用 WifiManager.startScan() 时(扫描附近的WiFi热点信息);

2. 灭屏条件下Framework层 WifiServiceImpl.startScan() 进行拦截

a. 黑名单应用,报告给OPPO守护精灵,下达kill指令

b. 白名单应用,统计扫描次数和间隔,达到阈值,进行拦截限制

2019/8/7

第一次调研

附表<WiFi热点扫描省电>

2019/9/5 第二次调研

Google在Android 9.0进行更加严格限制,故不需要再次优化

Sensor 省电

华为

P20 Pro

1. Sensor 类别只配置非唤醒类Sensor

2. 手机静止情况,应用不可见时达到1分钟,则禁止应用使用Sensor,即静止情况下,就不该继续使用Sensor,省电角度;

3.

应用被识别计步场景时,使用SENSOR_DELAY_UI或SENSOR_DELAY_NORMAL采样,则允许不可见时使用Sensor,保证计步应用类正常使用

4. 应用被识别计步场景时,使用SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST采样,则禁止不可见时使用Sensor,通俗理解:即使是计步行为,也不能太耗电;

5. 一旦处于可见状态,立刻恢复Sensor的正常使用

2019/8/14

附表<Sensor省电>

GPS 省电_2

华为

P20 Pro

1.定位场景,Home键退到后台,状态栏的定位图标10秒内会消失

2.定位场景,最近任务回到前台,状态栏的定位图标恢复显示

3.导航场景,状态栏的定位图标一直显示,即允许一直定位

显示定位图标-SDK API:LocationManager.requestLocationUpdates

取消定位图标-SDK API:LocationManager.removeUpdates

xx做过类似的,大体如下思路:

1.建立导航类型应用白名单

2.退到后台,注销应用的GPS监听注册

3.切换前台,重新给应用注册GPS监听

2019/8/21

华为Logcat 日志中发现下述一段日志,即灭屏下,华为禁止百度地图进行wifi 扫描

```

08-07 13:02:04.803

1171

9786 I WifiService: Screen is off,

com.baidu.BaiduMap startScan is skipped.

```

经过进一步研究和写wifi demo apk 验证, 并且能稳定复现,找到规律如下:

1. 当 app 周期性调用 WifiManager.startScan() 时(扫描附近的WiFi热点信息);

2. 灭屏条件下Framework层 WifiServiceImpl.startScan() 进行拦截;

同 WiFi模块 liqun 沟通,我们这边没有做这样的优化,liqun 说 OPPO 也有这样策略,具体如下:

1. 当 app 周期性调用 WifiManager.startScan() 时(扫描附近的WiFi热点信息);

2. 灭屏条件下Framework层 WifiServiceImpl.startScan() 进行拦截

a. 黑名单应用,报告给OPPO守护精灵,下达kill指令

b. 白名单应用,统计扫描次数和间隔,达到阈值,进行拦截限制;

风险点:

liqun说 OPPO 提供黑白名单,主要是考虑灭屏下拦截热点扫描,亮屏时地图定位可能会有1、2秒的网络定位延时;

===============================================================

上层DEMO 调用逻辑

```

@Override

protected Void doInBackground(Void...

arg0) {

//扫描附近WIFI信息

for (int i= 0; i< 100; i++)

{

result =

mUtils.getScanWifiResult();

Log.d(suhuazhi,

startScan count + i);

try {

Thread.sleep(1000);

} catch (Exception e) {

e.printStackTrace();

}

}

return null;

}

public List<String>

getScanWifiResult() {

// 扫描的热点数据

List<ScanResult>

resultList;

// 开始扫描热点

mWifiManager.startScan();

resultList =

mWifiManager.getScanResults();

ArrayList<String> ssids = new

ArrayList<String>();

if (resultList != null) {

for (ScanResult scan : resultList)

{

Log.d(suhuazhi,

startScan scan.SSID : + scan.SSID);

ssids.add(scan.SSID);//

遍历数据,取得ssid数据集

}

}

return ssids;

}

```

华为拦截日志如下:

08-07 14:53:49.486

1171

9805 D WifiService: startScan, pid:5354,

uid:10029, appName:com.ldm.test

08-07 14:53:49.486

1171

9805 I WifiService: Screen is off,

com.ldm.test startScan is skipped.

===============================================================

2.  华为机器在灭屏下会有如下日志:

WifiService: Screen is off, com.baidu.BaiduMap startScan is skipped.

灭屏条件下,UID不为SYSTEM_UID,则调用startScan会被拦截

目前在Venice项目调研如下:

1 . Android 9.0 开始,对于 WifiManager.startScan 调研策略,Google进行如下调整

前台应用 2 分钟内只能使用 4 次startScan()

后台应用 30 分钟内只能调用 1次 startScan()

ScanRequestProxy

@VisibleForTesting

public static final int SCAN_REQUEST_THROTTLE_TIME_WINDOW_FG_APPS_MS = 120 * 1000;

@VisibleForTesting

public static final int SCAN_REQUEST_THROTTLE_MAX_IN_TIME_WINDOW_FG_APPS = 4;

@VisibleForTesting

public static final int SCAN_REQUEST_THROTTLE_INTERVAL_BG_APPS_MS = 30 * 60 * 1000;

我自己写了个WiFi Scan Demo 1 秒中调用1次 startScan,在第4次后,就无法调用了,实测亮屏待机电流和灭屏待机电流也都能很快降低到正常电流水平

2019-09-05 13:33:42.434 12500-12548/com.tct.wifiscandemo D/suhuazhi: startScan count 5

2019-09-05 13:33:42.438 1036-1152/? V/WifiScanRequestProxy: Foreground scan app request [10123, com.tct.wifiscandemo]

// 禁止前台应用进行WifiManager.startScan函数调用

2019-09-05 13:33:42.438 1036-1152/? I/WifiScanRequestProxy: Scan request from com.tct.wifiscandemo throttled

一、华为 Sensor 省电策略

1.

Sensor 类别只配置非唤醒类Sensor

2.

手机静止情况,应用不可见时达到1分钟,则禁止应用使用Sensor

3.

应用被识别计步场景时,使用

SENSOR_DELAY_UI或SENSOR_DELAY_NORMAL采样,则允许不可见时使用Sensor

4.

应用被识别计步场景时,

使用SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST采样,则禁止不可见时使用Sensor

5.

一旦处于可见状态,立刻恢复Sensor的正常使用

二、华为

Sensor 省电现象

使用Sensor

Demo PhoneData.apk

1.

持 PARTIAL_WAKE_LOCK

2.

不停监听Sensor数据变化

机器

PhoneData.apk

使用 non

wake-up sensor 采集数据

华为

1.亮屏+应用可见,有数据;

P20 Pro

2. 亮屏+应用不可见+1分钟内,无数据;

3. 灭屏+应用不可见+1分钟内,无数据;

4.

亮屏+应用不可见+不停摇一摇+SENSOR_DELAY_FASTEST,无数据

5.

灭屏+应用不可见+不停摇一摇+SENSOR_DELAY_FASTEST,无数据

6.

亮屏+应用不可见+不停摇一摇+SENSOR_DELAY_GAME,无数据

7.

灭屏+应用不可见+不停摇一摇+SENSOR_DELAY_GAME,无数据

8. 亮屏+应用不可见+不停摇一摇+SENSOR_DELAY_UI

,有数据

9. 灭屏+应用不可见+不停摇一摇+SENSOR_DELAY_UI

,有数据

10.

亮屏+应用不可见+不停摇一摇+SENSOR_DELAY_NORMAL,有数据,一旦检测为计步应用,即使静止也有数据

11.

灭屏+应用不可见+不停摇一摇+SENSOR_DELAY_NORMAL,有数据,,一旦检测为计步应用,即使静止也有数据

T1

1.亮屏+应用可见,有数据

2.亮屏+后台+至少10分钟以上,有数据

3.灭屏+后台+至少10分钟以上,有数据

Venice

1. 亮屏+应用可见,有数据

2.

亮屏+后台+至少10分钟以上,有数据

3.

灭屏+后台+至少10分钟以上,有数据

Morgan 3G

1. 亮屏+应用可见,有数据

2.

亮屏+后台+至少10分钟以上,有数据

3.

灭屏+后台+至少10分钟以上,有数据

上述发现如下:

华为

只有非唤醒类Sensor

不可见+静止

采样率为SENSOR_DELAY_UI或SENSOR_DELAY_NORMAL,且被识别为计步,则允许使用Sensor,否则禁止

禁止使用Sensor

T1

唤醒类Sensor

没有限制

没有限制

非唤醒类Sensor

三、Sensor

省电的详细分析

1、

Sensor 列表区别

1.1 华为

SensorType:

1, Name: accelerometer-lsm6dsm, Description: {Sensor

name=accelerometer-lsm6dsm, vendor=st, version=1,

type=1, maxRange=78.4532, resolution=9.576806E-6, power=0.23, minDelay=2000}

只有非唤醒类Sensor,代码中使用SensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER,

true/*表示唤醒类*/),会没有任何数据输出

1.2 T1

SensorType:

1, Name: lsm6ds3c Accelerometer Wakeup, Description: {Sensor

name=lsm6ds3c Accelerometer Wakeup, vendor=STMicro,

version=140549, type=1, maxRange=78.4532, resolution=0.0023928226,

power=0.15, minDelay=2404}

SensorType:

1, Name: lsm6ds3c Accelerometer Non-wakeup, Description: {Sensor

name=lsm6ds3c Accelerometer Non-wakeup,

vendor=STMicro, version=140549, type=1, maxRange=78.4532,

resolution=0.0023928226, power=0.15, minDelay=2404}

2、华为-

不可见+静止,则禁止使用Sensor

//

非重要通知识别

2019-08-14

13:30:25.376 2134-2458/? I/hibernation: com.xiaomi.hm.health skips not

important notification

//

拦截com.xiaomi.hm.health使用Sensor

2019-08-14

13:30:25.376 2134-2458/? I/APwPowerPolicy: ignore sensor about not never opt

app: com.xiaomi.hm.health

//

冻结 com.xiaomi.hm.health

2019-08-14

13:30:25.398 2134-2458/? I/hibernation: Freeze com.xiaomi.hm.health OK !

2019-08-14

13:30:25.404 2134-2458/? I/hibernation: close sockets >>

com.xiaomi.hm.health, uids : [10311]

//

统计 com.xiaomi.hm.health,sensor: 0.09mAh, time: 527s

2019-08-14

13:30:25.855 2134-2247/? I/APwFeedback3: delta rank, uid: 10311, name:

com.xiaomi.hm.health, current: 5mA, total: 0.17mAh. [cpu: 0.08mAh, time: 4s],

[sensor: 0.09mAh, time: 527s]

//

识别无声音、无计步行为

2019-08-14

13:30:25.868 2134-2247/? I/AppActAnalyzer: Pedometer pkg:

com.xiaomi.hm.health, big current: 5, recent no sound, count step

3、SENSOR_DELAY_GAME或

SENSOR_DELAY_FASTEST,即使计步,也禁止使用Sensor

5

/**

56

* Typical sensor delay

(sample period) in microseconds.

57

*/

58

// Fastest

sampling, system will bound it to minDelay

59

static

constexpr

int32_t

SENSOR_DELAY_FASTEST

= 0; 60

// Typical sample period for game, 50Hz;

即1秒中打印50次,Sensor数据变化

61

static

constexpr

int32_t

SENSOR_DELAY_GAME

=

20000

;

62

// Typical

sample period for UI, 15Hz ; 即1秒中打印15次,Sensor数据变化

63

static

constexpr

int32_t

SENSOR_DELAY_UI

=

66667

;

64

// Default

sensor sample period,即1秒中打印5次,Sensor数据变化

65

static

constexpr

int32_t

SENSOR_DELAY_NORMAL

=

200000

;

相关日志如下:

//

sensor: 0.06mAh, time: 344s

2019-08-14

13:46:27.092 2134-2247/? I/APwFeedback5: delta rank, uid: 10309, name:

com.tct.phonedata, current: 7mA, total: 0.24mAh. [cpu: 0.18mAh, time: 9s],

[sensor: 0.06mAh, time: 344s]

//被识别为高耗电应用:常驻通知属性,华为日志太少,实测app确实无法监听Sensor数据了

2019-08-14

13:46:27.105 2134-2247/? I/AppHighCurrentAnalyzer: has persist notification,

add 5 threashold, pkg: com.tct.phonedata

4、应用可见时恢复使用Sensor

//

可见时恢复

2019-08-14

13:58:55.094 2134-2458/? I/ash_trans: com.tct.phonedata { hibernation

duration=86168 Uptime=86168 } transition to: running reason:visible

2019-08-14

13:58:55.098 2134-2247/? I/AppsUsage: scnOff:false FgAPP:com.tct.phonedata

BgAPP:com.huawei.android.launcher

2019-08-14

13:58:55.114 2134-2458/? I/PGServer: report state:6 event type:2 pid:0

uid:10309 pkg:com.tct.phonedata to pid: 1252

2019-08-14

13:58:55.114 2134-2458/? I/hibernation: Unfreeze com.tct.phonedata OK !

2019-08-14

13:58:55.115 1252-2796/? I/PGManagerService:

proxyBroadcast:[com.tct.phonedata] proxy:false

2019-08-14

13:58:55.167 2134-2458/? I/hibernation: unproxy com.tct.phonedata broadcast

OK !

2019-08-14

13:58:55.169 2134-2458/? I/hibernation: Unpending com.tct.phonedata alarm OK

!

2019-08-14

13:58:55.197 2134-2458/? I/hibernation: unproxy

gps:com.tct.phonedata,uid:10309,result:true

2019-08-14

13:58:55.198 2134-2458/? I/hibernation: above launcher front pkgs:

[com.tct.phonedata]

20190905-友商功能探查相关推荐

  1. 2014 android 新技术,向友商学习 Android 12新功能前瞻:似曾相识

    2月过半,春节假期结束,世界进入了"万物复苏"的阶段. 手机圈也是如此,更多搭载新芯片的手机将会陆续露面,占据移动操作系统市场71.93%份额的安卓也将迎来最新版本安卓12的开发者 ...

  2. 门禁信息推送不了服务器,MIUI下周推送新功能, 友商不要羡慕! 小米6/MIX2等可直刷门禁!...

    原标题:MIUI下周推送新功能, 友商不要羡慕! 小米6/MIX2等可直刷门禁! 你的手机支持NFC吗?作为智能手机的附属功能,NFC功能很早前就已经出现.早在2005年,诺基亚就推出了第一款支持NF ...

  3. 华为麒麟990发布!余承东:全球首款旗舰5G SoC,业界最强手机AI算力,友商还都是PPT...

    乾明 晓查 假装发自 柏林  量子位 报道 | 公众号 QbitAI 刚刚,华为发布新一代芯片,麒麟990 5G. 集成5G,AI算力更强,性能再提升. 在发布会上,余承东用六个"最&quo ...

  4. 惊喜不止小米9!小米又一4800万新机确认:不给友商机会?

    最近小米9真的是火,不管是曝光还是预热都霸屏了微博数码等资讯圈,各种配置信息已经了解了90%,唯一不能确定的就是价格,据传低配或3499元起步,高配高达5000元,足以见得独立红米品牌之后小米真的坐上 ...

  5. 红米Redmi品牌独立后首发新品 雷军:『友商就不要用性价比这个词了』

    小米的年关不好过.就在昨天(1月9日),小米集团发布公告,称雷军各控股股东自愿承诺未来365天不出售直接或间接实益拥有的公司股份,背景是小米的30多亿股限售股解禁,但是小米股价从发行价17港元跌至9. ...

  6. 25分钟破亿 首销火爆的moto edge X30给友商们出了个难题

    12月9日,摩托罗拉召开moto edge系列手机新品发布会,推出了该系列全新机型--moto edge X30,并同步开启预售. 一.未发先"火"的moto edge X30 1 ...

  7. 华为鸿蒙系统前因后果,华为技术自救:鸿蒙系统开源,欢迎友商采用

    众所周知,华为鸿蒙系统自从发布以来一直备受全球关注,从业内巨头到全球无数忠实用户.毕竟,一旦华为打造完成一套完整的生态体系,完全可能打破谷歌安卓.苹果在系统生态方面垄断的局面,形成全新的市场格局,因此 ...

  8. 鸿蒙系统安全模式,华为鸿蒙OS上线!开源开放毫无保留,这一友商早已用上鸿蒙同款系统...

    华为鸿蒙OS上线!开源开放毫无保留,这一友商早已用上鸿蒙同款系统 十年磨一剑,华为鸿蒙终于正式发布,"一生万物,万物归一"就是对这个系统最好的诠释. 据余承东介绍,鸿蒙OS是一个分 ...

  9. 【随笔】从友商丢单看滤食生活

    1. 什么是滤食性动物 我在<公有云成本危机>里强调进入严冬红海,但未来充满希望:很多朋友只看到了红海但没看到希望,我手头正好有个例子解释一下. 滤食性动物小的有磷虾大的有蓝鲸,简单的有海 ...

最新文章

  1. Netty 解决粘包和拆包问题的四种方案
  2. dedecms上传图片不自动改名,以利于seo图片优化
  3. LeetCode 213 House Robber II Python
  4. 九九乘法表_JAVA
  5. mysql中有没有单行函数_MySQL之函数(单行函数、分组函数)
  6. D-query SPOJ - DQUERY(主席树求区间中不同的数的个数)
  7. 大数据之-Hadoop3.x_Yarn_全流程作业---大数据之hadoop3.x工作笔记0143
  8. CentOS 7 安装 JAVA环境(JDK 1.8)
  9. 蓝桥杯2015年第六届C/C++省赛B组第二题-星系炸弹
  10. vue json对象转数组_Vue优秀表单组件,用Vue构建表单的最简单方法——Vue Formulate
  11. Java游戏开发——flappy bird
  12. linux系统tac命令,Linux tac命令的实现示例
  13. 树的左视图(Java)
  14. thinkpad T480s使用体验
  15. 如何使用repo管理本地私有仓库
  16. 1.1 什么是弹性盒子?
  17. python网络爬虫进入(一)——简单的博客爬行动物
  18. 这5种计算机视觉技术,刷新你的世界观
  19. 【游戏评测】赛博西行
  20. 网速慢?这8种方法可以彻底解决

热门文章

  1. python 读写表格_PYTHON与EXCEL:openpyxl 读写excel2007
  2. 前端工程师号称魔术师_使用graphql将rethinkdbs实时魔术带到前端
  3. 零基础进入java行业,我是怎么做到的
  4. 一张表格分成两页打印_一个表格在Word文档里被分成两页,要怎么合并为一页...
  5. 软件测试用例篇(4)
  6. linux添加触摸屏,Linux_Linux系统下触摸屏的简单使用和配置方法, 如果你装的是 Ubuntu 发行 - phpStudy...
  7. 苹果x充电慢是什么原因_苹果手机用久了以后充电会变慢,不充电是什么原因?...
  8. 你的视频是否是这样?优秀的视频作品,每个镜头时长不超过10s
  9. 【PR】剪辑音乐小知识
  10. 清华学霸讲计算机,清华学霸超强履历引膜拜 程序猿:这是学神啊