深入浅出 - Android系统移植与平台开发(十二) - Sensor HAL框架分析之二

本文深入探讨了Android系统中Sensor HAL框架的实现,从Sensor应用程序框架开始,阐述了如何通过SensorManager获取和操作传感器服务。分析了getSystemService(SENSOR_SERVICE)的流程,解释了Manager机制以及其在隐藏服务细节、简化应用开发中的作用。
摘要由CSDN通过智能技术生成

1.1  Sensor应用程序框架

这部分对于上层写应用的朋友来比较熟悉,我们通过一个简单的应用来分析框架层和底层的实现。

通常编写一个传感器的应用程序有以下步骤:

l  通过调用 Context.getSystemService(SENSOR_SERVICE)获得传感器服务,实现返回的是封装了SensorService的SensorManager对象

l  调用SensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION)来获得指定类型的传感器对象,方便获得传感器的数据

l  通过SensorManager.registerListener注册SensorEventListener监听器,监听获得的传感器对象,当传感器数据提交上来时,能被应用程序得到

l  实现监听器里传感器上报数据的具体操作

由编写应用程序的步骤可知,所有程序的操作都和SensorManager有关。在开始分析具体实现之前我们先来谈谈SensorManager概念。

1)    Android Manager机制

Manager中文直译是处理者,经理,管理人,总而言之,管事的人。用我的话说就是:有权有钱,屁事不干,指点江山,NB朝天。在Android的服务框架里Manager被安排作为经理人、领导,它负责自己管辖区的所有操作。类似于公司里的行政部门,它是一个纯粹非盈利服务部门,行政部门经理自己从来不干活,天天指挥别人干这干那,如果其它部门要想使用行政部门的服务,先要向行政经理提申请,申请通过了,安排具体人员为你服务。我们分析的是Sensor服务,Sensor服务用户程序不能直接访问,要通过SensorManager来访问,也就是说SensorManager是SensorService提供服务接口的封装。

通常在Android的Manager里都会维护对其管理Service的引用,用户程序提出Service操作申请,Manager将操作申请交由其管理的Service处理,然后将处理结果再交给用户程序或回调用户注册的监听接口。

 

总结:

1)      Manager是应用程序直接面对的接口

2)      Manager里维护对应的Service

3)      应用程序不能直接访问Service

为什么要这么设计??

使用Manager机制的好处是显而易见的:

l  Service是服务,服务是所有应用共享,不能属于某一个具体的进程,即:Android程序。

l  基于第一点,Android应用与Service在不同进程,它们之间必然要进行通信,要使用IPC,即:进程间通信,而框架的作用是让应用程序快速开发提供API&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值