LBS数据库的架构是怎样的:第一部分为LBS客户端管理部分,主要提供给客户端应用使用,客户端应用调用此部分提供的功能进行位置定位。LocationManager,提供给客户端应用调用,获取位置等信息,同时当有位置信息变化时通知客户端应用。
一、LBS数据库的架构是怎样的
1)第一部分为LBS客户端管理部分,主要提供给客户端应用使用,客户端应用调用此部分提供的功能进行位置定位。
LocationManager,提供给客户端应用调用,获取位置等信息,同时当有位置信息变化时通知客户端应用。
LocationListener,提供给客户端应用注册使用,每个客户端应用对应一个LocationListener,通过LocationManager注册到系统维护的一个位置服务的链表中,当系统中发现有位置信息变化或者其它信息变化时,会通过它通知客户端应用。
GpsStatus,提供给客户端应用获取GPS定位服务的状态。
GeoCoder,提供给客户端应用调用,获取地理编码信息。
2)第二部分为LBS系统服务部分,开机时启动此服务LocationManagerService,一方面负责处理LBS客户端管理提供的定位等功能需求,另一方面启动提供定位功能的功能模块。
3)第三部分为LBS的定位功能服务部分,完成定位服务模块的定位等动能。
GpsLocationProvider,提供GPS定位服务,通过GPS底层模块获取位置信息及状态变化,通知LBS系统服务来获取位置信息及状态变化等。
LocationProviderProxy,提供网路定位服务,会通过ILocationProvider调用LocationProvider提供的定位功能。LocationProvider只是提供了一个抽象的定位服务模块,并没有真正实现定位功能,需要用户去实现继承LocationProvider来完成此功能。
GeocodeProxy,提供地址编码服务,会通过IGeocodeProvider调用GeocodeProvider提供的正反向地址编码功能。GeocodeProvider只提供了一个抽象的反向地址编码服务模块,根据经纬度来获取地址信息,它并没有真正实现反向地址编码功能,需要用户去实现继承GeocodeProvider来完成此功能。
二、LBS目录结构
(1) frameworks/base/services/java/com.android.server/LocationManager.java
提供的系统定位服务类。
(2) frameworks/base/services/java/com.android.server.location/
提供给系统定位服务使用的相关类。
(3) frameworks/base/location/lib/java/com.android.location.provider/
提供的抽象定位服务模块类以及地址编码服务模块类。供用户继续以实现某种定位功能。
(4) frameworks/base/location/java/android.location
提供给客户端使用的定位服务相关类。
来源:https://blog.csdn.net/yingchunhua365/article/details/14118943
延伸阅读
事务隔离级别是什么
事务具有ACID属性,而事务的隔离级别可以不同程度的解决事务并发时可能产生的问题,可以根据不同业务逻辑需求,来选择不同的事务隔离等级,事务隔离等级越高,越能保证数据的一致性,但就更趋近于串行化,降低并发性能,导致效率变低。
文章标题:LBS数据库的架构是怎样的,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53853