? ? 相信大部分人都用過指紋識(shí)別袜硫,日常生活中很多場(chǎng)景用到指紋識(shí)別技術(shù)备闲,比如手機(jī)解鎖晌端,指紋支付,指紋打卡恬砂,就連公司附近的健身房也用了指紋加人臉識(shí)別的閘機(jī)咧纠。
? ? 安卓系統(tǒng)從6.0版本(代號(hào)Marshmallow,發(fā)布時(shí)間2015年泻骤,)開始支持指紋識(shí)別技術(shù)漆羔。這篇文章將對(duì)安卓指紋識(shí)別功能及架構(gòu)做一個(gè)簡(jiǎn)介。而更核心的指紋識(shí)別原理及算法將在后續(xù)文章中探討狱掂。?
? ? 首先我們來看指紋識(shí)別的功能演痒,指紋識(shí)別技術(shù)主要包括下面幾個(gè)子功能:
- 指紋錄入(Enroll);
- 指紋認(rèn)證(Authenticate)符欠;
- 指紋管理(重命名Rename, 刪除Remove, 查詢getEnrolledFingerprints)嫡霞;
? ? 關(guān)于錄入和管理不多做介紹,這里說一說指紋識(shí)別希柿。關(guān)于指紋認(rèn)證大家可能有一個(gè)小的誤區(qū)诊沪,大家思考一個(gè)問題养筒,我們手機(jī)的指紋識(shí)別功能是一直處于就緒狀態(tài)等待我們輸入指紋嗎?答案是否定的端姚。當(dāng)我們鎖屏后晕粪,指紋解鎖功能才開始工作,當(dāng)我們打開指紋付款頁面指紋支付才開始工作渐裸,在安卓系統(tǒng)中是調(diào)用authenticate方法使指紋硬件上電巫湘,這時(shí)才能進(jìn)行指紋采集,指紋采集成功后下電昏鹃,當(dāng)失敗一定次數(shù)后也會(huì)下電尚氛。?這樣的好處很明顯,那就是省電洞渤。
? ? 介紹了指紋識(shí)別的功能阅嘶,下面來看看安卓的指紋識(shí)別架構(gòu)。以安卓7.0系統(tǒng)為例载迄,下面是一張簡(jiǎn)略圖:
? ? 在應(yīng)用層主要有設(shè)置(Settings)和鎖屏(Keyguard, 包含在SystemUI內(nèi))兩部分讯柔。在Framework層 FingerprintManager 為應(yīng)用層提供API接口,以及處理底層的回調(diào)护昧,F(xiàn)ingerprintService調(diào)用native層為FingerprintManager提供功能實(shí)現(xiàn)魂迄。?至于native層,本次不做介紹惋耙,下篇文章將結(jié)合指紋識(shí)別的原理來探討捣炬。
? ? 下面是更詳細(xì)一些的類圖: