Android GPS学习笔记(1)—系统架构
来源:互联网 发布:恐怖小说 知乎 编辑:程序博客网 时间:2024/05/18 00:42
Android GPS架构如下图所示,整个定位服务的系统架构共分为六层。
(1)最上面是应用层,可安装基于定位服务的应用,这些应用可以发起定位请求,比如百度地图等。
(2)第二层是框架层(framework层),这一层包含了被APP调用的API以及系统服务的实现,主要由 Java 语言来实现。
a. Java语言实现的API,即android.location包中的内容,主要用来被APP调用
目录:frameworks/base/location/java/android/location
b.系统服务实现
目录1:frameworks/base/location/java/com/android/internal/location
这个目录是Framework对Location服务的内部实现
目录2:framework\base\services\core\java\com\android\server
这个目录中的LocationManagerService.java是Location服务对内部实现的一种封装
(3)第三层是JNI层
JNI层只有一个文件,起到承上启下的作用。上层承接Framework,下层调用HAL层具体硬件抽象实现。
目录:
frameworks/base/services/core/jni/com_android_server_location_GpsLocationProvider.cpp
(4)第四层是共享库层(HAL层),本层由 C 以及 C++ 语言实现, 框架层与共享库层使用 JNI进行衔接。HAL层相当于一个linux应用程序接口,通过open,close等操作,操作硬件设备。
目录:
hardware/qcom/gps
hardware/libhardware/include/hardware/gps.h
(5)第五层是 Linux内核层,整个Android系统都是以Linux内核为基础的。
(6)最底层是GPS硬件设备层
从上至下它们是逐层依赖的关系,每层依赖下面一层完成其所需提供的服务。
【概要定位流程】:由应用层APP发起定位请求,调用Framework层提供的API接口,此时会去启动一个定位服务的线程,通过LocationManagerService定位服务,会调用到对应的Location provider,然后通过native方法调用到JNI中,JNI获得GpsInterface并传递给接口一个回调函数的实现。GpsInterface是HAL层最主要的实现。
原文:http://blog.csdn.net/dreamback1987/article/details/46558729
- Android GPS学习笔记—系统架构
- Android GPS学习笔记(1)—系统架构
- Android GPS 架构学习笔记
- Android学习笔记1-系统架构
- 学习笔记:Android系统架构
- Android系统架构学习笔记
- Android GPS学习笔记—HAL实现
- Android GPS学习笔记—LMS初始化
- Android GPS学习笔记—GpsLP初始化
- Android学习笔记——Android系统架构
- Android群英传学习笔记(1)--Android体系与系统架构
- 《Android群英传》学习笔记 ---Android系统架构
- Android系统GPS HAL层移植笔记
- Android系统架构(简述)——《深入理解(I)》学习笔记1
- android学习笔记——实现GPS(转载)
- Android GPS学习笔记—重要结构体及接口
- Android GPS学习笔记—JNI层实现
- Android GPS学习笔记(3)—JNI层实现
- Java中的private、protected、public和default的区别
- Android Studio + Genymotion安卓模拟器打造高效安卓开发环境
- lintcode 木材加工
- startActivityForResult和setResult
- Spring配合接口实现解耦原理
- Android GPS学习笔记(1)—系统架构
- no projects are available for deployment to this server
- iOS第三方框架---AFNetWorking详解
- 十二、中国股市的特点
- OC基础知识 -- 常见类的一些方法
- overflow属性(实现超出边框点的部分隐藏)
- ERROR与EXCEPTION的区别
- Android GPS学习笔记(3)—JNI层实现
- git内容整理--初识版本控制工具