目录
8.3开发Android硬件访问服务
硬件访问服务通过硬件抽象层模块来为应用程序提供硬件读写操作。硬件抽象层模块是用C++语言开发的,而应用程序框架层中的硬件访问服务是Java开发的,因此,硬件访问服务必须通过java本地接口(Java Native Interface,JNI)来调用硬件抽象层模块的接口。
步骤:
1.硬件访问服务接口的定义IFregService
2.硬件访问服务的实现FregService
3.实现调用硬件抽象层模块JNI的方法
4.如何在系统进程System中启动硬件访问服务
5.开发应用程序使用硬件访问服务
8.4 定义IFregService
Android接口描述语言(Android Interface Definition Language,AIDL),在编译时,编译系统会将他们呢转换成为Java文件,然后再对他们进行编译。
8.5 实现FregService
8.6实现JNI方法
还需要在frameworks/base/services/jni/onload.cpp中增加register_android_server_FrregService函数的声明和调用
8.7 如何在系统进程System中启动硬件访问服务
修改frameworks/base/services/java/com/android/server目录中SystemServer.java文件,修改其中ServerThread类的run方法:
注册到Service Manager之后,开机就会自动启动了。
8.8 开发应用程序