基于Android系统的高精度定位SDK方案
内容简介
1、Android经典架构
2、Android高精度SDK架构设计说明
3、Android高精度SDK系统层技术设计详解
课程实录
一、Android经典架构
Android系统的架构分为四层,分别是应用层、应用框架层、系统运行库层和Linux内核层。其中,跟定位有关的是应用层,以及应用框架层中的“Location Manager”,千寻位置提供的高精度SDK方案,主要也是应用在这两个地方。
二、Android高精度SDK架构设计说明
千寻位置提供的高精度SDK,在架构设计上与Android系统一脉相承:最顶端是用户接口层,承担着跟用户对接的功能;随后是核心业务层,实际应用场景比较复杂;下一层是算法适配层;再下一层是JNI(Java Native Interface),它主要负责上层的JAVA语言和算法层C语言之间的“翻译工作”;最底层则是算法层。
开发者可以从应用层或应用框架层,调用千寻位置提供的高精度SDK。
△千寻位置Android高精度SDK架构设计图(简版)
为了方便开发者进行集成,这里将重点介绍用户接口层、硬件交互层以及算法层的设计边界。
1)用户接口层
千寻位置的Android高精度SDK,在用户接口层的设计具备以下特点:
遵循LMS系统API设计规则,开发者无需额外学习便可集成;
采用Builder设计模式,可高效实现参数配置;
内部实现异步调用,不对主线程造成负担;
最多可以支持20个并发定位请求。
2)硬件交互层
在使用千寻位置的Android高精度SDK时,有时会涉及到与硬件交互的部分。这部分内容具体体现为:SDK从芯片获取一些跟定位相关的原始数据,包括Nmea数据、原始观测量、IMU传感器数据以及芯片发出的控制指令等,而这些数据的传输可通过USB、串口、蓝牙或wifi等方式进行。
△千寻位置Android高精度SDK-硬件交互层(设计图示)
3)算法层
终端原始观测数据和千寻位置差分服务数据的解算,在算法层进行,涉及到的核心算法有PVT(定位、定速、授时)、RTK(实时载波相位动态差分)、RTD(实时伪距差分)、DR(惯导)、PPP(精密单点定位)、AGNSS(辅助全球导航卫星系统)等。
△千寻位置Android高精度SDK-算法层(设计图示)
三、Android高精度SDK系统层技术设计详解
如果Android设备的APP应用集成高精度定位服务,那么,直接用Android标准API调用千寻位置提供的SDK即可。但如果是系统或终端设备厂商,希望系统级提升定位精度的话,就要在应用框架层调用SDK了。
在Android的应用框架层里,跟定位相关的有三部分,分别是GLP(Gnss Location Provider)、NLP(Network Location Provider)、FLP(Fused Location Provider)。而千寻位置的SDK方案则是基于GLP来实现系统级高精度定位的。
△Android的应用框架层跟定位相关的是:GLP、NLP和FLP
Android系统集成千寻位置的SDK方案后,该SDK下的技术框架QXGLP将代替GLP向系统注册定位服务,等同于接管了系统的GLP能力。QXGLP承担着任务调度、数据注入、位置结果融合,Nmea结果融合等职责。对于QXGLP的绝大部分修改由千寻位置内部代码完成,并封装成独立模块,通过独立脚本编译,无需开发者参与。
下面为大家介绍具体的技术组合方式:
1)技术组合:GNSS+SDK+算法
首先,Android系统的GNSS模块会生成原始的定位数据,包括Nmea、原始观测量等;接着,系统将这些数据注入到千寻位置的Android高精度SDK, 再到算法解算,最终通过SDK输出高精度定位结果到应用层。开发者想要验证这条通路也非常方便,但要注意,安卓系统必须是7.0以上的,这样才能从应用框架层拿到符合算法要求的GNSS数据。
△技术组合方式1:GNSS+SDK+算法
2)技术组合:芯片+SDK+算法
与第一种技术组合方式不同,采用“芯片+SDK+算法”的技术组合方式,数据源不是从原生系统中获取,而是通过增加一个定位芯片, 让SDK通过驱动层从这个定位芯片中获得数据,进而进行解算输出。二者之间的通讯通过串口来实现。
3)技术组合:外接设备+SDK+算法
第三种技术组合方式,最大特点是定位数据源既不来自系统原始数据,也不来自芯片,而是来自于外接的定位设备。数据可通过USB、蓝牙或wifi等方式传输给SDK,算法进行解算后输出高精度定位结果,最终给到应用层。
△技术组合方式3:外接设备+SDK+算法
互动问答
LeslieXong:为什么Android上要有那么多并发定位请求?是指不同的APP同时请求吗?
黄成钟:是指同一个APP的定位请求。正常情况一个APP调用应该不会同时有20个这么多,只是有一些开发者在集成SDK时,存在技术上的不规范,导致APP的调用请求堆积,出现位置数据输出异常的情况,这里只是强调一下,我们的上限是20,否则就会调用失败。
坤:千寻位置现在开放 Android SDK了吗?需要外接硬件吗?
黄成钟:由于这款SDK的集成效果,跟硬件兼容性有很大关系,所以千寻位置暂时没有形成标准化的SDK对外公开。目前,这款SDK主要通过商务人员对外提供,如果你有需要,可以先联系千寻位置的客服。刚刚介绍了3种技术组合方式,第三种就涉及外接硬件,前两种不需要。
Enlighting:对卫星信号质量要求高吗?
黄成钟:如果需要得到高精度的定位结果,卫星信号的平均CN0要达到30以上。
赵存瑜:除了Android的SDK,咱们有没有针对物联网操作系统的SDK?
黄成钟:目前千寻位置提供的SDK包括算法支持嵌入式、Linux以及Android系统。如果你所说的物联网操作系统是基于安卓系统5.0以上的版本,就可以进行适配。
基于Android系统的高精度定位SDK方案相关推荐
- android 系统gpu 调试_基于Android系统的GPU动态调频方案 | Imagination中文技术社区
针对移动终端上GPU的高功耗问题,提出一种基于Android系统的GPU动态调频方案.方案根据各种应用对GPU的性能需求,引入了GPU的频率一性能模型,包括选择工作频率和测量相对性能的方法.动态调频算 ...
- android+集成北斗定位,基于Android系统的北斗定位通信手持设备研究
摘要: 卫星导航系统广泛应用于交通运输,军事活动,野外作业,抗险救灾等重要领域,其重要程度关系国家重大利益.我国北斗卫星导航系统日趋完善,研发基于北斗系统的地面手持终端对于开发利用北斗导航卫星系统非常 ...
- android 消息推送方法,一种基于Android系统的消息推送方法技术方案
[技术实现步骤摘要] 本专利技术涉及一种基于Android系统的消息推送方法,属于计算机 技术介绍 推送功能在手机应用开发中越来越重要,已经成为手机开发的必选项.消息推送,就是在互联网上通过定期传送用 ...
- 基于Android端的照片比对系统,基于Android系统的人脸识别系统
[文章摘要] 当前随着基于Android系统的移动终端设备的广泛应用,以及图像采集设备的普遍集成,使得Android系统的图像采集设备除了具有照相.摄像功能以外,正在扩展新的实用型功能.其中,利用An ...
- android app系统的测试_计算机毕设项目003之基于Android系统的App点餐外送系统
计算机毕设项目之基于Android系统的App点餐外送系统 一. 项目名称 基于Android系统的App点餐外送系统 二. 项目简介 本项目是基于Android系统的手机点餐系统,整个项目分为App ...
- 在android添加数据采集,一种基于Android系统的地理信息数据采集方法与流程
本方法属于采集地理信息数据的发明,是一种基于android操作系统和gis地理信息系统进行户外地理信息数据采集的方法. 背景技术: 众所周知地理信息数据采集在很多行业中都有应用,比如说农业中的土地普查 ...
- 基于Android系统的IPv6网络接入分析
基于Android系统的IPv6网络接入分析 摘 要:本文深入分析了 ...
- android4.4系统 分屏,基于Android系统的宽屏后视镜分屏方法及系统与流程
本发明涉及后视镜应用系统领域,尤其涉及一种基于Android系统的宽屏后视镜分屏方法及系统. 背景技术: 后视镜是驾驶员坐在驾驶室座位上直接获取汽车后方.侧方和下方等外部信息的工具.为了驾驶员操作方便 ...
- 基于android系统的单词学习软件设计与开发【附项目源码+论文说明】分享
基于android系统的单词学习软件设计与开发演示 摘要 随着手机使用的普及,人们获取与保存信息的方式已经发生了激动人心的转变.智能手机正在逐步融入我们的生活,并影响和改变着我们的生活.由于现在各种智 ...
最新文章
- Microsoft patterns practices Enterprise Library released
- 使用外部表关联MySQL数据到Oracle
- Checkstyle 简介 以及各版本下载地址
- Qt Creator管理会议
- 哈老师一到的飞鸽传书
- spring的钩子_模板方法模式——看看 JDK 和 Spring 是如何优雅复用代码的
- Java学习日记之 Java-IO流
- 介绍电子计算机的英文简介,写介绍电脑的英语作文
- 中国高新技术企业名单数据
- ARM920T的MMU与Cache
- 装备状态鉴定文件清单
- qq音乐网络异常获取音乐失败_QQ音乐无法播放_为什么qq音乐总是提示歌曲无效或网络连接失败?...
- 坦克世界没有服务器信号,坦克世界闪击战无法连接服务器怎么办 网络问题
- 业界首款 ACAP 自适应计算加速平台——Xilinx Versal Premium 系列
- 乌隆他尼皇家大学举办第48届泰国大学生运动会新闻发布会
- C语言递归实现四色定理,实现四色定理的C++程序
- SpringBoot之加密
- Codelite安装详解
- 微信小程序项目源码SSM美容预约+后台管理系统|前后分离VUE含论文+PPT+源码
- SFB 项目经验-08-Polycom CX700-4.0.X-能登录SFB 2015-能更新为中文
热门文章
- ERROR: Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'
- 感冒药盒上请看清这6个字,一定要注意! “美”:支气管炎患者慎用
- Windows上哪款卸载软件最值得推荐?
- 通用串行总线控制器显示感叹号
- 系统分析师-软件工程知识点
- Leek' music diary 1
- HTML练习—东风破
- 练习c语言怎么修改字体为宋体,u8g2如何显示中文?如何显示楷体,宋体?
- 转专业计算机的面试自我介绍,转专业面试自我介绍
- 北京大学郭炜慕课习题解