GT的使用及耗电量统计的原理,对GT采集的电池数据采用VBA分析

注意:我测试时的ios操作系统是8.1,现在ios9.0及以后的耗电量比老的系统少了一个量级,官方说减少20%,我的手机在熄屏的耗电量减少了30%以上,亮屏幕减少不太多。
具体编译宏文件和GT采集的部分数据文件下载地址是:http://download.csdn.net/detail/jia12216/8787079
腾讯的GT耗电量统计是通过电池状态监听通知事件和记录两次的时间差来计算耗电速度的,所以它统计的是整个手机的耗电量。
腾讯的GT参考文章及下载地址:http://gt.tencent.com
IOS中电池变化的监听参考文章:http://my.oschina.net/u/936286/blog/132943 因此你可以不依赖于GT自己用代码实现耗电量统计。
下载GT库,把GT库导入工程。
这里写图片描述
图片一
添加libstdc++.6.0.9.dylib库(不添加该库编译不通过)。
这里写图片描述
图片二
在AppDelegate.m或AppDelegate.mm文件的
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions函数中增加代码:

ifdef DEBUG

GT_DEBUG_INIT;
// GT Usage(合入) 设置 GT logo 不旋转及支持方向
GT_DEBUG_SET_AUTOROTATE(NO);
GT_DEBUG_SET_SUPPORT_ORIENTATIONS(UIInterfaceOrientationMaskPortrait);

endif

这样就把GT集成到你的应用中了,通过xcode把应用装到调试手机上并运行应用,点小企鹅图标就可以打开GT了。点那个红色开始采集数据按钮,按钮变成可以暂停状态就开始采集数据了。当需要保持数据时点暂停按钮,然后点保存按钮弹出文件保存提示框,输入文件名并点保存就把采集的数据保存到应用下面的GT目录下。电池的数据就保存在GT/Para/GW_*/Battery_*.csv文件里。
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。 CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是7-bitASCII是最基本的通用编码。

用Excel直接打开电池的数据文件(若用Excel导入电池的数据csv文件得到的分列显示属性的EXCEL文件),文件的第17显示的记录各个域名,前面三个逗号是为了把前面15行内容显示在左边,具体记录数据显示在右侧(就是空列)。,,,time,current(mA),CostCapacity(mAh)
time是收到电量变化通知并记录数据的时间,current(mA)表示统计间隔周期的平均电流,CostCapacity(mAh)表示从开始统计到当前时刻总共消耗的电量。
从18就是统计的电池电量变化的具体数据了。格式是:,,,14:01:54.170,1145.0,16
用Excel文件,另存为新的启动宏的工作薄-handleover.xlsm
这里写图片描述
图片三
录制编译宏
这里写图片描述
图片四
这里写图片描述
图片五
粘贴代码并保存文件
这里写图片描述
图片六
Sub handleover()
Dim i, j, n As Long
Dim k As Double
Dim str1 As String
For i = 18 To 1000
If “” = Cells(i, 1) Then
n = i - 1
Exit For
End If
Next
If n < 18 Then
Exit Sub
End If
For i = 18 To n
str1 = Trim(Cells(i, 1).Value)
If Len(str1) < 8 Then
Exit Sub
End If
If “,,,” <> Left(str1, 3) Then
Exit Sub
End If
str1 = Right(str1, Len(str1) - 3)
j = InStr(str1, “,”)
Cells(i, 5) = Left(str1, j - 1)
str1 = StrReverse(Right(str1, Len(str1) - j))
j = InStr(str1, “,”)
Cells(i, 6) = StrReverse(Right(str1, Len(str1) - j))
Cells(i, 7) = StrReverse(Left(str1, j - 1))
Next
Columns(5).NumberFormatLocal = “hh:mm:ss”
Columns(5).ColumnWidth = 20
Columns(6).ColumnWidth = 20
Columns(7).ColumnWidth = 20
Columns(8).ColumnWidth = 20
Columns(9).ColumnWidth = 20
Columns(10).ColumnWidth = 20
Columns(11).ColumnWidth = 20
Cells(1, 5) = “记录时间”
Cells(1, 6) = “统计间隔周期的平均电流(mA)”
Cells(1, 7) = “从开始统计到当前时刻总共消耗的电量(mAh)”
Cells(1, 8) = “两次记录时间间消耗的电量(mAh)”
Cells(1, 9) = “两次记录时间(m)”
Cells(1, 10) = “两次记录时间(s)”
Cells(1, 11) = “平均耗电量(s/mAh)”
For i = 19 To n
If n <= 18 Then
Exit Sub
End If
k = Cells(i - 1, 7).Value
Cells(i, 8) = Cells(i, 7).Value - k
Cells(i, 9) = DateDiff(“n”, Cells(i - 1, 5).Value, Cells(i, 5).Value)
Cells(i, 10) = DateDiff(“s”, Cells(i - 1, 5).Value, Cells(i, 5).Value)
k = Cells(i, 8).Value
Cells(i, 11) = Cells(i, 10).Value / k
Next
End Sub
当然若是已经有编译宏文件并打开文件,就可以先按照图片四点击宏直接启动宏运行就可以了。
这里写图片描述
图片七
这里写图片描述
图片八
对电池的数据统计结果如下:
记录时间 统计间隔周期的平均电流(mA) 从开始统计到当前时刻总共消耗的电量(mAh) 两次记录时间间消耗的电量(mAh) 两次记录时间(m) 两次记录时间(s) 平均耗电量(s/mAh)
这里写图片描述

集成GT的最鲜到配送员app,在不同场景下用GT采集的电量数据分析结果:
场景一:打开应用停留在主页面不锁屏不操作,平均耗电量5.221505376 minutes/16mAh(1%),平均采集间隔5.258064516秒分钟
场景二:打开应用不断刷新主页面切换页面,平均耗电量2.80378787878 minutes/16mAh(1%),平均采集间隔3分钟
场景三:打开应用,锁屏坐公交车,平均耗电量9.854166666 minutes/16mAh(1%),平均采集间隔10分钟
场景四:打开应用不断在非地图页面和地图页面切换,平均耗电量2.737037037 minutes/16mAh(1%),平均采集间隔2.666666667分钟
场景五:打开应用不断在非地图页面和地图页面切换造成地图重新加载的耗电的量大增的数据,平均耗电量2.4 minutes/16mAh(1%),平均采集间隔2.333333333分钟
场景六:打开应用锁屏长期不移动不操作,平均耗电量152 minutes/16mAh(1%)

gt数据总结:
若开启应用亮屏以5.22分钟/1%电量为基准。
锁屏耗电速度为亮屏的3.43%,和服务间的消息交互(包括频繁刷新页面)耗电速度为亮屏的186.43%,频繁使用百度地图耗电速度为亮屏的190.51%,开启应用锁屏坐公交车耗电速度为亮屏时的53.00%,开启应在切换页面时引起百度地图重新加载的耗电速度为亮屏的217.50%。
可以看到想减少app的耗电量首先要减少的是向服务器发送请求的频率。其次尽量减少百度地图的重新加载,减少push消息提示框引起亮屏,减少快速移动中的经纬度采集频率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/24227.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android电池功耗BatteryHistorian数据分析

BatteryHistorian的用法 BatteryHistorian环境搭建配置 官方文档 1.BatteryHistorian图形页面数据分析: Timeline: System stats: CPU runing: cpu运行的状态 Kernel only uptime: 只有kernell运行 Userspace wakelock: 用户空间申请的锁 Screen: 屏幕是否点亮 Top …

时间序列预测:用电量预测 07 灰色预测算法

&#x1f32e;开发平台&#xff1a;jupyter lab &#x1f356;运行环境&#xff1a;python3、TensorFlow2.x ----------------------------------------------- 2022.9.16 测验成功 ---------------------------------------------------------------- 1. 时间序列预测&#x…

时间序列预测15:Multi-input / Multi-head CNN 实现用电量/发电量预测

【时间序列预测/分类】 全系列60篇由浅入深的博文汇总&#xff1a;传送门 接上文&#xff0c;本文介绍如何为多变量数据开发多输入通道多步时间序列预测的CNN模型和多子模型异构多步时间序列预测的CNN模型。 文章目录 2. 多输入通道 CNN 模型2.1 建模2.2 完整代码 3. 多头&…

人工智能迅猛发展,如何应对避免失业?

“人工智能从感知智能向认知智能演进”&#xff0c;人工智能的发展带给我们哪些思考&#xff1f;它究竟会给我们的工作生活带来哪些变化?我们要如何去应对&#xff1f; 阿里达摩院票选出2020年十大科技趋势&#xff1a; 量子计算进入攻坚期工业互联网的超融合保护数据隐私的A…

【杂谈】人脸图像书看完了感觉不过瘾?这些拓展人脸资料值得你关注一下

相信许多朋友都看过我这本人脸图像处理的书籍了&#xff0c;内容涵盖了人脸检测&#xff0c;人脸关键点检测&#xff0c;人脸识别&#xff0c;人脸属性分析&#xff0c;人脸美颜&#xff0c;人脸编辑与风格化&#xff0c;三维人脸重建内容&#xff0c;基本上包括了人脸的所有领…

Guava、Spring 如何抽象观察者模式?

什么是观察者模式 观察者模式 是一种行为设计模式&#xff0c;允许定义一种订阅通知机制&#xff0c;可以在对象&#xff08;被观察者&#xff09;事件发生时通知多个 “观察” 该对象的观察者对象&#xff0c;所以也被称为 发布订阅模式 其实我个人而言&#xff0c;不太喜欢使…

苹果「Find My iPhone」立功,帮警察追踪偷车嫌犯

By 超神经 内容提要&#xff1a;在澳大利亚墨尔本的一起入室盗窃案中&#xff0c;警方在 iPad 上「Find My」的协助下追踪到嫌犯位置&#xff0c;但追踪过程中嫌犯却因车祸丧生。 关键词&#xff1a;Find My 协警 盗窃 苹果的「Fing My」最近在一起入室抢劫案中立功了。 2 月 …

Hive 知识体系保姆级教程

Hive涉及的知识点如下图所示&#xff0c;本文将逐一讲解&#xff1a; 正文开始&#xff1a; 一. Hive概览 1.1 hive的简介 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能。 其本质是将SQL转换为Map…

跟着 Guava、Spring 学习如何设计观察者模式

文章首发在公众号&#xff08;龙台的技术笔记&#xff09;&#xff0c;之后同步到掘金和个人网站&#xff1a;xiaomage.info 今天讲解一篇行为型设计模式&#xff0c;什么是行为型&#xff1f;行为型主要负责设计 类或对象之间的交互。工作中常用的观察者模式就是一种行为型设…

【总结】有三AI重要原创人脸相关的技术文章汇总(2022年8月)

人脸图像的应用领域想必所有做视觉算法的都不会陌生&#xff0c;所有的安防监控、几乎现在所有的在线身份认证、支付、考勤都需要用到人脸检测与人脸识别&#xff0c;人脸识别甚至被用于追逃疑犯&#xff0c;找寻失踪人口。 所有的在线直播平台&#xff0c;手机拍照软件&#x…

【总结】有三AI所有原创人脸相关的学习资料汇总(2022年12月)

人脸图像的应用领域想必所有做视觉算法的都不会陌生&#xff0c;所有的安防监控、几乎现在所有的在线身份认证、支付、考勤都需要用到人脸检测与人脸识别&#xff0c;人脸识别甚至被用于追逃疑犯&#xff0c;找寻失踪人口。 所有的在线直播平台&#xff0c;手机拍照软件&#x…

CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧

CV&#xff1a;计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧 导读&#xff1a;计算机视觉技最强学习路线&#xff0c;2022年10月18日…

Hive——函数-Explode(含案例演示建议收藏)

创建文件 vim movie.txt数据准备&#xff1a; 《疑犯追踪》 悬疑,动作,科幻,剧情 《Lie to me》 悬疑,警匪,动作,心理,剧情 《战狼 2》 战争,动作,灾难创建新表&#xff1a; create table movie_info(movie string,category string) row format delimited fields …

看美剧《疑犯追踪》,学地道美语 Learn idiomatic American English by watching Tv series Person of Interest

看美剧《疑犯追踪》&#xff0c;学地道美语 Learn idiomatic American English by watching Tv series Person of Interest cemike126.com 题记&#xff1a;暑期看了美剧《疑犯追踪》&#xff08;Person of Interest&#xff09;。开始只是记下第一级中一些引发我思考的片段台词…

疑犯追踪第五季/全集Person of Interest迅雷下载

英文全名Person of Interest&#xff0c;第5季(2015)CBS. 本季看点&#xff1a;《疑犯追踪》本季剧组暗示Finch可能重建机器&#xff0c;这次他会给机器更多自由&#xff08;如Root一直要求的那样&#xff09;。或许新机器更像个战士&#xff0c;比旧机器更强大。目前&#xff…

现实版的“疑犯追踪”是如何开展的?

为什么80%的码农都做不了架构师&#xff1f;>>> 童鞋们&#xff0c; 还记得在美剧《疑犯追踪》中&#xff0c; Finch发明的人工智能“The Machine”吗&#xff1f; 它通过获得和关联大量数据&#xff0c; 可分析出即将发生的犯罪事件并发出预警。 可以说是灰常滴了…

南澳行

上周随部门到南澳&#xff0c;其实这是我第二次去南澳了&#xff0c;不过上次去了大鹏古城&#xff0c;这次主要是在海边玩沙滩足球&#xff0c;好过隐呀&#xff01; 以前觉得南澳不错&#xff0c;因为可以在海边玩耍&#xff0c;至少比红树林感觉要好吧。但去年去了海南之后&…

大三期末网页设计作业 以旅游景点风景主题介绍网站设计与实现 (广东名胜古迹)

&#x1f329;️ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f482; 作者主页: 【进入主页—&#x1f680;获取更多源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;HTML5网页期末作业 (1000套…

JS根据城市名称获取所在省份

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 实现代码&#xff1a; var provinces require(../../../utils/provinces);var city 昆明市;provinces.forEach((item,index) > {item.city.forEach((itt, idx) > {if (itt.name city) {console.…

JS搜索省份匹配出省份的所有城市

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 效果图&#xff1a; 模糊搜索和精确搜索省份的所有城市名称&#xff0c; 模糊搜索和精确搜索城市名称&#xff0c; js // pages/test/test.js var val; var provinces require(../../utils/provinces…