Android 指纹识别——架构篇

    相信大部分人都用过指纹识别,日常生活中很多场景用到指纹识别技术,比如手机解锁,指纹支付,指纹打卡,就连公司附近的健身房也用了指纹加人脸识别的闸机。
    安卓系统从6.0版本(代号Marshmallow,发布时间2015年,)开始支持指纹识别技术。这篇文章将对安卓指纹识别功能及架构做一个简介。而更核心的指纹识别原理及算法将在后续文章中探讨。‌
    首先我们来看指纹识别的功能,指纹识别技术主要包括下面几个子功能:

  1. 指纹录入(Enroll);
  2. 指纹认证(Authenticate);
  3. 指纹管理(重命名Rename, 删除Remove, 查询getEnrolledFingerprints);

    关于录入和管理不多做介绍,这里说一说指纹识别。关于指纹认证大家可能有一个小的误区,大家思考一个问题,我们手机的指纹识别功能是一直处于就绪状态等待我们输入指纹吗?答案是否定的。当我们锁屏后,指纹解锁功能才开始工作,当我们打开指纹付款页面指纹支付才开始工作,在安卓系统中是调用authenticate方法使指纹硬件上电,这时才能进行指纹采集,指纹采集成功后下电,当失败一定次数后也会下电。‌这样的好处很明显,那就是省电。
    介绍了指纹识别的功能,下面来看看安卓的指纹识别架构。以安卓7.0系统为例,下面是一张简略图:

Android 指纹识别——架构篇_第1张图片
安卓7.0系统指纹识别架构简图

    在应用层主要有设置(Settings)和锁屏(Keyguard, 包含在SystemUI内)两部分。在Framework层 FingerprintManager 为应用层提供API接口,以及处理底层的回调,FingerprintService调用native层为FingerprintManager提供功能实现。‌至于native层,本次不做介绍,下篇文章将结合指纹识别的原理来探讨。
    下面是更详细一些的类图:


Android 指纹识别——架构篇_第2张图片
安卓7.0系统指纹识别类图

你可能感兴趣的:(Android 指纹识别——架构篇)