001性能优化-05-硬件优化

[TOC]

如何优化 APP 的电量

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

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

优化途径有以下几个方面

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

  • 尽量少用 定时器

  • 优化 I/O 操作

    • 不要频繁写入小数据,可以积攒到一定数量再写入
    • 读写大量的数据时可以使用 Dispath_io,GCD 内部已经做了优化
    • 数据量比较大时,建议使用数据库
  • 网络方面的优化

    • 减少压缩网络数据(XML->JSON->ProtoBuf),如果可能建议使用 ProtoBuf
    • 如果请求的范湖数据相同,可以使用 NSCache 进行缓存
    • 使用断点续传,避免因网络失败后要重新下载
    • 网络不可用的时候,不尝试进行网络请求
    • 长时间的网络请求,要提供可以取消的操作
    • 采取批量传输。下载视频流的时候,尽量一大块一大块的进行下载。
    • 广告可以一次性下载多个
  • 定位层面的优化

    • 如果只是需要快速确定用户位置,最好用 CLLocationManager 的 requestLocation方法。定位完成后,会自动让定位硬件断电
    • 如果不是导航应用,尽量不要实时更行位置,定位完毕后关掉定位服务
    • 尽量降低定位精度,比如尽量不要使用精度最高的 KCLLocationAccuracyBest
    • 需要后台定位时,尽量设置 pausesLocationUpdatesAutomatically 为 YES,如果用户不太可能移动的时候,系统会自动暂停位置更新
    • 尽量不要使用 startMonitoringSignificantLocationChanges,优先考虑 startMonitoringForRegion
  • 硬件检测优化

    • 用户移动、摇晃、倾斜设备时,会产生动作(motion)时间,这些事件由加速度计、陀螺仪、磁力技等硬件检测。在不需要检测的场合下,应该及时关闭这些硬件
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。