原创 Android HAL 开发 (3)

2012-9-5 11:57 1083 10 14 分类: 工程师职场

在上一篇文章中我们分析了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);
 }
首先通过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了。

本文转自:http://www.hzlitai.com.cn/article/ARM11/SYSTEM/Android_HAL_kaifa3.html 

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户1634838 2013-9-27 11:14

大家一起学习~~~

用户1658524 2013-5-2 10:09

祝贺立宇泰视频指纹车载驾培终端产品,一次性通过“国家电子计算机外部设备质量监督检验中心”权威部门的检测,测试项目包括:性能检验、环境适应性检验、可靠性检验、电磁兼容性检验、安全检验。 http://www.hzlitai.com.cn/news/1855.html

用户1658524 2013-3-23 10:01

适合驾培、驾考、物流管理系统的车载一体机终端设备形成系列化 立宇泰推出的车载一代(型号)、车载二代(型号)目前已经大批量使用在各大城市的驾培终端升级中,在实际使用场合考验下,工作稳定、可靠,受到用户的好评。 车载一代:ARM9处理器+WINCE5.0操作系统,480x272像素4.3寸液晶屏,电阻式触摸屏,支持GPS定位,2G/3G拨号,RFID(TypeA/B)卡的读写,指纹采集(上层实现算法),支持1路串口摄像头,内置2~4GTF存储卡,支持音频播放。 车载二代:ARM Cotex-A8处理器+Android2.3操作系统,800x480像素7寸液晶屏,电容式触摸屏,支持GPS定位,2G/3G拨号,RFID(TypeA/B)卡读写,接触式IC卡读写,指纹采集模块(已经实现算法),支持2路模拟摄像头(支持拍照、录像),内置8GTF存储卡,提供外置TF卡接口(最大),支持录音、放音,具备陀螺仪和加速度传感器。 通过与软件方案商、集成商的合作,实现了全新的驾培管理软、硬件体系,促进各大城市的驾培管理变得更加成熟、规范、公平、公正。 http://www.hzlitai.com.cn/product/Tablet-PC/1840.html

用户1658524 2012-11-12 10:24

学习了
相关推荐阅读
用户1634838 2013-11-14 15:05
S3C2440A处理器中文数据手册下载
  较为完整的S3C2440A处理器中文手册压缩包,请点击下载:   s3c2440中文数据手册.rar...
用户1634838 2013-09-06 10:48
常见视频文件的编码方式和封装格式
本文转自:http://www.hzlitai.com.cn/article/ARM11/CPhelp/1802.html   常见的AVI、RMVB、MKV、ASF、WMV、MP4、3G...
用户1634838 2012-10-31 13:41
android usb流程(转载加整理)
原帖地址:http://www.hzlitai.com.cn/article/ARM11/SYSTEM/Android_USB_develop_lx.html    这是关于USB Mas...
用户1634838 2012-09-26 11:12
Android开发环境搭建(v1.2)
本文转自:http://www.hzlitai.com.cn/article/ARM11/example/android.html  第一章 windows 下搭建过程 一.安装 JDK(...
用户1634838 2012-09-18 13:45
Android HAL 开发 (5)
上一章介绍了直接调用Service来操作硬件的方法,如果我们再优化一下结构,通过一个Manager来调用这个Service的方法,可能会更好。这样Service就可以跑在后台,由于这时候servi...
用户1634838 2012-09-14 11:46
Android HAL 开发 (4)
在上一篇文章中,我们看到了如果在java程序中调用C/C++撰写的函数。而且Android的service已经实现了,下面就要看看应用程序如何调用这个service了,这里用两种方法,我们先介绍简...
EE直播间
更多
我要评论
4
10
关闭 站长推荐上一条 /3 下一条