首页 > 移动平台 > 详细

第7章 Android HAL实例解析

时间:2016-06-05 22:45:21      阅读:224      评论:0      收藏:0      [点我收藏+]

第7章 Android HAL实例解析

   通过本章介绍Android的HAL知道HAL是为了一些硬件提供商提出的保护专利的驱动程序而产生的,是为了避开Linux的GPL束缚。HAL主要的存储目录有:1、libhardware_legany  2、libhardware:3、ril   4、msm7k。主要包含以下一些模块:Gps、Vibrator、Wifi、Copybit、Audio、Camera、Lights、Ril、Overlay等。大概了解了Android  HAL。

   第1中方法 直接调用service方法的实现过程

   一般来说,HAL moudle需要涉及的是如下3个关键结构体:

     struct hw_module_t;

     struct hw_module_methods_t;

     struct hw_device_t;

在JNI层文件:mokoid-read-only/frameworks/base/service/jni/com_mokoid_server_LedServer.cpp。

service(属于Framework层) 文件:frameworks/base/service/java/com/mokoid/server/LedService.java。APP测试程序(属于APP层)文件:apps/LedClient/src/com/mokoid/LedClient/LedClient.java。

第2中方法-------经过Manger调用service

   Manger (属于Framework层)

   APP通过这个Manger和service通信。

   文件:mokoid-read-only /framework/base/core/java/mokoid/hardware/LedManager.java。

SystemServer(属于APP层)

文件:mokoid-read-only/apps/LedTest/src/com/mokoid/LedTest/src/com/mokoid/LedTest/LedSystemServer.java.

APP测试程序(属于APP层)

文件:mokoid-read-only/apps/LedTest/src/com/mokoid/LedtTest/LedTest.java.

最后FS-S5PC实验平台LED灯实验,(1)复制实验代码mokoid-read-only到Android源码根路径下:

~/eclair_2.1_farsight /$  cd mokoid-read-only

~/eclair_2.1_farsight /mokoid-read-only$ mm

(2)更新根文件系统:

      ~/eclair_2.1_farsight /$   ./make_fs100_yaffs2_image.sh

(3)编译驱动模块

(4)给开发板上电,启动Android系统,加载驱动模块,创建设备节点。

(5)进入主程序菜单,但是看不到我们添加的两个应用程序,通过执行如下命令:

   Logcat  -s  PackageManager &

(6)进入主程序菜单,可以看到有两个新添加的应用程序(com.mokoid.LedClientLedClienthe和com.mokoid.LedTest.LedTest),执行这两个程序就可以看到控制开发板上LED灯的亮灭。

     通过本章有效掌握了Android HAL,对本章有了更深入的理解。

 

第7章 Android HAL实例解析

原文:http://www.cnblogs.com/fei127/p/5561815.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!