mokid 工程代码下载与结构分析与两种机理的简单解析
2011-11-15 15:54
501 查看
下面结合实例来分析HAL编程方法。
四、mokid 工程代码下载与结构分析
1、mokid项目概述
modkoid工程提供了一个LedTest示例程序,对于理解android层次结构、Hal编程方法都非常有意义。
2、下载方法
#svn checkout http://mokoid.googlecode.com/svn/trunk/mokoid-read-only
3、结构分析
|-- Android.mk
|-- apps //两种应用测试方法
| |-- Android.mk
| |-- LedClient //直接调用service来调用jni
| | |-- AndroidManifest.xml
| | |-- Android.mk
| | `-- src
| | `-- com
| | `-- mokoid
| | `-- LedClient
| | `-- LedClient.java //第1种方式应用程序实现代码
| `-- LedTest //通过manager来调用jni
| |-- AndroidManifest.xml
| |-- Android.mk
| `-- src
| `-- com
| `-- mokoid
| `-- LedTest
| |-- LedSystemServer.java //开启了一个后台service,下文会有解释
| `-- LedTest.java //第2种方式应用程序实现代码
|-- dma6410xp //这个目录可以不要
| |-- AndroidBoard.mk
| |-- AndroidProducts.mk
| |-- BoardConfig.mk
| |-- dma6410xp.mk
| |-- init.dma6410xp.rc
| |-- init.goldfish.sh
| `-- init.rc
|-- frameworks //框架代码
| |-- Android.mk
| `-- base
| |-- Android.mk
| |-- core
| | `-- java
| |
`-- mokoid
| | `-- hardware
| | |-- ILedService.aidl
| | `-- LedManager.java //实现了Manager,给第2种方法用
| `-- service
| |-- Android.mk
| |-- com.mokoid.server.xml
| |-- java
| | `-- com
| | `-- mokoid
| | `-- server
| | `-- LedService.java //Framework service代码
| `-- jni
| |-- Android.mk
| `-- com_mokoid_server_LedService.cpp //jni代码
|-- hardware
| |-- Android.mk
| |-- libled
| | |-- Android.mk
| | `-- libled.c
| `-- modules
| |-- Android.mk
| |-- include
| | `-- mokoid
| | `-- led.h
| `-- led
| |-- Android.mk
| `-- led.c //led stub 硬件控制代码
`-- README.txt
Android的HAL的实现需要通过JNI(Java Native Interface),JNI简单来说就是java程序可以调用C/C++写的动态链接库,这样的话,HAL可以使用C/C++语言编写,效率更高。在Android下访问HAL大致有以下两种方式:
(1)Android的app可以直接通过service调用.so格式的jni
(2)经过Manager调用service
上面两种方法应该说是各有优缺点,第一种方法简单高效,但不正规。第二种方法实现起来比较复杂,但更符合目前的Android框架。第二种方法中,LegManager
和LedService(java)在两个进程中,需要通过进程通讯的方式来通讯。
mokoid工程中实现了上述两种方法。下面将详细介绍这两种方法的实现原理。
相关文章推荐
- netlink监听网络变化代码(转载)+流程分析(原创+转载)+数据结构以及相关宏的解析(原创)
- App工程结构搭建:几种常见Android代码架构分析
- App工程结构搭建:几种常见Android代码架构分析
- App工程结构搭建:几种常见Android代码架构分析
- jquery源码解析:代码结构分析
- wojilu系统的ORM代码解析-[源代码结构分析,用特性和反射来感知属性-特性介绍篇]
- App工程结构搭建:几种常见Android代码架构分析
- App工程结构搭建:几种常见Android代码架构分析
- JavaWeb工程下,基于代理模式的两种层次结构比较分析
- App工程结构搭建:几种常见Android代码架构分析
- wojilu系统的ORM代码解析-[源代码结构分析,ObjectBase基类分析]
- App工程结构搭建:几种常见Android代码架构分析
- App工程结构搭建:几种常见Android代码架构分析
- IDA简单Switch-Case结构的汇编代码分析
- App工程结构搭建:几种常见Android代码架构分析
- Tika解析非结构文档处理过程的简单分析
- FFMPEG-0.11.1分析之ffmpeg结构(简单涉及)与代码流程(主要涉及前部分的准备工作)
- App工程结构搭建:几种常见Android代码架构分析
- App工程结构搭建:几种常见Android代码架构分析
- App工程结构搭建:几种常见Android代码架构分析