iOS开发耗电检测及优化

所有应用程序在执行网络操作、更新用户界面或在CPU上运行代码时都会消耗能量。随着用户越来越多地依赖电池电量,以及应用程序的激增,能效已成为用户体验中不可或缺的一部分。

1.电池寿命

随着能源效率的下降,电池的寿命也会下降。同时消耗过多的资源会导致界面滞后,对用户输入的响应会很慢。随着越来越多的应用程序使用越来越多的资源,系统工作起来越来越努力,速度也越来越快,设备的物理温度也在逐渐升高。当这种情况发生时,系统会采取措施将温度降低到更容易接受的水平。

2.能量消耗的因素
  • CPU: CPU是能源的主要消耗者。高CPU使用周期会迅速耗尽用户的电池。 CPU使用率超过20%就会快速耗干电池电量——建议只在必要时通过批处理、调度和优先级排序来完成工作。

  • Network:大多数iOS应用程序执行网络操作。当联网发生时,蜂窝无线电和Wi-Fi等组件就会启动并消耗能量。通过批量处理和减少事务、压缩数据和适当处理错误,您的应用程序可以为节能做出重大贡献。

  • GPU: 图形处理器(显卡的处理器),乱使用GPU会导致交互差,并且降低电池寿命。

  • Location: 许多应用程序发出位置请求是为了记录用户的物理活动或提供基于环境的警报。能量消耗随着精确度的提高和位置请求的延长而增加。你的应用应该尽可能减少定位活动的准确性和持续时间。当不再需要时停止位置请求。

  • Background: 后台状态App仍会消耗电量,App要按需执行后台操作,并使用延迟APIs来保证系统运算高效执行.另外,在app进入后台状态是,立即减少动作,并且通知系统一次这些动作已经完成.

  • Bluetooth: 长时间的蓝牙活动会耗尽iOS设备和蓝牙设备的电池。只要可能,批处理和缓冲蓝牙活动,并减少对数据的轮询。

  • Device wakes:iOS设备依靠睡眠来延长电池寿命。无论设备何时唤醒,都会有很高的开销成本,因为必须为屏幕和其他资源提供电源。你的应用程序,尤其是在后台操作时,应该尽可能空闲,除非绝对必要,避免用推送通知或其他活动唤醒设备

3.分析工具
  • Activity Monitor: 活动监视器分析模板。使用此模板可以监视整体CPU,磁盘I / O和网络使用情况。

  • Core Animation:核心动画分析模板。使用此模板可以测量图形性能和CPU使用率。启用模板 Core Animation 的Flash Updated Regions 设置,以查看应用中发生的每个屏幕更新,并观察不必要或意外的更新。

  • Time Profile:时间分析器分析模板。使用此模板对正在运行的进程执行低开销的基于时间的采样。Time Profiler 监视应用程序中正在运行的线程,并定期采样。为每个样本收集完整的回溯,允许您深入查看样本,以准确找到代码中花费大量时间的位置。

4. Instrument的Time Profile调试和演示

(1)检查第一步,是通过xcode开发工具的energy impact来整体查看app的耗电情况。


energy impact
  • Overhead:表示开销,包括CPU的唤起,无线电模组(蓝牙&WiFi),和其他系统资源的调用等。

(2)检查第二步:通过instrument工具的energy log来检测具体的耗电模块。


Energy log工具

(3)配合time profile来跟踪代码具体位置。

  • 连接手机设备;
  • 搜索time profile并双击添加;
  • 打开开关,操作app的某一个被检测功能;
  • 而后断开开关,该工具就能自动加载刚被检测设备的数据;
  • 设置过滤参数,开始分析数据。

下面 便是得到的数据分析界面:

  • CPU Usage 表示CPU消耗占比
Time profile
检测数据
设置参数

(4)检查占比权重高的位置双击可查看具体的代码。


占比权重

(5)经过检查,发现是一个加载gif的动画反复调用增加了能耗。可以通过代码优化来解决这个问题。

4.降低能量消耗举例

(1)CPU

  • Timer的时间间隔不宜太短,满足需求即可
  • 线程适量,不宜过多,不要阻塞主线程
  • 优化算法,减少循环次数
  • 适当使用多线程
  • 避免庞大的xib,storyBoard,尽量使用纯代码开发

(2) 网络请求

  • 识别:确保不重复做同一个操作;
  • 优化:使用后台会话
  • 合并:批处理事务
  • 减少:最小化重试,缓存结构优化等等

(3) GPU

  • 减少视图刷新:确保必要的时候才刷新,能刷新1行cell最好只刷新一行;
  • 审查模糊用法:避免将模糊放在更新元素上,尽量少使用圆角和透明度;
  • 尽量减少使用离散GPU除非动画效果需要,或功能不能支持的情况下

(4) Location, Bluetooth, Background

  • 定位和蓝牙按需取用,定位之后要关闭或降低定位频率,进入后台关闭定位,停止定时器运行等

Apple Developer 参考文档:性能优化

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,067评论 1 32
  • 一款好的App一定要有非常好的用户体验,这一点已经是大多数开发者的共识。功耗是用户体验中一个重要的组成部分,但这部...
    孙叔叔sunShuShu阅读 8,011评论 1 39
  • 本文是来自@ShawnSun的投稿 一款好的App一定要有非常好的用户体验,这一点已经是大多数开发者的共识。功耗是...
    SmallDe阅读 3,027评论 0 50
  • 电池寿命长。随着能效降低,电池寿命也会降低。但用户想让自己的移动设备全天候待命。 速度快。iOS系统处理复杂操作时...
    武_IOS书阅读 1,454评论 0 3
  • iOS 苹果官方Demo合集 字数10517阅读21059评论18喜欢144 其实, 开发了这么久, 不得不说, ...
    bingo居然被占了阅读 10,047评论 2 31