Android HAL 开发 (1)
?
Android HAL 开发 (1) ?
Mokiod工程代码树如下所示:
/*?提供给service可用的硬件操作接口?*/??
- ????dev->set_on?=?led_on;? ????dev->set_off?=?led_off;??????*device?=?&dev->common;??success:?
- ????return?0;?}?
- ?static?struct?hw_module_methods_t?led_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,?
- ????}?????/*?supporting?APIs?go?here?*/?
- };?
以上代码最后会被编译成动态链接库,比如libled.so放到/system/libs/hw/, 当service调用hw_get_module(hardware/libhardware/hardware.c)时候,会在/system/libs/hw/里面寻找对应的动态链接库,然后提供给service对应的操作接口。
?
本文出自 “Mobile and Linux Deve..” 博客,请务必保留此出处http://buaadallas.blog.51cto.com/399160/371545