App耗电量优化

1.获取手机电量信息

  • 通过Instruments获取
    利用Xcode自带的Energy Log获取iPhone特定时段的电量消耗信息。具体步骤:打开Developer选项中的Start Logging —> 断开iphone与PC连接 —> 一系列的用户操作 —> Stop Logging —> 连接iphone与PC, 将电量消耗数据导入Instruments。

  • 通过UIDevice获取
    UIDevice提供了当前ios设备的详细信息,如name, systemVersion, localizedModel, batteryLevel等。

    UIDevice.currentDevice.batteryMonitoringEnabled = true
    let batteryLevel = UIDevice.currentDevice().batteryLevel
    UIDevice.currentDevice.batteryMonitoringEnabled = false
    

    在IOS 8.0之前,UIDevice中的batteryLevel只能精确到5%,而在IOS 8.0之后,开始支持1%的精确度。

  • 通过IOKit.framework来获取

    IOKit.framework在iOS中用来跟硬件或内核服务通信,常用于获取硬件详细信息,比如电池电量等。

2.耗电分析

​ 手机中有哪些耗电场景:

​ (1)手机屏幕。手机中最耗电的模块肯定就是屏幕了,亮屏时间越长,电量消耗越快。

​ (2)CPU相关。每次您的应用更新(或“绘制”)内容到屏幕时,都要求CPU,GPU和屏幕处于活动状态。多余或效率低下的绘图可能会将系统资源从低功耗状态中拉出或阻止它们完全掉电,从而导致大量能源消耗。例如:大量使用动画、过多使用计时器、屏幕上的绘图过多、大量使用视图不透明度等。

​ (3)网络相关。一般情况下,网络相关(网络请求、数据传输、网络切换等)是仅次于屏幕的耗电大户。

​ (4)GPS定位。GPS定位涉及GPS位置传感器,也是耗电大户,平时不使用GPS的时候记得关掉。

​ (5)Camera。Camera涉及前后摄像头硬件,如果一直使用(录屏等),耗电也会非常可观。

3.电量优化

  • 网络相关优化

    • 发起网络请求时机,业务区分当前网络请求是需要及时返回结果的(用户主动下拉刷新等),还是可以延迟执行的(异步上传数据等),可以延迟执行的有针对性地把请求行为绑定在一起发出。
    • 减少一个页面的接口数量,尽量合并成一个接口返回数据。
    • 数据处理
      • 压缩资料,在发送或接受数据之前,使用压缩算法尽可能地压缩数据。
      • 缓存数据,使用缓存将不经常更新的数据存储在本地。仅当数据已更改或用户请求时才重新下载数据。
      • 使用高效率的数据格式(JSON)和解析方法。
    • 慎用或禁用Polling(轮询)的方式去执行网络请求,可以采用APNs。
    • 减少推送消息次数和频率。App收到服务端大量或频繁的推送消息,对手机的耗电量会有一定影响。
    • 网络状态。在网络不可用状态下,尽早进入网络异常处理逻辑,避免不必要的运算逻辑。
  • 界面相关优化

    • 减少您的应用使用的视图数量。
    • 减少不透明度的使用,例如在显示半透明模糊的视图中。如果需要使用不透明度,请避免在不经常更改的内容上使用它。否则,能源成本会被放大,因为无论何时更改内容,背景视图和半透明视图都必须更新。
    • 当您的应用程序或其内容不可见时(例如,其他视图遮挡,剪辑或屏幕外),则消除绘图。
    • 离开某个界面后停止对应的耗电活动。例如,用户离开了A界面,而对应的耗电活动并没有及时停止,就会造成资源浪费。
    • 执行动画时,请使用一致的帧频。例如,如果您的应用每秒显示60帧,请在动画的整个生命周期内保持该帧速率。
    • 应用进入后台禁止异常消耗电量。
  • 定位相关优化

    • 不使用时停止定位服务,减少更新频率,根据实际情况切换GPS和网络,不要任何时候都同时使用两者。
    • 降低位置准确性和持续时间。
    • 慎用持续性定位,对大多数场景,使用一次定位接口即可。
    • 慎用被动定位,防止被动定位唤醒。
  • 电池状态

    ​ 在处理耗时耗电的任务时,如果该任务不是很紧急(例如下载应用的更新包),建议先判断一下电池电量是否足够,如果当前电池电量紧张,可以延迟到一定时间再执行该任务。

  • 消息广播

    程序中避免频繁地监听系统广播或业务消息造成严重耗电问题,灵活控制消息广播接收的有效与无效状态。

  • H5页面

    关注并测试H5页面的耗电量

为吾优公众号.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 本文由作者张迎贞授权网易云社区发布。 APP性能测试除了需要监控PCU、内存占用、流量等,还需要获取APP的电量数...
    43ce3d72fadb阅读 716评论 0 0
  • 慧文,是我们家孙辈的第一个孩子!是我唯一的侄女儿! 她小的时候,聪慧又可爱,我们都很喜欢她,宠着她,尤其是我妈。她...
    狮子座秋秋阅读 403评论 2 1
  • 1. 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符) 例如: 输入'abcd1234 ...
    穷到没有姓名阅读 196评论 0 0
  • 门坊,不斜壑幽谷初立 询问的人啊,又哪里知道 狭长的河道,遮蔽通往的路 嘀唤幽深静谧的祥和 错曾的桥梁,横跨小河两...
    人生请多逗留阅读 198评论 0 0
  • 今天应该是第九节课了,学习了一个小时,叫上步搬拦捶,锤是空心拳,先搬后拦,叫搬拦捶,老师对着镜子,我是转不过味来,...
    沁墨m阅读 129评论 0 1