从上层APP到底层驱动的调用过程
来源:互联网 发布:iscroll.js 下载 编辑:程序博客网 时间:2024/06/13 01:52
1. 上层应用APP
1)源文件:
packages/experimental/Freg/
├── AndroidManifest.xml
├── Android.mk
├── res
│ ├── drawable
│ │ └── icon.png
│ ├── layout
│ │ └── main.xml
│ └── values
│ └── strings.xml
└── src
└── shy
└── luo
└── freg
└── Freg.java
2)编译方式:
mmm ./packages/experimental/Freg/
3)目标文件:
out/target/product/generic/system/app/Freg.apk
4)调用方式:
fregService.getVal()
fregService.setVal(val)
2. 硬件访问服务接口
1)源文件:
frameworks/base/core/java/android/os/IFregService.aidl
frameworks/base/Android.mk
编译方式:
mmm ./frameworks/base/
目标文件:
out/target/product/generic/system/framework/framework.jar
frameworks/base/services/java/com/android/server/FregService.java
编译方式:
mmm ./frameworks/base/services/java/
目标文件:
out/target/product/generic/system/framework/services.jar
2)调用方式:
FregService() -> mPtr = init_native()
setVal() -> setVal_native(mPtr, val)
getVal() -> getVal_native(mPtr)
3. 硬件访问服务的JNI方法
1)源文件:
frameworks/base/services/jni/com_android_server_FregService.cpp
frameworks/base/services/jni/onload.cpp
frameworks/base/services/jni/Android.mk
2)编译方法:
mmm ./frameworks/base/services/jni/
3)目标文件:
out/target/product/generic/system/lib/libandroid_servers.so
4)调用方法:
device->set_val(device, val)
device->get_val(device, &val)
freg_device_open(&(module->common), &device)
4. 硬件抽象层模块接口
1)源文件:
hardware/libhardware/include/hardware/freg.h
hardware/libhardware/modules/freg/
├── Android.mk
└── freg.cpp
2)编译方式:
mmm ./hardware/libhardware/modules/freg/
3) 目标文件:
out/target/product/generic/system/lib/hw/freg.default.so
4)调用方式:
open
read
write
5. Linux driver驱动模块
1)源文件:
kernel/goldfish/drivers/Makefile
kernel/goldfish/drivers/freg/
├── freg.c
├── freg.h
├── Kconfig
└── Makefile
2) 编译方式:
make
3) 目标文件:
kernel/goldfish/arch/arm/boot/zImage
- 从上层APP到底层驱动的调用过程
- [Android] AudioEffect架构:从上层调用到底层音效驱动
- FM函数从上层到底层调用过程(回顾)
- 浅析Linux从API调用到底层驱动的过程
- Camera从上层APP到底层分析
- Camera从上层APP到底层分析
- IT从上层到底层是怎样的学习过程
- linux上层app调用驱动底层的过程详解
- alarm从上层到底层完整调用流程
- 上层APP调用底层硬件驱动过程解析
- 上层APP调用底层硬件驱动过程解析
- 上层APP调用底层硬件驱动过程解析
- 上层APP调用底层硬件驱动过程解析
- 上层APP调用底层硬件驱动过程解析
- 电池电量分析 从上层到底层
- CAMERA流程:从上层到底层
- 从底层驱动 到上层APP的流程(2)
- 从底层驱动 到上层APP的流程(1)
- 项目介绍
- 高性能web站点--负载均衡
- 关于C++的感想
- 黑马程序猿——C#枚举器深入解析
- 音频单元托管基础草稿
- 从上层APP到底层驱动的调用过程
- java栈实现括号匹配
- Modbus通讯协议学习
- 第一个aauto程序
- EOF是什么?
- 修改与添加Administrator的方法?
- 链表排序的两种实现方法
- VRPN学习笔记(二) 配置server和编写client
- TRIZ系列-创新原理-2-抽取原理