iOS 优化app的电量

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

  • CPU处理
  • 定位
  • 网络
  • 图像

优化途径主要体现在一下几个方面

  • 尽可能降低CPU/GPU的功耗
  • 尽量少用定时器
  • 优化I/O操作
    • 不要频繁写入小数据,而是积攒到一定数量再写入
    • 读写大量的数据可以使用 Dispatch_io ,GCD 内部已经做了优化。
    • 数据量比较大时,建议使用数据库
  • 网络方面的优化
    • 减少压缩网络数据 (XML -> JSON -> ProtoBuf),如果可能建议使用 ProtoBuf(数据序列话处理)
    • 如果请求的返回数据相同,可以使用 NSCache 进行缓存
    • 使用断点续传,避免因网络失败后要重新下载。
    • 网络不可用的时候,不尝试进行网络请求
    • 长时间的网络请求,要提供可以取消的操作
    • 采取批量传输。下载视频流的时候,尽量一大块一大块的进行下载,广告可以一次下载 多个
  • 定位层面的优化
    • 如果只是需要快速确定用户位置,最好用 CLLocationManager 的 requestLocation 方法。 定位完成后,会自动让定位硬件断电
    • 如果不是导航应用,尽量不要实时更新位置,定位完毕就关掉定位服务
    • 尽量降低定位精度,比如尽量不要使用精度最高的 kCLLocationAccuracyBest
    • 需要后台定位时,尽量设置 pausesLocationUpdatesAutomatically 为 YES,如果用户不太可能移动的时候系统会自动暂停位置更新
    • 尽 量 不 要 使 用 startMonitoringSignificantLocationChanges , 优 先 考 虑startMonitoringForRegion:
  • 硬件检测优化
    • 用户移动、摇晃、倾斜设备时,会产生动作(motion)事件,这些事件由加速度计、陀螺仪、磁力计等硬件检测。在不需要检测的场合,应该及时关闭这些硬件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值