Android应用框架层和硬件抽象层以及底层之间的关系

1. JNI技术:
(1).JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件)
(2).动态链接库(.so文件)是由NDK编译C/C++文件而成的。

2. HAL层开发:
(1).HAL是Hardware Abstraction Layer的简称。也称为硬件抽象层。
(2).硬件访问服务是在Framework层实现的。
(3).硬件访问服务是用Java语言实现的,硬件抽象层是用C++语言编写的。因此硬件访问服务必须通过JNI技术调用硬件抽象层的接口。
(4).硬件抽象层调用Linux Kernel底层的接口。

3. Android HAL存在的主要原因:
(1).并不是所有的硬件设备都有标准的Linux Kernel的接口。
(2).某些设备制造商并不希望公开硬件驱动,所以采用HAL开发的方式。
(3).针对某些硬件,Android有一些特殊的需求。

附图:

注:
Android包含一个C/C++库的集合,使Android系统的各个组件使用。
这些功能通过Android的应用框架层暴漏给开发者。

更多相关文章

  1. 分支和循环(二)(零基础学习C语言)
  2. Android(安卓)AIDL IPC机制详解
  3. Android(安卓)GPIO LED 驱动与HAL分析
  4. Android通过AIDL接口实现跨进程通讯
  5. Android(安卓)串口驱动和应用测试
  6. Android(安卓)Service 两种编写及应用
  7. Android(安卓)Solution之我见
  8. Android(安卓)Java Framework显示Toast(无Activity和Service)
  9. Android动态加载字节码

随机推荐

  1. Android(安卓)tips
  2. Android(安卓)StateMachine记录
  3. Android(安卓)Fragment基础之动态添加Fra
  4. Android(安卓)WebView untold stories
  5. android memory 优化
  6. 程序中如何获取Android的Root权限
  7. Android文件下载使用Http协议
  8. 实习入职第十六天:android:ellipsize="end"
  9. [RK3399] [Android(安卓)9.0] 调试2560x1
  10. android中JSON的使用