Android HAL 开发 (3)
2012-06-13 16:33
148 查看
/article/4442080.html
在上一篇文章中我们分析了jni的led service代码,该代码通过调用led的HAL层代码,实现了mokoid_init, mokoid_setOn, mokoid_setOff三个C/C++接口,但是该接口还无法直接提供给java程序使用,因此还需要一段java代码通过jni调用这些操作接口。
下面就介绍java led service 的实现,代码很简单。
framework/base/service/java/com/mokoid/server/LedService.java
[/code]
首先通过System.load("/system/lib/libmokoid_runtime.so"); 装载上一篇文章介绍的使用C/C++编写的库,由于在
libmokoid_runtime.so中已经把mokoid_init,mokoid_setOn, mokoid_setOff分别映射到了_init, _set_on, _set_off,
所以这里可以直接调用这三个接口并且分别被封装到LedService的构造函数,setOn()和setOff()成员函数中,这样
android的应用程序就可以通过这个类来操作led了。
本文出自 “Mobile and Linux Deve..” 博客,请务必保留此出处/article/4442080.html
在上一篇文章中我们分析了jni的led service代码,该代码通过调用led的HAL层代码,实现了mokoid_init, mokoid_setOn, mokoid_setOff三个C/C++接口,但是该接口还无法直接提供给java程序使用,因此还需要一段java代码通过jni调用这些操作接口。
下面就介绍java led service 的实现,代码很简单。
framework/base/service/java/com/mokoid/server/LedService.java
package com.mokoid.server; import android.util.Config; import android.util.Log; import android.content.Context; import android.os.Binder; import android.os.Bundle; import android.os.RemoteException; import android.os.IBinder; import mokoid.hardware.ILedService; public final class LedService extends ILedService.Stub { static { System.load("/system/lib/libmokoid_runtime.so"); } public LedService() { Log.i("LedService", "Go to get LED Stub..."); _init(); } /* * Mokoid LED native methods. */ public boolean setOn(int led) { Log.i("MokoidPlatform", "LED On"); return _set_on(led); } public boolean setOff(int led) { Log.i("MokoidPlatform", "LED Off"); return _set_off(led); } private static native boolean _init(); private static native boolean _set_on(int led); private static native boolean _set_off(int led); }
[/code]
首先通过System.load("/system/lib/libmokoid_runtime.so"); 装载上一篇文章介绍的使用C/C++编写的库,由于在
libmokoid_runtime.so中已经把mokoid_init,mokoid_setOn, mokoid_setOff分别映射到了_init, _set_on, _set_off,
所以这里可以直接调用这三个接口并且分别被封装到LedService的构造函数,setOn()和setOff()成员函数中,这样
android的应用程序就可以通过这个类来操作led了。
本文出自 “Mobile and Linux Deve..” 博客,请务必保留此出处/article/4442080.html
相关文章推荐
- 深入浅出 - Android系统移植与平台开发(七)- 初识HAL【转】
- Android HAL 开发 (4)
- Android HAL 开发 (1)
- Android HAL 开发 (1)
- 深入浅出 - Android系统移植与平台开发(七)- 初识HAL
- Android HAL 开发 (4)
- Android HAL 开发 (4)
- Android HAL开发详解
- Android HAL 开发 (1)
- Android开发入门之五—Android HAL
- Android HAL 开发 (5)
- Android HAL 开发 (2)
- Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&Browser架构设计与实战开发
- 【视频课程】Android底层开发关键技术—Android系统移植与HAL框架开发
- Android深度探索:HAL与驱动开发学习笔记--并发控制之互斥锁
- Android深度探索:HAL与驱动开发学习笔记--并发控制之自旋锁
- 深入浅出 - Android系统移植与平台开发(七)- 初识HAL
- Android深度探索:HAL与驱动开发学习笔记--工作队列
- Android HAL 开发 (5)
- Android深度探索:HAL与驱动开发学习笔记--内存管理(学习重点)