{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508788739,"data":{"id":71711915,"title":"2.AutoSDK简介","slug":"ta7a4q","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

1.AutoSDK架构


\"image.png\"


架构特性

AutoSDK设计之初就是为了满足市面所有主流的车机系统类型。AutoSDK所有的核心业务逻辑以C++语言实现,充分利用C++语言的跨平台和高性能两个特点。AutoSDK量产车型的操作系统已经覆盖了android,qnx,linux,也在wince平台做了demo验证。其中主流的android操作系统4.0以上版本都已经经过量产验证。

AutoSDK渲染、算路、引导、搜索等核心能力都同时支持在线和离线两种方式。车载四化中联网化进程最快,兼顾到大量的存量车机还不联网,联网的车机也通常对离线引擎有强诉求,AutoSDK同时搭载了高德星云离线引擎和高德在线引擎。同时,为了减少应用层的接入成本,AutoSDK在接口能力上一般都支持外部设置在线/离线/在线优先/离线优先等策略。

除了高德的核心引擎能力,AutoSDK在基础网络能力、数据同步、消息推送和云控等基础支撑技术做了重点建设。借助相关的能力能够帮助车厂做好用户体系化运营(账号绑定、数据同步、手车互联、围栏运营等)。

AutoSDK沉淀的是来自高德AmapAuto和其他内部车载APP产品的共性业务。通过和车厂及导航应用供应商深度合作,沉淀更多的出行共性业务,形成内、外双向正向循环,不断提升AutoSDK在车载出行共性业务覆盖。

一方面,共性业务核心解决应用层重复开发成本,如AutoSDK内置的业务图层包含了AmapAuto所有的图面显示元素。另一方面,AutoSDK在API设计层面追求极大的灵活性,满足应用层车载个性化场景。接口经过内部导航资深专家严格评审,也参考行业标准如GENIVI规范、global车厂要求等。eg. 基于AutoSDK,应用层可以做到跨操作系统公用一份离线数据,多种多屏方案,多屏之间的路线传输和还原等。

工程服务

围绕AutoSDK产品建设的定制化相关平台,如DMAP(满足车厂换肤),围栏编辑(支持车厂做POI运营)、女娲(按渠道定制SDK资源)等。

为了降低应用层对接成本,AutoSDK官网内容上承载着开发指南、培训课程和DEMO三位一体的包含入门和进阶的系统性的知识。

培训中心会有固定地开展线上线下交流活动。一方面将SDK新的能力的最佳实践分享给开发者,一方面吸纳开发者对SDK的功能建议。

AutoSDK开放过程需要满足对开发者的高响应效率,解决开发者成本和效率问题。对外提供SDK配套的联调分析工具,如定位回放、AR调试工具等辅助开发者做快速开发和问题第一时间分析。内部建设问题自动化答疑、自动化分析能力满足第一时间相应。

三大体系化能力+AmapAuto灰度来保障AutoSDK质量。

  1. CI体系。发布前通过持续的性能、稳定性的压测。
  2. 埋点体系。上线后通过埋点渠道回收质量问题,不断迭代优化。
  3. 仿真体系。是持续CI和埋点回收的基建。高德自建云机平台,提供真实的车机运行硬件环境、自动化信号模拟能力和车机用户行为仿真能力,保障功能回归case的多样性。
  4. AmapAuto灰度。SDK每个版本验收后第一时间交付给AmapAuto集成,通过线上OTA进行规模化灰度验证,再交付到前装车厂做产线验证,最终再交付到开发者。



2.模块介绍

目前AutoSDK总体可分成9个服务模块:主图、TBT、定位、图层、数据、用户、搜索、激活、AOS服务。

模块

业务内容

主图

设备管理、EGL管理、手势识别、样式配置、动画、图面状态控制、图块下载、点线面基础Overlay功能

TBT

在线/离线算路、引导/偏航

定位

定位和回放

图层

Auto图面业务(包含auto相关所有图面绘制服务)

用户

收藏夹、设置项、账号服务、消息推送、云同步等

搜索

8种搜索行为能力,包括离线和在线搜索:关键字、逆地理、预搜索、沿途搜、深度信息、详细信息、周边搜及子POI到达点查询

数据

离线地图数据下载、离线地图数据U盘升级、语音数据下载、语音数据U盘升级

AOS

封装AOS相关网络请求服务:停车支付、天气、限行、交通事件等

激活

导航产品出产激活


3.服务调度

AutoSDK提供的服务大致可以分为两大类:显示、数据。显示包含了地图服务、图层服务。数据则包含了,AutoSDK本身显示,即内聚业务所需要的数据(如TBT引导信息、定位位置信息、在线引擎下发的信息)以及HMI需要通过AutoSDK期望获得的数据(如搜索、账号信息、地图数据等)。通常,AutoSDK内聚业务所需要的信息HMI同样需要。

往往导航产品业务核心是基于地图基础渲染能力结合业务数据实现图面上的显示业务。无论是Auto产品还是开放客户的LBS应用,都离不开算路、电子眼、搜索结果扎点等图层绘制业务。AutoSDK在迭代过程中已经沉淀了图层服务来同时支撑Auto和开放项目的图面显示业务。通常图层服务也称为内聚业务。图层服务不仅仅提供显示元素的容器管理,还提供显示元素的显示策略的管理,同时也提供显示相关的灵活性配置(如压盖关系、样式配置、显示比例尺区间等控制),在图层的章节里会专门提到。

AutoSDK服务调度。为了减少HMI开发者对AutoSDK图层服务的使用成本,SDK自行将图层服务内部的业务任务投递到HMI的UI线程去执行,如图层服务会监听定位服务的位置更新信息,直接调用图层服务内的车标控制器的位置更新完成车标重绘。如下图,AutoSDK业务调度核心是监听TBT、定位、地图等服务的回调通知后,组织好业务任务,投递到UI线程执行。

AutoSDK的服务调度也支持“高级”用法。考虑到HMI可能存在对UI线程负载有高要求,下图中的UI线程也可以由HMI专门指定。如果HMI给图层服务指定了线程A,那么HMI所有对图层服务的调用也必须在A线程里执行。这往往是为了避免图层服务内部存在多线程资源竞争问题。


\"image.png\"



","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-04-06 07:01:05","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":814,"collectCount":0,"estimateDate":6,"docStatus":0,"permissions":true,"overView":false}}