framework-GPS

参考文章

添加链接描述

getSystemService

Android Framework层的定位通过在LocationManagerService中加载各种定位模块(Provider),从而支持厂商扩展实现各种自定义定位模块(Provider)。
在这里插入图片描述

  • SystemServer 负责启动初始化 LocationManagerService添加到系统服务中
  • LocationManagerService 借助AIDL提供给应用层调用各个定位逻辑的管理者,管理着各个的privoder
  • LocationManager 暴露给app层调用AIDL接调用LocationManagerService
  • GnssLocationProvider 主要的GPS定位逻辑,调用HAL层GPS模块进行定位
android.harddware.gnss@1.0-service
android.hardware.gnss@1.0
hardware/interfaces/gnss/1.0/default/Android.mk
hardware/interfaces/gnss/1.0/default/Android.bp
hardware/interfaces/gnss/1.0/default/service.cpp

位置信息提供者

frameworks/base/services/core/java/com/android/server/LocationManagerService.java  loadProvidersLocked
LocationManagerService.initializeProvidersLocked()

LocationManager.getAllProviders()讲解

frameworks/base/services/Android.mk 【services.jar】
frameworks/base/services/core/Android.mk 【services.core.jar】
frameworks/base/location/Android.mk
frameworks/base/services/core/java/com/android/server/LocationManagerService.java

GPS定位讲解

添加链接描述

frameworks/base/services/core/java/com/android/server/LocationManagerService.java
frameworks/base/services/core/java/com/android/server/location/GnssLocationProvider.java
frameworks/base/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
hardware/interfaces/gnss/1.0/default/Gnss.cpp 

LocationManager.requestLocationUpdates()讲解

添加链接描述

 requestLocationUpdates   ->   requestLocationUpdatesLocked
frameworks/base/location/java/android/location/LocationManager.java 
frameworks/base/services/core/java/com/android/server/location/GnssLocationProvider.java
frameworks/base/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
frameworks/base/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
hardware/interfaces/gnss/1.0/IGnss.hal
hardware/interfaces/gnss/1.0/default/Gnss.cpp
hardware/interfaces/gnss/1.0/default/Gnss.h
hardware/libhardware/include/hardware/gps.h
hardware/libhardware/include/hardware/hardware.h
android.hardware.gnss@1.0.so
android.hardware.gnss@1.0-impl.so

android.hardware.gnss@1.0-service
android.hardware.gnss@1.0-service.rc
#define HAL_MODULE_INFO_SYM         HMI
#define HAL_MODULE_INFO_SYM_AS_STR  "HMI"

gps.default.so

vendor/rockchip/common/my_gps/Android.mk
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值