Bateria
Performance
Mobile
Otimização
iOS
Android

应用程序中的电池消耗:如何优化移动性能

应用程序中的电池消耗:如何优化移动性能

电池是移动设备中的宝贵资源。消耗电池电量的应用程序已被卸载且评级不佳。本指南介绍了过度消耗的原因以及创建节能应用程序的技术。

为什么电池很重要

用户体验

没有人想要一个会耗尽电池电量的应用程序。沮丧导致卸载。

评论

“电池耗尽”经常出现在负面评论中。

系统限制

iOS 和 Android 限制消耗过多的应用程序。后台终止。

过度消费的原因

后台活动

应用程序未使用时运行的进程。

固定位置

GPS是最大的消费者之一。仅在必要时使用。

网络请求

频繁请求,尤其是在屏幕关闭的情况下。

唤醒锁

不正确地保持 CPU 或屏幕唤醒。

重动画

复杂的动画需要 GPU。谨慎使用。

精加工

繁重的计算、媒体解码。

过多的推送通知

每个通知都会唤醒设备。

监控消耗

###安卓

电池历史记录器、Android Studio 分析器。

iOS

Xcode 能量计、仪器能量日志。

指标

CPU 时间、网络活动、位置更新、唤醒。

网络优化

批处理

将请求分组在一起,而不是一项一项地进行。

压缩

较小的数据=较短的传输时间。

缓存

避免重复请求。积极的缓存。

智能预取

连接并使用 Wi-Fi 时下载数据。

指数退避

失败不应导致主动重试。

位置优化

足够的准确性

使用必要的最低精度。精度高消耗大。

地理围栏

当您进入该区域时让系统通知您。不要经常进行轮询。

重大位置变化

对于 iOS,持续更新的有效替代方案。

融合位置提供商

对于Android来说,它平衡了准确性和消耗。

不必要时停止

当您不再需要侦听器时将其删除。

后台工作

iOS

后台应用程序刷新有限。用于任务的 BGTaskScheduler。

###安卓

用于可延迟任务的 WorkManager。尊重打瞌睡模式。

一般原则

做最少必要的事情。完成并睡觉。

避免轮询

使用推送/websockets 而不是持续轮询。

唤醒锁

它们是什么

防止CPU或屏幕休眠。

风险

忘记唤醒锁 = 电池电量耗尽。

良好实践

最小化持续时间、立即释放、使用超时。

###安卓

首选 JobScheduler 或 WorkManager。

高效的动画

硬件加速

尽可能使用。 GPU 的图形处理效率比 CPU 更高。

帧速率

60fps 很流畅,但很耗电。在可接受的情况下减少。

离屏动画

暂停不可见的动画。

洛蒂

高效的矢量动画。

渲染

简单布局

深层的等级制度代价高昂。压平。

RecyclerView/列表

回收视图。不要不断地重新创建。

透支

避免多次绘制像素。用工具检查。

推送通知

正确的优先级

非紧急的正常优先级。在服务器上进行批处理。

小有效负载

更少的数据=更少的处理。

无声推送

用于后台同步。不必要时不要唤醒屏幕。

媒体

高效编解码器

在许多情况下,H.265/HEVC 比 H.264 更高效。

足够的分辨率

请勿将 4K 解码为缩略图。

回放

不可见时暂停。释放资源。

传感器

按需使用

仅在必要时注册监听器。

合适的频率

满足要求的最低频率。

批量发货

小组阅读以减少醒来的次数。

诊断工具

###安卓

  • 电池历史学家
  • Android Studio 分析器
  • dumpsys 电池统计

iOS

  • Xcode 能源管理器
  • 仪器(能量日志)
  • 度量工具包

测试

真实场景

在实际使用中进行测试,而不仅仅是在实验室中。

各种设备

不同设备的性能有所不同。

电池电量低

行为有20%、10%、5%。

背景扩展

将其留在后台几个小时。措施。

系统API

###安卓

  • 打瞌睡模式:尊重、测试
  • 备用桶应用程序:了解类别
  • 省电模式:适应行为

iOS

  • 低功耗模式:减少活动
  • 后台应用程序刷新:尊重偏好
  • BGTaskScheduler:高效任务

深色模式

OLED屏幕

黑色像素关闭。深色模式可以保存。

原生支持

实施以下准则。系统适应。

常见错误

GPS 始终开启

忘记停止位置更新。

积极计时器

setInterval 1 秒不必要。

唤醒锁泄露

在异常或边缘情况下不发布。

生产中的调试

日志过多,调试功能已打开。

结论

电池优化是开发人员的责任。监控消耗、最小化背景、使用高效的 API 并在实际条件下进行测试。用户感谢您,并留下来。

##常见问题解答

1) 我如何知道我的应用程序是否消耗大量电池? 使用分析工具。与类似的应用程序进行比较。

2)背景是最大的问题? 经常是的。关闭屏幕时的活动成本非常高。

3) GPS 消耗多少? 它是最大的消费者之一。使用所需的最小精度。

4) 深色模式真的省电吗? 在 OLED 屏幕上,是的,显着。液晶显示屏,没有。

5) 如何测试电池消耗? 使用分析器,在真实设备上进行测试,模拟长时间使用。

另请阅读

  • [移动性能优化:完整指南0
  • 【移动端性能优化-初学者实例1
  • 【应用中的电池消耗:与真实案例的比较2
  • [应用程序中的电池消耗:比较和清单3
  • 【应用中的电池消耗:比较和快速指南4
  • 【Android原生开发:如何采取必要步骤5