Android HAL基础
来源:互联网 发布:dns域名污染 编辑:程序博客网 时间:2024/06/06 00:20
Java代码:
|-- apps -- 测试应用程序
| |-- LedClient -- 直接调用service控制硬件
| | |-- AndroidManifest.xml
| | `-- src
| | `-- com
| | `-- mokoid
| | `-- LedClient
| | `-- LedClient.java
| `-- LedTest -- 通过manager来控制硬件
| |-- AndroidManifest.xml
| `-- src
| `-- com
| `-- mokoid
| `-- LedTest
| |-- LedSystemServer.java
| `-- LedTest.java
|-- frameworks -- 框架代码
| `-- base
| |-- core
| | `-- java
| | `-- mokoid
| | `-- hardware
| | |-- ILedService.aidl -- Android Interface Definition Language代码,提供LedService的接口
| | `-- LedManager.java -- LedManager实现代码
| `-- service
| |-- com.mokoid.server.xml
| |-- java
| | `-- com
| | `-- mokoid
| | `-- server
| | `-- LedService.java -- LedService的java实现代码
| `-- jni
| `-- com_mokoid_server_LedService.cpp -- LedService的jni实现代码
|-- hardware
`-- modules
|-- include
| `-- mokoid
| `-- led.h
`-- led
`-- led.c -- led实际控制硬件的代码
Java代码:
struct led_module_t {
struct hw_module_t common;
};
struct led_control_device_t {
struct hw_device_t common;
int fd;
int (*set_on)(struct led_control_device_t *dev, int32_t led);
int (*set_off)(struct led_control_device_t *dev, int32_tled);
};
Java代码:
int led_on(struct led_control_device_t *dev, int32_t led)
{
LOGI("LED Stub: set %d on.", led);
return 0;
}
int led_off(struct led_control_device_t *dev, int32_t led)
{
LOGI("LED Stub: set %d off.", led);
return 0;
}
static int led_device_open(const struct hw_module_t* module, constchar* name,
struct hw_device_t** device)
{
struct led_control_device_t *dev;
dev = (struct led_control_device_t*)malloc(sizeof(*dev));
memset(dev, 0, sizeof(*dev));
...
dev->set_on = led_on;
dev->set_off = led_off;
*device = &dev->common;
success:
return 0;
}
static struct hw_module_methods_tled_module_methods = {
open: led_device_open
};
const struct led_module_t HAL_MODULE_INFO_SYM ={
common: {
tag: HARDWARE_MODULE_TAG,
version_major: 1,
version_minor: 0,
id: LED_HARDWARE_MODULE_ID,
name: "Sample LED Stub",
author: "The Mokoid Open Source Project",
methods: &led_module_methods,
}
};
- Android HAL基础
- Android HAL基础
- Android HAL实例解析
- Android HAL实例解析
- Android HAL层基础
- Android HAL基础
- Android HAL基础
- Android HAL基础
- android HAL层开发基础
- Android平台开发-Android HAL deve…
- Android平台开发-Android HAL deve…
- HAL层开发基础 && Android HAL module执行过程分析
- android系统开发--HAL层开发基础
- android系统开发--HAL层开发基础
- android系统开发--HAL层开发基础
- android系统开发-HAL层开发基础
- <4>Android HAL层 基础及调用
- [原创]Android HAL实例学习-Jollen…
- 第一章 Android系统介绍
- Android电源管理(zz)
- Android HAL基础
- Android电源管理(zz)
- Android平台开发-Android HAL deve…
- Android HAL基础
- 2011年06月21日
- Android平台开发-Android HAL deve…
- Android HAL实例解析
- 2011年06月21日
- Android HAL实例解析
- 在驱动模块初始化函数中实现设备节…
- 在驱动模块初始化函数中实现设备节…
- synchronized(this)的意思是: