android硬件访问服务分析-vibrator
来源:互联网 发布:淘宝客服用的打字软件 编辑:程序博客网 时间:2024/05/21 19:42
源码:
Vibrator.java (frameworks\base\core\java\android\os)
VibratorService.java (frameworks\base\se rvices\core\java\com\android\server)
SystemServer.java (frameworks\base\services\java\com\android\server)
IVibratorService.aidl(frameworks\base\core\java\android\os)
ServiceManager.java (frameworks\base\core\java\android\os)
SystemVibrator.java(frameworks\base\core\java\android\os)
IVibratorService.java
jni层
Onload.cpp (frameworks\base\services\core\jni)
com_android_server_VibratorService.cpp (frameworks\base\services\core\jni)
hal层
hardware/libhardware/include/hardware/vibrator.c
hardware/libhardware/include/hardware/vibrator.h
JNI 向上提供本地函数, 向下加载HAL文件并调用HAL的函数
HAL 负责访问驱动程序执行硬件操作
SystemServer.java (frameworks\base\services\java\com\android\server)
加载onload.cpp
将VibratorService 添加到serviceManager进程中。
应用app在需要使用的时候。获取vibrator对象来操作振动器。
vibrator.java是抽象类,具体实现在SystemVibrator.java中。
VibratorService.java继承IVibratorService.stub
在此类中调用JNI中的本地方法。
com_android_server_VibratorService.cpp向上提供本地函数, 向下加载HAL文件并调用HAL的函数
中的注册JNI方法在onLoad.cpp中调用。
JNI 怎么使用 HAL
a. hw_get_module 获得一个hw_module_t结构体
b. 调用 module->methods->open(module, device_name, &device)
获得一个hw_device_t结构体
并且把hw_device_t结构体转换为设备自定义的结构体
HAL 怎么写
a. 实现一个名为HMI的hw_module_t结构体
b. 实现一个open函数, 它会根据name返回一个设备自定义的结构体
这个设备自定义的结构体的第1个成员是 hw_device_t结构体
还可以定义设备相关的成员
1、 SystemServer.java ( loadLibrary C library) onload.cpp
2、 JNI_Onload
a) com_android_server_SerialService.cpp
i. register_android_server_SerialService
ii. jniRegisterNativeMethods
b) com_android_server_VibratorService.cpp
i. register_android_server_VibratorService
ii. jniRegisterNativeMethods
c) com_android_server_VibratorService.cpp
i. register_android_server_LedService
ii. jniRegisterNativeMethods
1. hw_get_module
2. hal_led.c
a) led driver
3、 SystemServer.java addService service_manager.c
4、 Android app(java) getService service_manager.c
5、 Android app(java) VibratorService.java
a) com_android_server_VibratorService.cpp
- android硬件访问服务分析-vibrator
- Android硬件访问服务框架分析
- android系统源码分析,硬件访问服务
- Android 硬件访问服务
- Android硬件访问服务
- android硬件访问服务程序框架和简单实例分析
- 开发Android硬件访问服务
- 开发Android硬件访问服务
- Android 编写硬件访问服务
- Android添加硬件访问服务
- Android硬件访问服务框架
- Android硬件访问服务-JNI
- Android硬件访问服务-Service
- Android硬件访问服务-HAL
- Android系统级服务:Vibrator
- Android硬件访问服务学习之(二)Android通过硬件访问服务访问硬件
- Android 系统源码情景分析读书笔记(1)----开发Android 硬件访问服务
- 编写Android应用程序验证硬件访问服务
- 五大存储模型关系模型、键值存储、文档存储、列式存储、图形数
- 【ZJOI2015】bzoj3926 诸神眷顾的幻想乡
- Linux下Tomcat 8 常用命令和优化
- Training and investigating Residual Nets 自己分析
- 【序列】相加
- android硬件访问服务分析-vibrator
- android 之隐藏一批view
- Echarts前后台交互
- 跟着卿学姐写线段树。。。 ( 秋实大哥与花 UESTC
- Paper Reading
- 为何传统的数据库会黯然失色
- jquery-放大镜通用
- 对Java多态的深入理解
- 慎独,是自律的最高层次