建筑师之家IOS / NOTES
← 全部笔记

性能

耗电是后台还在干活

定位、轮询、动画和常亮屏幕,比一次重的启动更容易把电吃掉。

用户抱怨费电时,先看 App 退到后台之后还在做什么。前台一次重计算通常有头有尾。后台每 30 秒醒一次,整晚会比那次计算贵得多。

先停掉不需要的源

后台任务用 BGTask 声明你要做什么、最晚何时做完。不要用后台定位或音频模式去换取“一直活着”。审核和耗电都会出问题,系统也会把你挂起。

怎么看

Energy Log 和 MetricKit 的动画、定位、网络三项就够开始。先对上用户路径:是看视频、是挂在前台不动,还是切走之后仍在转。对不上路径的优化,电量数字不会动。

override func viewDidDisappear(_ animated: Bool) {
    super.viewDidDisappear(animated)
    displayLink?.isPaused = true
    locationManager.stopUpdatingLocation()
}

出现和消失要成对。只在 viewDidLoad 里开始、从不停止,这个页面每进一次就多一个源。