📘 AOSP HAL 移植入门
30章 · 从零到实战
⚡ 友好 · 彩虹目录
1
HAL概述
概念
什么是HAL
架构位置
为什么需要
➜
2
HAL接口定义
结构体
模块结构
hw_module_t
hw_device_t
➜
3
HAL模块编写
实操
第一个模块
open/close
注册模块
➜
4
HAL编译系统
Android.bp
bp编写
模块编译
生成.so
➜
5
HAL加载机制
动态
hw_get_module
查找路径
动态加载
➜
6
HAL与JNI交互
桥梁
JNI接口
Java调用
数据传递
➜
7
HAL与内核驱动
底层
调用驱动
ioctl封装
设备节点
➜
8
HAL调试技巧
logcat
logcat使用
调试日志
问题排查
➜
9
HAL性能优化
提速
减少IPC
内存管理
缓存策略
➜
10
HAL安全性
权限
权限控制
SELinux
访问限制
➜
11
HAL测试
质量
单元测试
模拟硬件
自动化
➜
12
HAL版本管理
兼容
接口兼容
版本号
向后兼容
➜
13
HAL电源管理
功耗
休眠唤醒
电源状态
功耗优化
➜
14
HAL多线程
并发
线程安全
锁机制
异步处理
➜
15
HAL回调机制
通知
注册回调
事件通知
异步消息
➜
16
HAL配置管理
参数
配置文件
动态调整
默认值
➜
17
HAL热插拔
动态
插拔检测
动态加载
状态通知
➜
18
HAL虚拟化
模拟
模拟硬件
虚拟设备
测试平台
➜
19
HAL传感器
传感
传感器类型
数据采集
校准算法
➜
20
HAL音频
声音
音频设备
数据流
编解码
➜
21
HAL摄像头
相机
摄像头设备
预览拍照
参数控制
➜
22
HAL显示
屏幕
显示设备
帧缓冲
合成器
➜
23
HAL输入
触控
输入设备
事件分发
多点触控
➜
24
HAL存储
文件
存储设备
分区操作
文件系统
➜
25
HAL网络
连接
网络设备
Wi-Fi
蓝牙
➜
26
HAL定位
GPS
GPS设备
位置数据
辅助定位
➜
27
HAL指纹
生物
指纹设备
录入
识别算法
➜
28
HAL NFC
近场
NFC设备
标签读写
卡模拟
➜
29
HAL案例实战
移植
传感器HAL
从零开始
完整流程
➜
30
HAL总结与展望
收官
发展趋势
常见问题
学习资源
➜