Android Sensor代码流程简介

本文主要介绍了Android 5.1.1中Sensor的Framework、JNI、HAL及Lib库的设计与实现,以Qualcomm DragonBoard 410c为例,详细解析了SensorManager、SensorEventQueue、JNI接口以及HAL层的SensorServer和SensorDevice的工作流程。
摘要由CSDN通过智能技术生成

                                                                                                     Android  Sensor 代码流程简介

 

如今的传感器被越来越多用到设备开发当中,今天我们就来讲解下Qualcomm DragonBoard 410c的sensor架构,本篇主要基于Android5.1.1 来介绍sensor的Framework ,JNI,HAL以及lib,基于mma7660.c驱动的源码分析。


一:Framework分析

 我们先来分析SystemSensorManager源码。

1.SystemSensorManager构造函数

 

    public SystemSensorManager(Context context,Looper mainLooper) {

        mMainLooper = mainLooper;

        mTargetSdkLevel =context.getApplicationInfo().targetSdkVersion;

        synchronized(sSensorModuleLock) {

            if (!sSensorModuleInitialized) {

                sSensorModuleInitialized =true;

 

                nativeClassInit();

 

                // initialize the sensor list

                final ArrayList<Sensor>fullList = sFullSensorsList;

                int i = 0;

                do {

                    Sensor sensor = newSensor();

                    i = nativeGetNextSensor(sensor,i);

                    if (i>=0) {

                        //Log.d(TAG,"found sensor: " + sensor.getName() +

                        //        ", handle=" +sensor.getHandle());

                        fullList.add(sensor);

                        sHandleToSensor.append(sensor.getHandle(),sensor);

                    }

                } while (i>0);

            }

        }

    }

构造函数接收Context和looper参数。理解这两个参数很重要,后面在讲到传感器数据读取时就是利用主线程的looper来读取数据(这和Android5.0之前创建线程读取数据不同)。

构造函数先保留Con

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值