新建
上传
首页
助手
最?/div>
资料?/div>
工具

  

  

  

 

在上两篇文章中,

我们介绍了如何为

Android

系统的硬件编写驱动程序,

包括

如何?/p>

Linux

内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实?/p>

这两者的目的是为了向更上一层提供硬件访问接口,即为

Android

?/p>

Application 

Frameworks

层提供硬件服务。我们知道,

Android

系统的应用程序是?/p>

Java

语言

编写的,而硬件驱动程序是?/p>

C

语言来实现的,那么,

Java

接口如何去访?/p>

C

?/p>

口呢?众所周知?/p>

Java

提供?/p>

JNI

方法调用,同样,?/p>

Android

系统中,

Java

?/p>

用程序通过

JNI

来调用硬件抽象层接口。在这一篇文章中,我们将介绍如何?/p>

Android

硬件抽象层接口编?/p>

JNI

方法?/p>

以便使得上层?/p>

Java

应用程序能够使用?/p>

层提供的硬件服务?/p>

 

   

  

 

一

. 

参照

?/p>

Ubuntu

上为

Android

增加硬件抽象?/p>

?/p>

HAL

?/p>

模块访问

Linux

内核

驱动程序

一文,

准备好硬件抽象层模块?/p>

确保

Android

系统镜像文件

system.img

?/p>

经包?/p>

hello.default

模块?/p>

 

   

  

 

?/p>

. 

进入?/p>

frameworks/base/services/jni

目录,新?/p>

com_android_server_HelloService.cpp

文件?/p>

 

   

  

 

USER-NAME@MACHINE-NAME:~/Android$ cd frameworks/base/servic

es/jni

 

   

  

 USER-NAME@MACHINE-NAME:~/Android/frameworks/base/services/jn

i$ vi com_android_server_HelloService.cpp

 

   

  

 

?/p>

com_android_server_HelloService.cpp

文件中,实现

JNI

方法。注意文?/p>

的命令方法,

com_android_server

前缀表示的是包名,表示硬件服?/p>

HelloService

是放?/p>

frameworks/base/services/java

目录下的

com/android/server

目录的,即存

在一个命令为

com.android.server.HelloService

的类。这里,我们暂时略去

HelloService

类的描述,在下一篇文章中,我们将回到

HelloService

类来。简单地

说,

HelloService

是一个提?/p>

Java

接口的硬件访问服务类?/p>

 

   

  

 

首先是包含相应的头文件:

 

view plain

 

1.

 

#define LOG_TAG "HelloService"

  

 

2.

 

#include "jni.h"

  

 

3.

 

#include "JNIHelp.h"

  

 

4.

 

#include "android_runtime/AndroidRuntime.h"

  

 

5.

 

#include <utils/misc.h>

  

 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

  

  

  

 

在上两篇文章中,

我们介绍了如何为

Android

系统的硬件编写驱动程序,

包括

如何?/p>

Linux

内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实?/p>

这两者的目的是为了向更上一层提供硬件访问接口,即为

Android

?/p>

Application 

Frameworks

层提供硬件服务。我们知道,

Android

系统的应用程序是?/p>

Java

语言

编写的,而硬件驱动程序是?/p>

C

语言来实现的,那么,

Java

接口如何去访?/p>

C

?/p>

口呢?众所周知?/p>

Java

提供?/p>

JNI

方法调用,同样,?/p>

Android

系统中,

Java

?/p>

用程序通过

JNI

来调用硬件抽象层接口。在这一篇文章中,我们将介绍如何?/p>

Android

硬件抽象层接口编?/p>

JNI

方法?/p>

以便使得上层?/p>

Java

应用程序能够使用?/p>

层提供的硬件服务?/p>

 

   

  

 

一

. 

参照

?/p>

Ubuntu

上为

Android

增加硬件抽象?/p>

?/p>

HAL

?/p>

模块访问

Linux

内核

驱动程序

一文,

准备好硬件抽象层模块?/p>

确保

Android

系统镜像文件

system.img

?/p>

经包?/p>

hello.default

模块?/p>

 

   

  

 

?/p>

. 

进入?/p>

frameworks/base/services/jni

目录,新?/p>

com_android_server_HelloService.cpp

文件?/p>

 

   

  

 

USER-NAME@MACHINE-NAME:~/Android$ cd frameworks/base/servic

es/jni

 

   

  

 USER-NAME@MACHINE-NAME:~/Android/frameworks/base/services/jn

i$ vi com_android_server_HelloService.cpp

 

   

  

 

?/p>

com_android_server_HelloService.cpp

文件中,实现

JNI

方法。注意文?/p>

的命令方法,

com_android_server

前缀表示的是包名,表示硬件服?/p>

HelloService

是放?/p>

frameworks/base/services/java

目录下的

com/android/server

目录的,即存

在一个命令为

com.android.server.HelloService

的类。这里,我们暂时略去

HelloService

类的描述,在下一篇文章中,我们将回到

HelloService

类来。简单地

说,

HelloService

是一个提?/p>

Java

接口的硬件访问服务类?/p>

 

   

  

 

首先是包含相应的头文件:

 

view plain

 

1.

 

#define LOG_TAG "HelloService"

  

 

2.

 

#include "jni.h"

  

 

3.

 

#include "JNIHelp.h"

  

 

4.

 

#include "android_runtime/AndroidRuntime.h"

  

 

5.

 

#include <utils/misc.h>

  

 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

  

  

  

 

在上两篇文章中,

我们介绍了如何为

Android

系统的硬件编写驱动程序,

包括

如何?/p>

Linux

内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实?/p>

这两者的目的是为了向更上一层提供硬件访问接口,即为

Android

?/p>

Application 

Frameworks

层提供硬件服务。我们知道,

Android

系统的应用程序是?/p>

Java

语言

编写的,而硬件驱动程序是?/p>

C

语言来实现的,那么,

Java

接口如何去访?/p>

C

?/p>

口呢?众所周知?/p>

Java

提供?/p>

JNI

方法调用,同样,?/p>

Android

系统中,

Java

?/p>

用程序通过

JNI

来调用硬件抽象层接口。在这一篇文章中,我们将介绍如何?/p>

Android

硬件抽象层接口编?/p>

JNI

方法?/p>

以便使得上层?/p>

Java

应用程序能够使用?/p>

层提供的硬件服务?/p>

 

   

  

 

一

. 

参照

?/p>

Ubuntu

上为

Android

增加硬件抽象?/p>

?/p>

HAL

?/p>

模块访问

Linux

内核

驱动程序

一文,

准备好硬件抽象层模块?/p>

确保

Android

系统镜像文件

system.img

?/p>

经包?/p>

hello.default

模块?/p>

 

   

  

 

?/p>

. 

进入?/p>

frameworks/base/services/jni

目录,新?/p>

com_android_server_HelloService.cpp

文件?/p>

 

   

  

 

USER-NAME@MACHINE-NAME:~/Android$ cd frameworks/base/servic

es/jni

 

   

  

 USER-NAME@MACHINE-NAME:~/Android/frameworks/base/services/jn

i$ vi com_android_server_HelloService.cpp

 

   

  

 

?/p>

com_android_server_HelloService.cpp

文件中,实现

JNI

方法。注意文?/p>

的命令方法,

com_android_server

前缀表示的是包名,表示硬件服?/p>

HelloService

是放?/p>

frameworks/base/services/java

目录下的

com/android/server

目录的,即存

在一个命令为

com.android.server.HelloService

的类。这里,我们暂时略去

HelloService

类的描述,在下一篇文章中,我们将回到

HelloService

类来。简单地

说,

HelloService

是一个提?/p>

Java

接口的硬件访问服务类?/p>

 

   

  

 

首先是包含相应的头文件:

 

view plain

 

1.

 

#define LOG_TAG "HelloService"

  

 

2.

 

#include "jni.h"

  

 

3.

 

#include "JNIHelp.h"

  

 

4.

 

#include "android_runtime/AndroidRuntime.h"

  

 

5.

 

#include <utils/misc.h>

  

 

Ͼλ">
Ͼλ
Ŀ

在Ubuntu为Android硬件抽象?HAL)模块编写JNI方法提供Java访问硬件服务接口 - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

  

  

  

 

在上两篇文章中,

我们介绍了如何为

Android

系统的硬件编写驱动程序,

包括

如何?/p>

Linux

内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实?/p>

这两者的目的是为了向更上一层提供硬件访问接口,即为

Android

?/p>

Application 

Frameworks

层提供硬件服务。我们知道,

Android

系统的应用程序是?/p>

Java

语言

编写的,而硬件驱动程序是?/p>

C

语言来实现的,那么,

Java

接口如何去访?/p>

C

?/p>

口呢?众所周知?/p>

Java

提供?/p>

JNI

方法调用,同样,?/p>

Android

系统中,

Java

?/p>

用程序通过

JNI

来调用硬件抽象层接口。在这一篇文章中,我们将介绍如何?/p>

Android

硬件抽象层接口编?/p>

JNI

方法?/p>

以便使得上层?/p>

Java

应用程序能够使用?/p>

层提供的硬件服务?/p>

 

   

  

 

一

. 

参照

?/p>

Ubuntu

上为

Android

增加硬件抽象?/p>

?/p>

HAL

?/p>

模块访问

Linux

内核

驱动程序

一文,

准备好硬件抽象层模块?/p>

确保

Android

系统镜像文件

system.img

?/p>

经包?/p>

hello.default

模块?/p>

 

   

  

 

?/p>

. 

进入?/p>

frameworks/base/services/jni

目录,新?/p>

com_android_server_HelloService.cpp

文件?/p>

 

   

  

 

USER-NAME@MACHINE-NAME:~/Android$ cd frameworks/base/servic

es/jni

 

   

  

 USER-NAME@MACHINE-NAME:~/Android/frameworks/base/services/jn

i$ vi com_android_server_HelloService.cpp

 

   

  

 

?/p>

com_android_server_HelloService.cpp

文件中,实现

JNI

方法。注意文?/p>

的命令方法,

com_android_server

前缀表示的是包名,表示硬件服?/p>

HelloService

是放?/p>

frameworks/base/services/java

目录下的

com/android/server

目录的,即存

在一个命令为

com.android.server.HelloService

的类。这里,我们暂时略去

HelloService

类的描述,在下一篇文章中,我们将回到

HelloService

类来。简单地

说,

HelloService

是一个提?/p>

Java

接口的硬件访问服务类?/p>

 

   

  

 

首先是包含相应的头文件:

 

view plain

 

1.

 

#define LOG_TAG "HelloService"

  

 

2.

 

#include "jni.h"

  

 

3.

 

#include "JNIHelp.h"

  

 

4.

 

#include "android_runtime/AndroidRuntime.h"

  

 

5.

 

#include <utils/misc.h>

  

 



ļ׺.doc޸Ϊ.docĶ

  • Ķ
  • UbuntuΪAndroidӲ(HAL)ģдJNIṩJava
  • CADϰ
  • ϿƼѧԺӢҵĿⱨ - ͼ
  • ֿҵٰй׼
  • ȫԺУ
  • 2012ѧ꽱ѧ
  • 2016-2022йЬýճҵ⼰ͶʻԤⱨ - ͼ
  • 2016-2022йЬýճҵ⼰ͶʻԤⱨ - ͼ

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)