谷歌地图 | Android 导航 SDK 集成的最佳实践

此前,谷歌地图平台发布了导航 SDK,它可以让开发者们将 Google 地图逐向导航体验无缝集成到 Android 和 iOS 应用程序中。

 

本文概述了一些您可以使用的最佳实践,以使用导航 SDK 为您的 Android 应用构建流畅、一致且可靠的导航体验。

与导航地图交互的最佳实践

当与导航 SDK 集成时,可以使用 SupportNavigationFragment,它是 NavigationView 的包装器,或者直接与 NavigationView 交互。我们推荐的最佳实践是:

  • 尽可能使用 SupportNavigationFragment 而不是 NavigationView

  • 如果使用 NavigationView,则在调用生命周期方法时使用严格排序。

  • 如果使用 NavigationView,则从活动或片段调用生命周期事件,而不是同时从两者调用。

 

有关更多信息,请参阅导航 SDK 开发人员文档中的导航地图交互,或者直接与 Cloud Ace 联系

管理导航通知的最佳实践

导航通知是用于在导航过程中向用户提供提示、信息或状态更新的功能。无论用户是否设置了目的地,导航通知都会在导航过程中显示,以确保位置信息的准确性。

 

为了最大化位置准确性、最小化电池使用量并避免内存泄漏,应用程序必须正确管理 Android 对从后台启动前台服务和从后台访问位置的限制。

 

以下的最佳实践可以帮助开发者确保导航应用程序在 Android 设备上运行平稳、高效,并提供准确的导航服务:

 

  • 向应用程序用户请求“始终允许”位置权限。

  • 确保正确清理监听器以清除导航通知。

  • 在重新调用 NavigationApi#initForegroundServiceManager 方法之前,先调用 NavigationApi#clearForegroundServiceManager。

 
有关更多信息,请参阅导航 SDK 开发人员文档中的后台位置使用情况,或者直接与 Cloud Ace 联系

与 GoogleMap 对象交互最佳实践

除了允许您向应用添加导航体验之外,Android 版导航 SDK 还包含来自Android 版地图 SDK的非导航地图功能。

 

非导航地图可通过 GoogleMap 类访问。GoogleMap APIs 允许您创建自定义地图体验,包括绘制多边形、自定义图标等。在应用中实现 GoogleMap 功能时,务必将非导航地图与导航地图分开,并管理 GoogleMap 生命周期与导航体验的关系。

 

开发者可以通过遵循以下最佳实践,更好地管理导航体验和非导航地图功能,确保应用的稳定性和性能:

 

  • 在与导航体验不同的地图实例上实现 GoogleMap 功能。

  • 使用 getMapAsync 获取 GoogleMap 实例。

 

有关更多信息,请参阅导航 SDK 开发者文档中的 GoogleMap 交互,或者直接与 Cloud Ace 联系。

清理实例最佳实践

清理不再需要的实例和会话对于避免内存泄漏和其他问题非常重要。特别是,请确保清除导航目的地并清理 GoogleMap 对象上的地图元素。

 

以下最佳实践能给帮助开发者有效地管理应用程序的资源,避免内存泄漏和其他问题,提高应用程序的性能和稳定性:

 

  • 在导航会话完成后,使用 Navigator#clearDestinations 和 Navigator#cleanup。

  • 在不再需要时清理 GoogleMap 元素

 

有关更多信息,请参阅导航 SDK 开发人员文档中的实例清理。

其它建议

除了上面推荐的最佳实践之外,以下建议也可以帮助您了解最新的导航 SDK 开发:

 

  • 使用 Maven 进行导航 SDK 构建

  • 使用最新的可用导航 SDK 版本

  • 关注强制服务公告

  • 不要使用已弃用的方法

  • 在 GitHub 上关注谷歌地图的演示应用程序

 

本文介绍的最佳实践,可以帮助开发者确保您的用户获得流畅、可靠的导航体验。

 

本文内容整理自谷歌地图博客,如果对您有所帮助,请点赞、关注我们!需要了解更多信息或者帮助,可以随时联系 Cloud Ace

Leave a Reply