第7章 Android HAL实例解析

第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,对本章有了更深入的理解。

时间: 2024-08-06 03:45:03

第7章 Android HAL实例解析的相关文章

Android HAL实例解析

一.概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法. 二.HAL介绍 现有HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图. Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚.思路是把控制硬件的动作都放到了Android HAL中,而linux driver仅仅完成一些简单的数据交互作

【转】Android HAL实例解析

原文网址:http://www.embedu.org/Column/Column339.htm 作者:刘老师,华清远见嵌入式学院讲师. 一.概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法. 二.HAL介绍 现有HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图. Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避

基于Android2.3.5系统:JNI与HAL实例解析[一]

*************************************************************************************************************************** 作者:EasyWave                                                                                                           时间:2015.

基于Android2.3.5系统:JNI与HAL实例解析[二]

*************************************************************************************************************************** 作者:EasyWave                                                                                                           时间:2015.

Android AIDL实例解析

AIDL这项技术在我们的开发中一般来说并不是很常用,虽然自己也使用新浪微博的SSO登录,其原理就是使用AIDL,但是自己一直没有动手完整的写过AIDL的例子,说来丢人呐,所以就有了这篇简单的文章.        AIDL(AndRoid接口描述语言)是一种借口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的. 如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成 AIDL可识别的参数(可能是多个参数),

第1章 Android系统的编译和移植实例:

第一章 本章Android系统的编译和移植实例,其中移植涉及的主要内容有下载Android Linux内核,安装交叉工具链,移植Android Linux内核支持EZ6410平台,安装Android SDK,获得Android根文件系统,设置系统环境,完成Android正常启动.安装交叉工具链在ldd6410-read-only目录下修改vim.cross_compile内容为:/usr/local/arm/arm-none-Linux-gnueabi/bin/arm-none-linux-gu

第一章 Android系统的编译和移植实例

第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入式Linux非常相似. 首先要准备一套可以正常运行Linux系统的一套开发版,需要在其移植Android系统,并能够正常运行. 移植的主要过程为: 1.下载Android Linux 内核 2.安装交叉工具链 3.移植Android Linux 内核支持的平台 4.安装Android SDK 5.获

Android开发之UI更新交互机制与实例解析

android开发过程中,经常需要更新UI的状态和文案等.这是就需要对UI进行 更新.在android中更新UI一般有三种方法,handler机制.RunOnUiThread方法以及AsyncTask异步类方法等 本文下面就这三种方法进行了演示和代码实现. a.Handler机制通过使用消息机制来实现 b.RunOnUiThread方法是通过运行UI线程来达到更新UI的目的 c.AsyncTask是异步类,通过异步更新来更新UI 效果图如下:           (1)Java功能实现代码如下:

Android开发之IPC进程间通信-AIDL介绍及实例解析

一.IPC进程间通信 IPC是进程间通信方法的统称,Linux IPC包括以下方法,Android的进程间通信主要采用是哪些方法呢? 1. 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信:   2. 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身:linux除了支持Unix早期