Android Framework应用框架层和HAL硬件抽象层以及Linux Kernel底层之间的关系
2015-07-06 00:30
766 查看
Android应用框架层和硬件抽象层以及底层之间的关系
JNI技术:
(1).JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件)
(2).动态链接库(.so文件)是由NDK编译C/C++文件而成的。
HAL层开发:
(1).HAL是Hardware Abstraction Layer的简称。也称为硬件抽象层。
(2).硬件访问服务是在Framework层实现的。
(3).硬件访问服务是用Java语言实现的,硬件抽象层是用C++语言编写的。因此硬件访问服务必须通过JNI技术调用硬件抽象层的接口。
(4).硬件抽象层调用Linux Kernel底层的接口。
Android HAL存在的主要原因:
(1).并不是所有的硬件设备都有标准的Linux Kernel的接口。
(2).某些设备制造商并不希望公开硬件驱动,所以采用HAL开发的方式。
(3).针对某些硬件,Android有一些特殊的需求。
附图:
这里写图片描述组件使用。
这些功能通过Android的应用框架层暴漏给开发者。
JNI技术:
(1).JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件)
(2).动态链接库(.so文件)是由NDK编译C/C++文件而成的。
HAL层开发:
(1).HAL是Hardware Abstraction Layer的简称。也称为硬件抽象层。
(2).硬件访问服务是在Framework层实现的。
(3).硬件访问服务是用Java语言实现的,硬件抽象层是用C++语言编写的。因此硬件访问服务必须通过JNI技术调用硬件抽象层的接口。
(4).硬件抽象层调用Linux Kernel底层的接口。
Android HAL存在的主要原因:
(1).并不是所有的硬件设备都有标准的Linux Kernel的接口。
(2).某些设备制造商并不希望公开硬件驱动,所以采用HAL开发的方式。
(3).针对某些硬件,Android有一些特殊的需求。
附图:
这里写图片描述组件使用。
这些功能通过Android的应用框架层暴漏给开发者。
相关文章推荐
- FlashFXP连接虚拟机中centos
- Linux学习路线(转载)
- Linux安装jdk8以及环境变量配置
- Linux 修改系统变量错误大致基础命令不能使用问题修复!
- linux wget 命令用法详解(附实例说明)
- BeagleBone Black教程之BeagleBone Black使用到的Linux基础
- Linux内核Crash分析
- linux中进入mysql时报错Access denied for user 'root'@'localhost' (using password: YES)解决方案
- Linux下自定义开机启动程序
- 将Windows文件挂在到Linux上
- Python Linux下安装多个版本
- Linux安装TTF/OTF字体
- TQ2440学习笔记——Linux上I2C驱动的两种实现方法(1)
- Linux协议栈链路层处理
- linux-c语言连接mysql
- linux串口编程 非规范模式 read()问题
- Linux线程
- 使用cobbler安装centos6.6(vmware)
- linux新内核的freeze框架以及意义
- CentOS6上DNS服务器的安装配置-基础篇