提案名称*

后台GPS高耗电拦截管控

发明人*

xxx

交底书撰写人*

xxx

撰写人联系方式*

手机:xxxx

邮箱:xxxx

一.发明背景 *

Android 系统中提供4种方式给上层应用获取定位信息,分别如下:

  1. GPS 定位: GPS定位利用多个卫星至GPS接收器的距离,使用三角定位确定当前的位置,最少需要三个卫星才可以确定一个二维的位置(经度和纬度);

例如:不见天空场景或室内场景,GPS无法获取到定位信息或者经常定位出错,一般室外场景导航主要以GPS定位数据为数据源,优点:精度高,缺点是:定位耗时长、功耗大;

  1. 网络定位: 定位数据与精度取决为于位置提供商提供的基站或WiFi节点信息;

例如室内场景有定位数据,来回在相同网络区域走动,定位信息保持不变,优点是定位速度快,精度依赖于位置服务商的数据库,优点:定位快,较为省电,确定:精度低,有时不刷新变化;

  1. 被动定位: 一个懒惰的位置提供者,它用于接收位置,而并没有像GPS定位、网络定位那样去自己获取位置信息,属于非主动更新定位信息,故较为省电,不需要进行额外省电管控;
  2. 融合定位: 结合了所有可能的位置源的输入,提供最佳的位置固定,属于非主动更新定位信息,故较为省电,不需要进行额外省电管控;

经过实验室功耗电流测试中发现:

室内测试定位中,GPS无法定位获取到数据,故定位信息主要来源于网络定位信息,且相同网络区域中,定位几乎没有变化,测试电流也比较稳定,属于正常水平。

当使用GPS信号放大器模拟室外环境,即GPS增强器可以使得室内场景下使用GPS定位获取到位置信息,定位数据不定期相对频繁更新,位置信息变更一般会伴随着联网,导致测试电流波形图频繁出现毛刺与抬起,平均电流被拉高,使用一定时间后,机器后盖也能感知到发热,当移除掉GPS信号增强器,测试电流过一会可以回到正常电流水平,故GPS定位类型确实比较耗电,且定位信息更新一般会触发第三方应用联网行为,故网络也会被调用,若长期运行后,发热也是必然会发生的。

综合上述:GPS耗电原因主要是,GPS定位类型会存在位置刷新频率高且伴随着联网的现象;例如室外场景下,打开GPS进行地图导航或者一些后台应用偷偷使用GPS定位,可能出现手机发热的现象,出现这样的现象就有可能是GPS在频繁更新定位信息和一些联网行为,导致手机负载电流变大,功耗变高,手机掉电快,发热等问题。

故本发明方案:通过实际调研GPS定位类型导致的高耗电现象,提出一种识别GPS高耗电场景,并灵活进行管控与限制的方案,有效解决GPS高耗电现象。

二.技术揭露 *

  1. 本发明所要解决的技术问题;

为克服 室外后台GPS定位功耗大导致的手机发热的体验差现象,本发明创造提供一种 后台场景GPS高耗电拦截管控 省电技术

  1. 本发明的技术方案;

2.1 前言

本发明方案的现象发现—根据大数据埋点模块;

本发明方案的现象分析与管控方案—根据于大数据分析;

本发明方案的实施—GPS功耗拦截策略;

故接下来进行一一阐述

2.2 大数据埋点模块

目的:为找出GPS功耗现象,作数据源收集;

采集数据源的原则是对可能使GPS功耗电流大的影响因素进行埋点;

例如当GPS进程可见时,记录进程类型和是否被管控,并统计获取到GPS定位数据的次数和触发联网的次数,平均电流等;

例如当GPS进程不可见时,记录进程类型和是否被管控,并统计获取到GPS定位数据的次数和触发联网的次数,平均电流等;

PS:进程类型:导航类型、计步类型、社交类型、工具类型、游戏类型、视频类型等;

例如可以采用下述字段采集GPS功耗相关信息,即这里只要能体现出是埋点GPS功耗数据的思路即可

软件版本

应用

状态

是否被管控

GPS使用时长

GPS定位次数

联网次数

平均电流

2.3 大数据分析

目的:根据大数据埋点信息统计,统计出可能存在的功耗现象和查看优化管控后的效果;

1. 非导航或计步类型应用处于可见状态的GPS和联网使用情况分析;

2. 导航或计步类型应用处于可见状态的GPS和联网使用情况分析;

3. 非导航或计步类型应用处于不可见状态的GPS和联网使用情况分析;

4. 导航或计步类型应用处于不可见状态的GPS和联网使用情况分析;

例如我们可能得到如下表格数据:

软件版本

应用

状态

是否被管控

GPS使用时长

GPS定位次数

联网次数

平均电流

v1.0

com.test.demo

灭屏后台不可见

10分钟

180次

150次

80mA

v1.1

com.test.demo

灭屏后台不可见

1分钟

0次

0次

10mA

v1.0

com.test.demo

亮屏后台不可见

10分钟

180次

160次

350mA

v1.1

com.test.demo

亮屏后台不可见

1分钟

0次

0次

266mA

(注:上述数据只是填写数值方便理解用途,非真实数据)

通过大数据反馈我们可以发现问题,也可以在查看有无管控的优化效果。

我们观察到一些大数据中反馈的异常电流,在实验室进行使用测试和电流,我们得到如下:

1. 将实际使用中确实需要使用GPS的导航应用或计步类型的应用,且限制了GPS相关行为会影响到地图导航或计步准确的应用,应列为GPS管控白名单

2. 将非导航或计步类型且后台频繁调用GPS与联网的应用,且限制了GPS行为也不影响其功能正常使用的应用,带来不必要的电流增加,应列为GPS管控黑名单;

3. 一些定位属性为定位间隔为小于5分钟,定位类型为GPS定位应用,存在规律性高耗电现象;

综合上述我们制定了,下文描述的GPS功耗拦截策略

2.4 GPS功耗拦截策略

1. 进程不可见达1分钟后,不管黑名单应用是使用GPS定位或者网络定位,进行GPS定位拦截管控;

2. 进程不可见达1分钟后,白名单豁免,即不需要进行GPS 定位拦截管控;

3. 进程不可见达1分钟后,针对高耗电 GPS 定位类型,进行GPS 定位拦截管控;

4. 进程可见时立即执行恢复操作,解除GPS定位拦截管控;

具体GPS拦截管控措施如下:

a. 拦截后台上报GPS消息,从而阻止进程收到定位信息可能的联网操作;

b. 拦截后台上报地图围栏消息,从而阻止进程收到定位信息可能的联网操作;

c. 拦截后台唤醒CPU;

d. 在不关闭GPS开关情况下,下发停止定位状态位给GPS硬件,本状态位下发后,即使GPS开关显示为开启,但是实际上系统是无法收到任何定位数据,同时耗电详情中GPS统计也处于停止统计定位状态;

上述中还需考虑实际使用场景:

可见进程为导航或计步场景中,后台进程被GPS管控中,不能下发停止定位状态给GPS硬件,否则当前可见进程中的导航或定位场景,将无法获取到准确定位状态;

通过上面3个模块的介绍,接下来描述一个实际软件逻辑运行的实例,具体流程图见(附图1)

1. 在GPS定位系统中监听进程状态变化,即监听进程可见与不可见状态;

2. 当用户按Home键、Back键或灭屏待机时,进程处于不可见状态;

3. 判定当前使用定位的进程是否为白名单,若是则结束本次流程;若否则进入下一步;

4. 判定当前进程是否属于黑名单,若是则直接进入延时等待一分钟的逻辑,若否则继续下一步判断;

5. 判定当前进程是否为GPS高耗电类型,如之前描述GPS高耗电类型是指上文介绍的4种定位类型,但是属性为使用GPS类型且定位间隔小于5分钟;若是则直接进入延时等待一分钟的逻辑,若否表明当前定位类型不耗电,不需要进行省电管控,则可结束本次流程

6. 延时一分钟逻辑,出发点是:实际中还有这样一个场景,用户只是短暂退出界面,但是有可能又退回来界面继续操作;

7. 判定当前是否为不可见状态(第二次判定),若是则进行大数据埋点, 记录GPS使用情况,具体见对应模块描述,若否说明用户在这1分钟内又切回可见状态,不需要进行省电操作,故可以结束本流程;

8. 执行GPS拦截管控, 具体见模块描述;

9. 当进程处于可见状态,且需要撤销之前的GPS拦截管控状态,则需要实时恢复,并继续保持大数据埋点,记录GPS使用情况;

  1. 最后论述本发明的改进所带来的有益效果

目前本发明方案实施后,我司测试部输出了一组测试数据如下,测试数据表明本发明方案对功耗电流具有改善效果。

备注:不同应用的不同界面在不同场景下可能会存在不同GPS定位逻辑调用,所以GPS省电策略非常依赖测试角度和测试环境;故GPS测试数据结果在不同测试环境和手法下数据可能存在差异。

室外场景测试

无GPS 省电策略

有GPS 省电策略

电流优化大小

1.亮屏+开启GPS+连接WiFi
2. gps_plus.apk前台运行(前台定位场景)
3. GPS_DEMO后台运行(后台定位场景)

370mA

292mA

78mA

1.灭屏+开启GPS+连接WiFi
2. gps_plus.apk前台运行(前台定位场景)
3. GPS_DEMO后台运行(后台定位场景)

31mA

13mA

18mA

1.亮屏+开启GPS+连接WiFi
2.百度地图导航前台运行(前台导航场景)
3. GPS_DEMO后台运行(后台定位场景)

559mA

484mA

75mA

1.灭屏+开启GPS+连接WiFi
2.百度地图导航前台运行(前台导航场景)
3. GPS_DEMO后台运行(后台定位场景)

105mA

62mA

43mA

1.亮屏+开启GPS+连接WiFi
2.gps_plus.apk后台运行(前台定位场景)
3. 微信实时定位前台运行(后台定位场景)

423mA

354mA

69mA

1.亮屏+开启GPS+连接WiFi
2.gps_plus.apk前台运行(前台定位场景)
3. Keep跑步模式后台运行(后台定位场景)

337mA

317mA

20mA

综上所述:

  1. 其他GPS管控方案研究

这里还研究了传统的GPS管控的实现方法:

1. 保存进程注册监听GPS的引用;

2. 当进程处于不可见时,将GPS的引用注销;

3. 当进程处于可见时,将保存的GPS引用再次注册;

上述的方法是从整体角度对不可见的进程GPS进行限制管控,相当于被管控的应用从来没有注册监听过GPS。

但是该传统方案的缺点是:

1. 每次执行GPS注销和再次注册,函数执行过程中,需要设置进程锁、移除或创建GPS对象都需要对内存重新释放与申请,本发明方案只需条件判断,即可灵活切换GPS拦截和解除拦截,故效果执行的时间比本发明方案长;

2. 该传统方法和第三方进程在使用GPS注册与注销监听实现接口与一样的,故容易出现相同时刻同时调用,且系统不同时刻的运行状态不同,如果逻辑没考虑完全的情况下,往往容易带来死锁的现象。故开发设计中一些未知风险,会随着不同进程运行环境而不同,即存在一定风险;

3. 本发明方案是有针对性拦截限制一些耗电相关的操作,而非一棒子政策,直接代替第三方进程本身执行注销操作,故本发明方案是非为省电而省电,而是按需省电,打蛇打七寸的思路完成GPS功耗管控;

综合上述:本方案同传统方案相比较,GPS限制的颗粒度更细,更针对性,也更灵活,执行效率也最高,且采用拦截的方式无死锁方面的风险。

三.参考资料

四.发明创造说明及附件 *

发明

页数:

流程图:附图1

【老文档】后台GPS高耗电拦截管控相关推荐

  1. 最新JAVA智能微信停车场小程序源码+文档/兼容性很高

    正文: ​JAVA开发的智能微信停车场小程序源码+前端+部署文档 兼容市面上主流的多家摄像机,本停车场系统兼容市面上主流的多家相机,理论上兼容所有硬件,可灵活扩展. 相机识别后数据自动上传到云端并记录 ...

  2. 怎样可以把PDF文档转换成高质量的JPG图片

    有些PDF文件内容是图形图像类的,在使用的时候需要把里面的PDF文件转换成JPG图片后才能使用,而截图往往对分辨率达不到要求,那怎样可以很好的将PDF文件转换成图片呢? 一.通过网页版的转换工具 打开 ...

  3. 【老文档20160925】一种基于大数据进行预防与阻断应用相互唤醒启动的方法

    一.本专利技术所属的领域: 领域:操作系统/应用管理 常规用途:通过合理的应用管理,改善性能和功耗. 二.相关技术背景 技术背景:手机耗电.卡顿的原因之一,部分耗电应用在后台频繁调度CPU导致不必要的 ...

  4. 商城前后端prd文档/经销商门户/瓶箱回收系统/组织管理平台/系统管理后台/商城文档/司机管理移动端原型/电商前后端原型/电商前后端需求文档//运输公司管理/产品库管理/资金管理/移动端电商原型文档

    商城前后端prd文档/经销商门户/瓶箱回收系统/组织管理平台/系统管理后台/商城文档/司机管理移动端原型/电商前后端原型/电商前后端prd文档/后台管理系统原型/运输公司管理/产品库管理/资金管理/移 ...

  5. 【PDFBox】PDFBox操作PDF文档之添加本地图片、添加网络图片、图片宽高自适应、图片水平垂直居中对齐

    这篇文章,主要介绍PDFBox操作PDF文档之添加本地图片.添加网络图片.图片宽高自适应.图片水平垂直居中对齐. 目录 一.PDFBox操作图片 1.1.添加本地图片 (1)案例代码 (2)运行效果 ...

  6. “全能”选手—Django 1.10文档中文版Part1

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com ### 主要分享Python 及Django教程以及相关的博客 本文是博主翻译的Django1.10 ...

  7. 这谁写的技术文档?我想锤死他...

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 很多技术人自己非 ...

  8. 石墨计算机,石墨文档电脑版

    石墨文档电脑版 正式版 1.2.4 「桌面客户端」V1.2.4 新版本 6月19 日已上线 修复了客户端窗口不能拖动和缩放的问题 石墨文档 最新版 1.2.7.4 文档 支持插入日期并可设置通知提醒自 ...

  9. Office Open XML 文档格式

    Office Open XML文档格式的详细说明以及规格是在2006年欧洲计算机制造商协会批准的一项标准, 编号是Ecma376, 到发稿时为止已经通过了ISO国际标准化组织的评审成为了一项国际标准I ...

最新文章

  1. 身份证号码验证-支持新的带x身份证
  2. Java 洛谷 P1200 [USACO1.1]你的飞碟在这儿 Your Ride Is Here
  3. linux io体系结构,Linux IO体系结构
  4. php的符号的排序大小
  5. ArcGIS实验教程——实验二十一:DEM分析
  6. java中使用rmi进行远程方法调用
  7. replace为undefined_手写 XML 转化为 JS对象 方法
  8. 在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
  9. 最新 MySQL数据库安装详解(简洁快速)
  10. 洛谷——P2077 红绿灯
  11. Carplay测试-Carplay认证预测试服务-Siri AudioTest-ITU-T P.1110 测试-ITU-T P.1100车载免提音测试
  12. 产生式系统实验(AI实验一)
  13. c# 定义四边形_C# 绘制多边形
  14. 学习笔记——FPGA芯片主要资源介绍
  15. 服务器返回MOD文件失败,[17-02-06]【复杂问题】求助,forge服务器加了MOD后无法运行...
  16. 那些一秒搞定微软公司Excel的神操作(上)!
  17. SQL Server 如何启用sa账户
  18. 埃斯顿机器人 王杰高_王杰高 埃斯顿机器人公司总经理--金手指奖•2018年中国国际机器人年度评选——风云人物奖申报-弗戈工业在线...
  19. 学习笔记:IDF 移动端UX设计 1.11 课程回顾
  20. 【Python】项目实战一:外星人入侵 - 《Python编程:从入门到实践》

热门文章

  1. 大数据时代:企业该如何搭建自己的BI(商业智能)系统?
  2. 时尚多变,motorola z3模块手机打造全能极致体验
  3. Android使用360加固宝多渠道打包
  4. pythonturtle怎么画_python的turtle能画啥
  5. bilibili手机端追剧在哪里?
  6. 【面经】海康威视【2022届超新星】应用软件开发工程师-C\C++实习生校招面经-已gg
  7. linux glog安装使用
  8. 这位大佬辅导了近千人成功就业
  9. Java 解压rar 解压缩zip
  10. matlab中hold on 和hold off功能的区别