Android 底层开发例子一
来源:互联网 发布:windows永久激活码 编辑:程序博客网 时间:2024/06/06 15:35
Android 底层开发例子一
伟研科技 S5PV210 开发板实验一
一、代码讲解
1、 编写HAL层代码
一般来说HAL moudle需要涉及的是三个关键结构体:
下面结合代码说明这3个结构的用法
文件:/hardware/modules/include/weiyan/led.h
文件:led.c
2.JNI层文件:/frameworks/base/service/com_mokoid_server_LedService.cpp
3.Framework层的service,文件:/frameworks/base/service/java/com/weiyan/server
4.APP 测试程序 (属于APP层)
(1)Android的app可以直接通过service调用.so格式的jni
(2)经过Manager调用service
Manager (属于Framework层)
因为LedService和LedManager在不同的进程,所以要考虑到进程通讯的问题。Manager通过增加一个aidl文件来描述通讯接口
文件:weiyan/frameworks/base/core/java/weiyan/hardware/ILedService.aidl
package mokoid.hardware;
interface ILedService
{
}
SystemServer (属于APP层)文件:
/apps/LedTest/src/com/weiyan/LedTest/LedSystemServer.java
二、APP 测试程序
文件:weiyan/apps/LedTest/src/com/weiyan/LedTest/LedTest.java
加载方法
1、把光盘提供的weiyan.tar.gz解压到/opt/ android_froyo_smdk
2、修改build/core/config.mk文件防止编译找不到led.h头文件
$(TOPDIR)weiyan/hardware/modules/include
3、编译工程
$ export
$mmm
编译成功后会如下路径生成apk文件,库文件,jar包等
/opt/android_froyo_smdk/out/target/product/smdkv210/system/app/LedClient.apk
/opt/android_froyo_smdk/out/target/product/smdkv210/system/app/LedTest.apk
/opt/android_froyo_smdk/out/target/product/smdkv210/system/framework/ledctl.jar
/opt/android_froyo_smdk/out/target/product/smdkv210/system/lib/hw/led.smdkv210.so
/opt/android_froyo_smdk/out/target/product/smdkv210/system/lib/libled.so
/opt/android_froyo_smdk/out/target/product/smdkv210/system/lib/libmokoid_runtime.so
把LedClient.apk,LedTest.apk放到android的system/app目录,把ledctl.jar放到system/framework目录,把led.smdkv210.so放到system/lib/hw目录,把ibled.so,
libmokoid_runtime.so放到system/lib目录下
4、为了android桌面能显示我们的LedClient.apk,LedTest.apk程序,把weiyan/frameworks/base/service/com.weiyan.server.xml放到android的
system/etc/permissions目录下
5、加载led驱动模块
6、运行LedClient.apk, LedTest.apk
- Android 底层开发例子一
- Android 底层开发例子一
- Android 底层开发例子一
- android 底层开发例子
- Android 底层驱动开发(一)
- Android 底层开发] 如何成为Androi…
- [Android 底层开发] 如何成为Andro…
- [Android 底层开发] 如何成为Andro…
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android 开发之 ---- 底层驱动开发(一)
- Android的传感器HAL层的书写---基…
- android学习很好的网站
- android学习很好的网站
- 如何编写jni方法
- 如何编写jni方法
- Android 底层开发例子一
- Android 底层开发例子一
- mount.vboxsf: mounting failed wi…
- mount.vboxsf: mounting failed wi…
- 又遇BUG-ORA-01148:数据文件忽然变为recover状态
- Eclipse启动时报错:A Java RunTim…
- Eclipse启动时报错:A Java RunTim…
- Linux 下Android 开发环境搭建
- Linux 下Android 开发环境搭建