国产在线一区视频-国产在线永久视频-国产在线原创剧情麻豆-国产在线中文字幕-男人的天堂在线播放-男人的天堂在线观看入口

手機
手機 手機資訊 手機應用資訊 手機軟件教程 安卓apk到g-sensor driver的大致流程
安卓
06月 05

安卓apk到g-sensor driver的大致流程

編輯:匿名 來源:互聯網
放大 縮小 打印 郵件 收藏本頁 游吧論壇

Android上層應用apk到G-sensor driver的大致流程:

Android HAL層,即硬件抽象層,是Google響應廠家“希望不公開源碼”的要求推出的新概念

1,源代碼和目標位置

源代碼: /hardware/libhardware目錄,該目錄的目錄結構如下:

/hardware/libhardware/hardware.c編譯成libhardware.so,目標位置為/system/lib目錄

/hardware/libhardware/include/hardware目錄下包含如下頭文件:

hardware.h 通用硬件模塊頭文件

copybit.h copybit模塊頭文件

gralloc.h gralloc模塊頭文件

lights.h 背光模塊頭文件

overlay.h overlay模塊頭文件

qemud.h qemud模塊頭文件

sensors.h 傳感器模塊頭文件

/hardware/libhardware/modules目錄下定義了很多硬件模塊

這些硬件模塊都編譯成xxx.xxx.so,目標位置為/system/lib/hw目錄

2,Android對于Sensor的API定義在 hardware/libhardware/include/hardware/sensor.h中,要求在sensor.so提供以下8個API函數

[控制方面]

int (*open_data_source)(struct sensors_control_device_t *dev);

int (*activate)(struct sensors_control_device_t *dev, int handle, int enabled);

int (*set_delay)(struct sensors_control_device_t *dev, int32_t ms);

int (*wake)(struct sensors_control_device_t *dev);

[數據方面]

int (*data_open)(struct sensors_data_device_t *dev, int fd);

int (*data_close)(struct sensors_data_device_t *dev);

int (*poll)(struct sensors_data_device_t *dev, sensors_data_t* data);

[模塊方面]

int (*get_sensors_list)(struct sensors_module_t* module, struct sensor_t const** list);

在Java層Sensor的狀態控制由SensorService來負責,它的java代碼和JNI代碼分別位于:

frameworks/base/services/java/com/Android/server/SensorService.java

frameworks/base/services/jni/com_Android_server_SensorService.cpp

在Java層Sensor的數據控制由SensorManager來負責,它的java代碼和JNI代碼分別位于:

frameworks/base/core/java/Android/hardware/SensorManager.java

frameworks/base/core/jni/Android_hardware_SensorManager.cpp

Android framework中與sensor通信的是sensorService.java和sensorManager.java。

sensorService.java的具體通信是通過JNI調用sensorService.cpp中的方法實現的。

sensorManager.java的具體通信是通過JNI調用sensorManager.cpp中的方法實現的。

sensorService.cpp和sensorManger.cpp通過hardware.c與sensor.so通信。其中sensorService.cpp實現對sensor的狀態控制,sensorManger.cpp實現對sensor的數據控制。

sensor.so通過ioctl控制sensor driver的狀態,通過打開sensor driver對應的設備文件讀取G-sensor采集的數據。

Android SDK提供了4個類來于sensor通信,分別為 sensor,sensorEvent,sensorEventListener,sensorManager。其中 sensorEventListener用來在sensorManager中注冊需要監聽的sensor類型。

sensorManager.java提供registrater(),unregistrater()接口供sensorEventListener使用。

sensorManager.java不斷輪詢從sensor.so中取數據。取到數據后送給負責監聽此類型sensor的 sensorEventListener.java。sensorEventListener.java通過在sensorManager.java中注冊可以監聽特定類型的sensor傳來的數據。

系統啟動時執行systemProcess,會啟動sensorService.java,在sensorService.java的構造函數中調用JNI方法_sensor_control_init()。

sensorService.cpp中相應的方法Android_int()會被執行。該函數會調用hardware.c中的方法hw_get_module()此函數又通過調用load()函數在system/lib/hw下查找sensor.so

查找時會根據harware.c中定義好的sensor.*.so的擴展名的順序查找,找到第一個匹配的時候即停止,并將該sensor.so中定義好的一個全局變量HAL_MODULE_INFO_SYM帶回。該變量包含的一個

重要信息是它的一個成員結構變量中包含的一個函數指針open,該指針所指函數會對一個device結構變量賦值,從而帶出sensorService.cpp和sensorManager.cpp與sensor通信所需要的全部信息。

device結構變量有兩種變體分別供sensorService.cpp和sensorManaer.cpp使用。其中主要是一些函數指針指向與sensor通信的函數。

sensorService.cpp和sensorManager.cpp在得到HAL_MODULE_INFO_SYM結構后都會調用 sensors.h的inline函數open()通過HAL_MODULE_INFO_SYM的open函數指針將所需的device信息取回。

系統在啟動activityManager.java時,它會啟動sensorManager.java,它也會調用hardware.c中的方法hw_get_module()帶回HAL_MODULE_INFO_SYM。

打印 郵件 收藏本頁 幫肋
推薦閱讀
相關閱讀
91麻豆国产| 精品美女| 色综合久久天天综合观看| 亚洲精品影院| 美国一区二区三区| 夜夜操网| 久草免费资源| 精品视频在线观看免费 | 天天色成人| 亚洲 激情| 亚州视频一区二区| 久久精品免视看国产成人2021| 九九久久国产精品| 在线观看导航| 天天色色网| 色综合久久天天综线观看| 久久精品免视看国产明星| 精品久久久久久影院免费| 国产伦精品一区二区三区在线观看 | 成人在激情在线视频| 91麻豆精品国产综合久久久| 日韩在线观看免费完整版视频| 成人影院久久久久久影院| 韩国毛片免费大片| 毛片高清| 亚洲爆爽| 一级毛片视频在线观看| 国产不卡在线看| 精品久久久久久综合网| 深夜做爰性大片中文| 精品在线免费播放| 午夜欧美福利| 国产91精品一区| 韩国毛片| 久久成人性色生活片| 你懂的在线观看视频| 一级片片| 国产成人精品综合在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩一级黄色大片| 日韩在线观看视频黄| 亚飞与亚基在线观看| 精品在线视频播放| 日日夜夜婷婷| 日本免费看视频| 欧美a级成人淫片免费看| 成人a大片在线观看| 国产福利免费视频| 精品国产一区二区三区久久久蜜臀| 九九九在线视频| 久久精品免视看国产成人2021| 香蕉视频一级| 精品国产一级毛片| 国产伦久视频免费观看 视频| 亚洲精品久久久中文字| 九九干| 久久精品店| 日韩综合| 欧美激情一区二区三区视频 | 尤物视频网站在线观看| 欧美另类videosbestsex视频| 毛片高清| 日韩一级黄色大片| 999久久狠狠免费精品| 国产高清在线精品一区二区| 亚洲第一页色| 高清一级片| 日韩免费片| 青青久久精品| 国产麻豆精品| 午夜激情视频在线播放| 黄视频网站在线观看| 亚洲 激情| 一级片片| 日韩中文字幕一区二区不卡| 欧美激情一区二区三区在线| 国产欧美精品午夜在线播放| 亚洲 激情| 你懂的日韩| 成人a大片在线观看| 精品国产一区二区三区久| 麻豆系列 在线视频| 九九九国产| 色综合久久手机在线| 国产91视频网| 国产原创中文字幕| 久久久成人网| 国产91精品一区| 日韩一级黄色大片| 黄视频网站免费看| 午夜在线观看视频免费 成人| 午夜精品国产自在现线拍| 麻豆午夜视频| 国产麻豆精品视频| 国产视频久久久久| 国产一区二区精品久久| 国产91素人搭讪系列天堂| 亚洲爆爽| 午夜在线亚洲| 国产a网| 天堂网中文在线| 国产成人精品影视| 九九久久国产精品大片| 九九精品久久久久久久久| 黄视频网站在线免费观看| 亚洲wwwwww| 999精品在线| 国产精品自拍亚洲| 美女免费精品高清毛片在线视| 国产亚洲精品aaa大片| 青青久久精品国产免费看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 99色视频在线观看| 国产不卡在线观看视频| 91麻豆精品国产片在线观看| 欧美1区| 麻豆系列 在线视频| 欧美国产日韩精品| 欧美激情中文字幕一区二区| 欧美国产日韩精品| 一本伊大人香蕉高清在线观看| 天天做人人爱夜夜爽2020| 一级女性全黄生活片免费 | 青青久久精品国产免费看| 日本乱中文字幕系列| 久久福利影视| 色综合久久天天综合观看| 国产视频在线免费观看| 韩国毛片 免费| 成人高清免费| 黄视频网站在线观看| 国产一区二区精品久久91| 欧美另类videosbestsex| 精品毛片视频| 久久精品店| a级黄色毛片免费播放视频| 国产一区二区精品| 99久久网站| 一a一级片| 亚洲第一页乱| 99久久精品国产高清一区二区| 999精品影视在线观看| 日韩免费在线| 国产一级生活片| 亚洲精品影院久久久久久| 99久久精品国产国产毛片 | 亚洲天堂一区二区三区四区| 欧美1卡一卡二卡三新区| 精品国产一区二区三区免费| 国产一区二区精品| 午夜欧美福利| 免费一级生活片| 一级毛片看真人在线视频| 欧美大片一区| 国产网站免费在线观看| 欧美激情在线精品video| 日韩av成人| 99久久精品国产片| 国产一级生活片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美一区二区三区性| 久久精品免视看国产成人2021| 欧美国产日韩在线| 欧美大片a一级毛片视频| 天天做人人爱夜夜爽2020毛片| 久久99爰这里有精品国产| 一级女性全黄生活片免费| 99热精品在线| 久久国产精品自由自在| 黄色免费三级| 日本伦理片网站| 一级女性大黄生活片免费| 午夜久久网| 国产网站麻豆精品视频| 国产伦精品一区二区三区无广告| 日韩免费在线| 韩国三级视频网站| 一级片片| 久久国产影院| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚洲不卡一区二区三区在线| 99热精品在线| 精品视频一区二区三区免费| 亚洲第一视频在线播放| 久久国产精品自线拍免费| 九九九国产| 精品视频免费看| 国产一区二区高清视频| 一级女性全黄生活片免费 | 精品国产亚洲人成在线| 九九九国产| 国产麻豆精品高清在线播放| 午夜在线亚洲| 深夜做爰性大片中文| 日韩欧美一及在线播放| 97视频免费在线观看| 99色视频在线| 久久精品免视看国产成人2021| 欧美大片aaaa一级毛片|