sinpo1984
作者sinpo1984·2012-09-05 11:50
软件开发工程师·杭州立宇泰电子有限公司

Android HAL 开发 (3)

字数 2098阅读 3309评论 4赞 0
在上一篇文章中我们分析了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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论4 条评论

sinpo1984sinpo1984软件开发工程师杭州立宇泰电子有限公司
2013-07-19 16:53
杭州立宇泰电子有限公司主营产品:MID、Andorid行业手持终端、车载驾培系统终端、警务通、嵌入式平板电脑、便携式无线电子菜单、多串口服务器、嵌入式单板电脑、S5PV210/S3C6410/2440/2410/44B0开发板及各种显示方案等自主知识产权的产品
sinpo1984sinpo1984软件开发工程师杭州立宇泰电子有限公司
2013-05-14 14:37
祝贺立宇泰视频指纹车载驾培终端产品,一次性通过“国家电子计算机外部设备质量监督检验中心”权威部门的检测,测试项目包括:性能检验、环境适应性检验、可靠性检验、电磁兼容性检验、安全检验。
http://www.hzlitai.com.cn/news/1855.html
sinpo1984sinpo1984软件开发工程师杭州立宇泰电子有限公司
2013-03-26 09:26
适合驾培、驾考、物流管理系统的车载一体机终端设备形成系列化

立宇泰推出的车载一代(型号)、车载二代(型号)目前已经大批量使用在各大城市的驾培终端升级中,在实际使用场合考验下,工作稳定、可靠,受到用户的好评。
车载一代: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
sinpo1984sinpo1984软件开发工程师杭州立宇泰电子有限公司
2012-11-22 11:02
分享了
Ctrl+Enter 发表

作者其他文章

X社区推广