如何优化 APP 的电量?

程序的耗电主要在以下四个方面:

CPU 处理

定位

网络

图像

优化的途径主要体现在以下几个方面:

尽可能降低 CPU、GPU 的功耗。

尽量少用 定时器。

优化 I/O 操作。

不要频繁写入小数据,而是积攒到一定数量再写入

读写大量的数据可以使用 Dispatch_io ,GCD 内部已经做了优化。

数据量比较大时,建议使用数据库

网络方面的优化

减少压缩网络数据 (XML -> JSON -> ProtoBuf),如果可能建议使用 ProtoBuf。

如果请求的返回数据相同,可以使用 NSCache 进行缓存

使用断点续传,避免因网络失败后要重新下载。

网络不可用的时候,不尝试进行网络请求

长时间的网络请求,要提供可以取消的操作

采取批量传输。下载视频流的时候,尽量一大块一大块的进行下载,广告可以一次下载多个

定位层面的优化

如果只是需要快速确定用户位置,最好用 CLLocationManager 的 requestLocation 方法。定位完成后,会自动让定位硬件断电

如果不是导航应用,尽量不要实时更新位置,定位完毕就关掉定位服务

尽量降低定位精度,比如尽量不要使用精度最高的 kCLLocationAccuracyBest

需要后台定位时,尽量设置 pausesLocationUpdatesAutomatically 为 YES,如果用户不太可能移动的时候系统会自动暂停位置更新

尽量不要使用 startMonitoringSignificantLocationChanges,优先考虑 startMonitoringForRegion:

硬件检测优化

用户移动、摇晃、倾斜设备时,会产生动作(motion)事件,这些事件由加速度计、陀螺仪、磁力计等硬件检测。在不需要检测的场合,应该及时关闭这些硬件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 电池续航时间是移动用户体验中最重要的一个方面。没电的设备完全无法使用。因此,对于应用来说,尽可能地考虑电池续航时间...
    闫回阅读 550评论 0 1
  • 1.获取手机电量信息 通过Instruments获取利用Xcode自带的Energy Log获取iPhone特定时...
    huanghy阅读 1,391评论 0 1
  • 只有明白了电量是怎么消耗的,才能找到优化的方法。 google给出的电量消耗图。 对于不同的元器件消耗的电量不同。...
    田间小鹿阅读 738评论 0 1
  • 1、在android framework里面有专门负责电量统计的Service:BatteryStatsSeriv...
    爱码士平头哥阅读 222评论 0 1
  • 前言-理论篇 耗电量分析是衡量应用性能表现的一个重要指标,要做好一款app,不仅仅是实现功能,我们需要考虑很多性能...
    繁星mind阅读 10,683评论 2 25