android底层开发.docx
- 文档编号:9387389
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:10
- 大小:266.42KB
android底层开发.docx
《android底层开发.docx》由会员分享,可在线阅读,更多相关《android底层开发.docx(10页珍藏版)》请在冰点文库上搜索。
android底层开发
一、代码讲解
1、编写HAL层代码
一般来说HALmoudle需要涉及的是三个关键结构体:
structhw_module_t;
structhw_module_methods_t;
structhw_device_t;
下面结合代码说明这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层)
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
packagemokoid.hardware;
interfaceILedService
{
booleansetOn(intled);
booleansetOff(intled);
}
系统的aidl工具会将ILedService.aidl生成ILedService.java文件,实现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
$cd/opt/android_froyo_smdk
$tar-jxvfweiyan.tar.bz2
2、修改build/core/config.mk文件防止编译找不到led.h头文件
$cd/opt/android_fsroyo_smdk
$geditbuild/core/config.mk
找到SRC_HEADERS:
=
$(TOPDIR)system/core/include
在后面加入
$(TOPDIR)weiyan/hardware/modules/include
3、编译工程
$source/opt/android_froyo_smdk/build/envsetup.sh
$exportTARGET_PRODUCT=sec_smdkv210
$mmm/opt/android_froyo_smdk/weiyan
编译成功后会如下路径生成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驱动模块
把leds.ko复制到android的system目录下,执行
#insmodleds.ko
#chmod666/dev/leds
6、运行LedClient.apk,LedTest.apk
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 底层 开发