美文网首页iOS面试
iOS 性能优化面试题(如何优化 `APP` 的电量?)

iOS 性能优化面试题(如何优化 `APP` 的电量?)

作者: 程序员_秃头怪 | 来源:发表于2019-08-10 20:17 被阅读23次

    如何优化 APP 的电量?

    程序的耗电主要在以下四个方面:
    • CPU 处理
    • 定位
    • 网络
    • 图像

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

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

    热文推荐

    2019 全网 iOS 面试题以及答案总结!

    相关文章

      网友评论

        本文标题:iOS 性能优化面试题(如何优化 `APP` 的电量?)

        本文链接:https://www.haomeiwen.com/subject/hfkdjctx.html