Android 从硬件到应用:一步一步向上爬 5 -- 在Frameworks层添硬件服务
来源:互联网 发布:linux查看php日志文件 编辑:程序博客网 时间:2024/05/19 08:02
Android Frameworks层提供了硬件服务,Android系统APP可以调用这些硬件服务,进而完成硬件的控制,实现应有的功能。接着上一篇,这一篇要在frameworks层为应用提供java接口的硬件服务。cd到frameworks/base/core/java/android/os目录,添加 IGpioService.aidl:
package android.os; interface IGpioService { void setVal(int val); int getVal(); }我们通过setVal去设置LED的亮灭,getVal一直是省略的
打开frameworks/base下的Android.mk,修改LOCAL_SRC_FILES,增加:
core/java/android/os/IGpioService.aidl \编译IGpioService.aidl接口:
make TARGET_PRODUCT=am335xevm_sk -j8 OMAPES=4.x
生成:
Install: out/target/product/am335xevm_sk/system/framework/framework.jar
成功后cd到frameworks/base/services/java/com/android/server目录,添加GpioService.java文件:package com.android.server; import android.content.Context; import android.os.IGpioService; import android.util.Slog; public class GpioService extends IGpioService.Stub { private static final String TAG = "GpioService"; GpioService() { init_native(); } public void setVal(int val) { setVal_native(val); } public int getVal() { return getVal_native(); } private static native boolean init_native(); private static native void setVal_native(int val); private static native int getVal_native(); };修改当前目录下的SystemServer.java文件,在ServerThread::run中增加GpioService:
try { Slog.i(TAG, "Recognition Service"); recognition = new RecognitionManagerService(context); } catch (Throwable e) { reportWtf("starting Recognition Service", e); } try { Slog.i(TAG, "DiskStats Service"); ServiceManager.addService("diskstats", new DiskStatsService(context)); } catch (Throwable e) { reportWtf("starting DiskStats Service", e); } try { Slog.i(TAG, "Gpio Service"); ServiceManager.addService("gpio", new GpioService()); } catch (Throwable e) { Slog.e(TAG, "Failure starting Gpio Service", e); }
编译GpioService:
make TARGET_PRODUCT=am335xevm_sk -j8 OMAPES=4.x
生成:
Install: out/target/product/am335xevm_sk/system/framework/services.jarFrameworks层已经包含了我们编写的硬件服务,应用程序可以通过这些java接口访问硬件服务。
1 0
- Android 从硬件到应用:一步一步向上爬 5 -- 在Frameworks层添硬件服务
- Android 从硬件到应用:一步一步向上爬 6 -- 编写APP测试框架层硬件服务(完)
- Android 从硬件到应用:一步一步向上爬 3 -- 硬件抽象层访问硬件驱动
- Android 从硬件到应用:一步一步向上爬 1 -- 从零编写底层硬件驱动程序
- Android 从硬件到应用:一步一步向上爬 2 -- 运行 C 程序测试硬件驱动
- Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动
- 在Frameworks层增加硬件访问服务
- android frameworks层增加硬件服务
- 【5】在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- 从UI层到硬件层优化Android应用
- ANDROID入门5:在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- Android的Application Frameworks层增加硬件访问服务
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务(老罗学习笔记5)
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- 在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- 在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- Linux下给mysql创建用户分配权限
- realpath
- springMVC整合Freemarker例子
- bit、byte、位、字节、汉字、字符之间的区别
- PE可执行文件格式
- Android 从硬件到应用:一步一步向上爬 5 -- 在Frameworks层添硬件服务
- DIV制作尖角效果
- 经典生产者消费者问题
- jquery easyui datagrid 分页 详解
- 13个网站测速服务
- c++输入和输出操作符重载
- C#连接数据库的新方法(通过web.config配置文件)
- latex minipage 多个图片嵌入
- TreeMap按照key排序