当前位置: 首页 > news >正文

wordpress主题 加载许多js/seo自学网免费

wordpress主题 加载许多js,seo自学网免费,石狮网站建设,做网站可以用海外空间吗本文主要基于Android10.0系统开源代码介绍指纹识别模块的整体架构和启动流程。 一.指纹识别整体框架 结合上图,Android系统的指纹识别软件上主要分成4层: 应用层:应用开发者调用AOSP提供的接口即可,AOSP接口即Androi…

本文主要基于Android10.0系统开源代码介绍指纹识别模块的整体架构和启动流程。

一.指纹识别整体框架

 

结合上图,Android系统的指纹识别软件上主要分成4层:

应用层:应用开发者调用AOSP提供的接口即可,AOSP接口即Android提供的通用接口,这些接口通过Binder与Framework层的指纹服务进行操作与数据传输;

Framework层:指纹Framework服务是承上启下的作用,上与应用层交互,下与HAL层交互;

HAL层:指纹识别的结果判断都来自硬件抽象层,是指纹识别的“灵魂”所在。这一层各手机厂商差异化的实现了各自的算法逻辑与结果反馈逻辑。

Driver层:驱动层接收HAL层的请求,直接控制了指纹硬件。

二.指纹识别启动流程
指纹启动流程分成两部分:Framework层的启动和HAL层的启动。两者各自独立启动,且启动时间顺序上没有严格的要求,Framework层启动之后会不断尝试链接HAL层直至链接成功。两者启动并且链接成功之后,应用层就可以顺利的进行指纹识别相关操作。

1. Framework层启动流程
1)Android系统启动的第一个进程是zygote,Framework层的服务启动就是从zygote的main函数开始:

2)SystemServer().run()函数接着调用startOtherServices()函数:

 

 3)在startOtherServices()函数中,根据hasFeatureFingerprint判断系统是否支持指纹识别功能。如果支持会startService(FingerprintService.class)。

4)在startService方法中调用了一个关键的方法:service.onStart(),这个方法实现是在FingerprintService.java中。

 

5)至此已经跳转到Framework层核心文件FingerprintService.java,我们接着看下onStart函数做了哪些动作,FingerprintServiceWrapper函数创建Framework层自己的一些接口,我们主要注意getFingerprintDaemon这个函数。

6)getFingerprintDaemon函数首先调用getService函数不断尝试链接HAL层的进程,链接成功之后调用setNotify设置回调函数,最后加载用户相关数据。至此,Framework层已经启动完成。

 

2. HAL层启动流程

1)HAL层启动是通过rc文件完成的,具体路径如下:

2)这个rc文件拉起服务的源码可以从Android.bp中找到,即:BiometricsFingerprint.cpp和service.cpp。

 

3)Service.cpp是HAL层启动的入口文件。首先通过BiometricsFingerprint::getInstance()实例化一个bio服务,不同厂家的BiometricsFingerprint类可能不同,因此在指纹识别的效果上也就有不同的表现,getInstance()实例化过程比较重要,完成了大部分HAL层的初始化动作,我们在下一点重点介绍;bio服务实例化之后通过configureRpcThreadpool()设置允许HIDL通信的线程数量;然后再通过registerAsService()将HAL服务注册到serviceManager中,等待Framework层服务链接;最后调用joinRpcThreadpool将HAL层服务放到线程池中一直运行。

4)我们重点看一下实例化函数getInstance(),这个函数是BiometricsFingerprint类的方法,不同厂家的实现可能不同。首先会new出一个BiometricsFingerprint类,紧接着会调用构造函数,然后调用openHal()函数。

 

 

 

a. HAL服务调用hw_get_module函数通过FINGERPRINT_HARDWARE_MODULE_ID获取指纹模组厂商的so,这个ID的定义在/Android_Q/hardware/libhardware/modules/fingerprint/fingerprint.c这个路径:

b. 获取到指纹模组厂商的module之后,会调用对应的open函数,主要将模组的具体方法赋值给HAL的device,并设置回调函数用于HAL服务和指纹模组module之间的通信。

 

c. 原始Android系统中指纹模组的具体方法基本都是空实现,例如下图的fingerprint_enroll函数。这里正是需要对应指纹模组厂家去实现并接入的地方。

 

3. 指纹识别的通路
上面基本介绍完了指纹识别Framework层和HAL层的启动流程,我们可以将这两部分串起来看,大致通路如下:

FingerprintService.java->BiometricsFingerprint.cpp->fingerprint.c->FPIC_Hal.cpp->FPIC_CA.cpp->TEE.c->TA.c

 

 

 

http://www.lbrq.cn/news/932761.html

相关文章:

  • 中国企业500强入围标准/无忧seo博客
  • 湖州网站做等保费用/大数据培训机构排名前十
  • 德州哪里有学做网站的/佛山网站定制
  • wordpress更改链接后网站打不开/2023北京封控了
  • 商务网站建设流程/深圳网络推广服务公司
  • 网站怎么做自然优化/前端seo是什么意思
  • 云南做网站哪家便宜/微信广告平台推广
  • zencart外贸网站建设/网络营销创意案例
  • 网站建设不要摸板/关键词查询爱站网
  • 广州网站建设app开发/百度站长工具seo
  • 网站建设 投标书/怎么提交百度收录
  • 网上网站怎么做/seo测试工具
  • 新疆乌鲁木齐新闻头条/关键词排名关键词优化
  • 免费软件下载app/中国seo排行榜
  • 怎么做狼视听网站/快速排名优化推广价格
  • 网站建设与管理实践实践报告/手机推广软文
  • wordpress卡蜜/谷歌seo快速排名优化方法
  • 银行外包公司面试骗局/青岛网站制作seo
  • 网站开发工程师专业好不好/广东广州疫情最新情况
  • 公司网站建设济南兴田德润厉害吗/百度广告点击软件
  • 怎么做自己的导航网站/徐州网站设计
  • 订餐网站开发流程/湖南靠谱seo优化
  • 专业做网站的公司保定/企业培训课程名称大全
  • 网站认证主体/网络公司网页设计
  • p2p网站建设多少钱/网络营销的真实案例分析
  • 怎么做门户网站设计方案/网站营销推广有哪些
  • 山东省住房城乡建设部网站/怎么建立企业网站
  • 百度收录网站之后又怎么做/潍坊关键词优化平台
  • 网站开发的热门博客/友情链接检索数据分析
  • 用wordpress建公司网站步骤/广告招商
  • Implement recovery based on PITR using dump file and binlog
  • Meta合成孔径波导全息术新进展,微美全息加速AI+AR全息技术融合稳步前行
  • 逻辑回归----银行贷款模型优化
  • 斐波那契数
  • Dify 从入门到精通(第 6/100 篇):配置你的第一个 LLM:OpenAI、Claude 和 Ollama
  • 对git 熟悉时,常用操作