1. 耗电优化
iOS的APP的耗电的性能也是一部分需要的优化的部分.我们可以使用xcode看出一个App的使用性能情况,使用xcode打开你的工程,然后插上手机,使用真机running项目(必须是真机),然后comand + 6,点击Energy Impact
一. 耗电的主要来源
CPU(Processing) :CPU使用率超过20%就会快速耗干电池电量.高效使用CPU,并且当用户出现模糊输入时快速做出不做事情的反应.
Network (Networking): 网络活动会唤起需要长时间周期性供电的无线电模组,可以分批次进行网络请求,来降低开销.
Location(Location) :精密&高频的的定位会增加开销,需要按需使用.
GPU(Graphics) :图形处理器(显卡的处理器),乱使用GPU会导致交互差,并且降低电池寿命.
Background : 后台状态App仍会消耗电量,App要按需执行后台操作,并使用延迟APIs来保证系统运算高效执行.另外,在app进入后台状态是,立即减少动作,并且通知系统一次这些动作已经完成.
二. 耗电优化
尽可能降低CPU、GPU功耗;
少用定时器;
优化I/O操作;
※ 尽量不要频繁写入小数据,最好批量一次性写入;
※ 读写大量重要数据时,考虑用dispatch_io,其提供了基于GCD的异步操作文件I/O的API。用dispatch_io系统会优化磁盘访问;
※ 数据量比较大的,建议使用数据库(比如SQLite、CoreData);网络优化
※ 减少、压缩网络数据;
※ 如果多次请求的结果是相同的,尽量使用缓存;
※ 使用断点续传,否则网络不稳定时可能多次传输相同的内容;
※ 网络不可用时,不要尝试执行网络请求;
※ 让用户可以取消长时间运行或者速度很慢的网络操作,设置合适的超时时间;
※ 批量传输,比如,下载视频流时,不要传输很小的数据包,直接下载整个文件或者一大块一大块地下载。如果下载广告,一次性多下载一些,然后再慢慢展示。如果下载电子邮件,一次下载多封,不要一封一封地下载;定位优化
※ 如果只是需要快速确定用户位置,最好用CLLocationManager的requestLocation方法。定位完成后&#