本文主要基于Android10.0系统开源代码介绍指纹识别模块的整体架构和启动流程。
一.指纹识别整体框架
结合上图,Android系统的指纹识别软件上主要分成4层:
应用层:应用开发者调用AOSP提供的接口即可,AOSP接口即Android提供的通用接口,这些接口通过Binder与Framework层的指纹服务进行操作与数据传输;
Framework层:指纹Framework服务是承上启下的作用,上与应用层交互,下与HAL层交互;
HAL层:指纹识别的结果判断都来自硬件抽象层,是指纹识别的“灵魂”所在。这一层各手机厂商差异化的实现了各自的算法逻辑与结果反馈逻辑。
Driver层:驱动层接收HAL层的请求,直接控制了指纹硬件。
二.指纹识别启动流程
指纹启动流程分成两部分:Framework层的启动和HAL层的启动。两者各自独立启动