优化应用的功耗

本文档介绍了关于如何优化功耗的最佳做法 您使用 Navigation SDK。同时,它还介绍了 需要考虑的因素。具体而言,本文档介绍了 以下:

  • 高功耗的来源,按从高到低的顺序排列。
  • 优化功耗的策略(按重要性排列) 首先是帧速率
  • 最终用户策略 - 指导应用用户如何管理自己的 设备使用情况数据

为什么要优化导航应用?

根据他们的具体情况,您的应用用户可能会为 。例如,司机和快递员可能要长时间工作 个小时,在陌生的地方完成任务。在这些情况下 。这会导致出现一些典型问题:

  • 电池电量消耗和是否有充电器。经常使用导航功能 会导致设备耗电过快。虽然许多用户可以 通过在车内为设备充电、双轮机动车驾驶员 不能。
  • 设备因过热而节流。即使是持续为其充电的用户, 设备可能会遇到问题。长时间耗电 可能导致设备过热,造成温控降频 进而降低后续性能

精细导航应用依赖耗电量较大的功能,例如屏幕、GPS、 因此最好是优化 移动应用的耗电量此外,您还应考虑 您的目标受众群体的使用需求,这样您便可以针对 性能和优化功耗之间的权衡。

什么组件的耗电量最大?

本部分详细说明了与高功率相关的应用内活动 可分为两类:

  • 屏幕呈现
  • 位置信息动态

屏幕呈现

在移动设备上,屏幕渲染通常会导致耗电量最高 导航应用每当设备在 屏幕,它依赖于 GPU 和 CPU 处理。同样,当用户离开 长时间开启屏幕,也比较耗电。

在某种程度上,驾驶人或 依赖可见地图进行导航,尤其是在用户持续使用应用时 好几小时在此场景中,应用还会以更高的渲染速率 因为地图随后会实时更新。在某些情况下, 屏幕可能会不断地重新绘制,尤其是当用户从屏幕上 无需停止操作。

位置信息动态

除了屏幕渲染之外,其他两个导航 activity 也会消耗设备 力量:

  • 无线电基站和 GPS 使用情况
  • 位置信息更新和分享,例如提供预计到达时间或报告 车队中车辆的位置。

GPS 和手机无线电通信都依赖于高耗电启动操作: GPS 必须找到卫星,手机无线装置必须与发射塔协商, 建立连接由于这些原因,它们基本上 (即使手机无线装置在导航期间保持 20 到 30 秒,也是如此) 以尽可能降低启动成本。这些设置由操作系统控制 您无法在应用中轻松配置这类配置

对于位置信息更新,耗电量因不可预测的因素而异。对于 例如,设备与移动网络基站之间的距离 确定用电量,因为设备将使用最少量的必要信号 继续导航以避免切换塔。因此, 相较于在没有网络连接的区域,导航需要耗电 靠近基站此外,某些应用可能会分享位置信息更新 因此需要与中央设备组管理服务 才能完成此操作

优化应用的耗电量

优化导航应用的耗电量所面临的挑战在于,这些应用所依赖的 会严重影响高耗电资源,这限制了减少 影响,而不用做出取舍(例如限制屏幕的使用)。这个 部分列出了在优化应用程序时可以采取的方法, 影响程度由高到低排序。

更改帧速率

屏幕会以称为“帧速率”的频率更新显示的内容。 帧速率通常以每秒帧数 (FPS) 为单位。由于屏幕渲染会占用大量 CPU 或 GPU,因此您可以降低帧速率以节省电量 。

降低帧速率时需要权衡的是 尤其是在地图频繁更新的情况下。这可能是最明显的 当用户在以下位置行驶时:放大地图以显示高细节 或者当速度或方向发生大幅改变时,

在 iOS 设备上,Maps SDK for iOS 会公开 preferredFrameRate 属性,用于控制帧速率。表格 下面显示了您可以调整的 GMSFrameRate 枚举器值:

kGMSFrameRatePowerSave

使用最小帧速率来节省电量。

kGMSFrameRateConservative

使用中位数帧速率可使渲染更流畅并缩短处理周期。

kGMSFrameRateMaximum

使用设备的最大帧速率。

对于低端设备,此帧速率为 30 FPS。为 60 FPS。

有关参考信息,请参阅 Google Navigation SDK 中的 GMSFrameRate

您无法控制最终用户设置设备屏幕亮度的方式, 例如,您可以提供导航选项 提供导航服务。这样,最终用户就可以 从而节省电量例如,如果司机经常在同一位置工作 他们可能不需要基于地图的指导。导航 可以启用 设置目的地入门指南 但并不显示地图。

添加一行代码以隐藏GMSMapView

mapView.isHidden = true

Navigation SDK 将继续更新道路贴靠位置、预计到达时间和预计到达时间 并且您的应用仍然可以订阅 Android SDK 引发的 随着驾驶员继续前进这并不适用于所有用例, 如果司机需要查看地图并遵循相关指南 视觉指导。以下屏幕截图展示了并排比较。 在有效导航期间切换地图视图的操作。

在显示地图视图的情况下运行的演示版应用。
图 1. Navigation SDK iOS 演示版应用,显示了 Data Back 演示版
在不显示地图视图的情况下运行的演示版应用。
图 2. 在不显示地图视图的情况下运行的演示版应用。请注意,剩余时间和距离以及被道路沿途的位置仍在更新。

使用深色地图样式

考虑将地图样式设置为使用深色主题,以减少耗电量 在屏幕上渲染地图所需的资源。

Navigation SDK 使用 Google Maps SDK for iOS 其中包含 在应用中设置任何非导航地图视图的样式。“导航”视图还会 支持强制使用深色模式。这对每台设备都有可能造成影响 不同的屏幕类型, 在某些情况下。最近的一项研究表明, 在某些屏幕上,深色模式节省的屏幕大小取决于屏幕启动时间 例如,对于设置为全亮度的屏幕,深色模式可以节省更多电量 达到 30-50%, 最大值。为应用使用深色模式时,请务必考虑这一点 因为省电取决于最终用户设置屏幕的方式 亮度。

如需详细了解如何修改 Navigation 界面,请参阅 修改导航界面

在采用深色地图样式的 iPhone 15 Pro 上运行的 Navigation SDK 的屏幕截图。
图 3. 配置了深色地图样式的 Navigation SDK
使用 mapID 配置 GMSMapView,该 ID 表示您的项目中定义的云端地图样式。

云端地图样式设置需要使用代表服务器端地图的地图 ID (您已在 Google 控制台项目中创建此配置)。有关 有关创建地图 ID 的信息,请参阅地图 ID 开发者 文档。如需详细了解如何设计和部署 云端地图样式,请参阅开发者文档创建和管理 云端地图样式

更改 GPS 位置信息更新频率

在考虑设备发送的位置信息更新消耗的电量时,将焦点置于 位置更新的频率,而不是 传输过程

您无法在 导航 SDK ,了解所有最新动态。 上述建议同样适用于使用非 GPS 位置源(手机和 Wi-Fi)的情况。

指导用户

您应用的用户可能想知道如何优化其功耗 。为了帮助用户降低其应用的功耗,建议您 用户可以执行以下操作:

  • 锁定手机
  • 将导航应用置于后台
  • 尽可能使用无地图导航
  • 通过为 OLED 和 AMOLED 使用深色模式降低屏幕亮度 屏幕,也可以启用自适应亮度
  • 让设备保持低温
  • 连接到车载 Wi-Fi(如果有)

测量功耗

您可以使用专业级工具测量功耗,但获取它们通常很困难或成本高昂。 应用和 IDE 性能分析工具,例如 Power Android Studio 中的性能分析器XCode 中的“Battery Usage”窗格 组织者会测量功耗,但可能比较困难 消除后台进程的影响,或将性能基准设置为 在某些情况下,设备限制可能会阻止您 访问必要的数据

您可以使用特殊用途的电源监控硬件并修改 电池连接配置,以及商业产品和服务 可帮助您实现这一目标。请注意,以这种方式修改设备可能会失效 设备保修。