Android Fingerprint 通过提高CPU主频及绑定大核提高 Android 手机指纹识别性能

本文主要是介绍Android Fingerprint 通过提高CPU主频及绑定大核提高 Android 手机指纹识别性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过提高CPU主频及绑定大核提高 Android 手机指纹识别性能

背景

各大厂商追求手机指纹解锁以及识别快速流畅性,提升用户体验。对指纹解锁提出给快的要求,因此想办法从三个角度优化指纹识别的速度,提升手机解锁以及是指纹识别流畅性。以自己的经验做个marker。

一,提高指纹通讯速率

目前部分指纹解锁速率最高可达24MHz/s, 单提高spi 速率可能会导致通信失败,会展传输数据校验失败,需要配置指纹于主控CPU SPI设置相关。

关于高通平台对部分指纹IC的SPI通讯会造成数据移位的问题,需要对高通平台的

 ../core/settings/buses/spi/qupv3/config/s6150/tz/spi_devcfg.c 

文件中miso_sampling_ctrl_set 进行设定。对于AndroidO qsee4.5 来说直接改为TURE就好了。对于AndroidP或者Q qsee5.0 来说这个直有0~7共8个值,需要逐一验证。

二,绑定大核

现在的CPU的大部分是多核,手机CPU一般是8核,有海思的2+2+4的形式(4个大核+4个小核),也有高通1+3+4或者4+4(4个大核+4个小核))的形式,还有联发科2+6的形式存在(6个大核+2个小核), 一般来讲,大核的主频会比小核的主频会高一点。
相同主频情况下,绑定大核的进程执行会相比没有绑定大核运行更快。

绑定大核的方法:各个平台的绑定大核方法由各大平台商或者TEE供应商提供。下面以AndroidQ MT6785 豆荚sdk_300为例:
豆荚绑定大核的方法是找到teei_client_main.c 定义好如下两个宏编译后验证OK,示例如下:

  alps/kernel-4.14/drivers/misc/mediatek/teei/300/tz_driver/teei_client_main.c#define TEEI_SWITCH_BIG_CORE#define TZ_PREFER_BIND_CORE (7)

确认当前TEE绑定的CPU:

  adb shell cat sys/bus/platform/devices/utos/current_bind_cpu

下面面执行的结果位为豆荚TEE绑定在核6上面,二而6又是MT6785的一个大核,这样说明绑定大核成功。
上面执行的结果位为豆荚TEE绑定在核6上面,二而6又是MT6785的一个大核,这样说明绑定大核成功。

部分平台CPU大小核以及主频
表1,部分平台CPU大小核以及主频

三,提高CPU主频

CPU主频一般不会达到最高主频运行,因此在在执行指纹识别相关操作之前可以用平台相关设置函数,将主频设定成改cpu最高主频。这样会提高代码运算速度。
提频的方法待续。

确认指定cpu当前的工作频率:

adb shell cat    sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freqC:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
774000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
500000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq
500000
C:\Users\11599>adb shell cat sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq
500000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_cur_freq
500000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu5/cpufreq/cpuinfo_cur_freq
500000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu6/cpufreq/cpuinfo_cur_freq
774000
C:\Users\11599>adb shell cat sys/devices/system/cpu/cpu7/cpufreq/cpuinfo_cur_freq
774000

确认指定cpu的最高工作频率,与上面的当前工作频率比较,是否工作在最高主频:

adb shell cat    sys/devices/system/cpu/cpu7/cpufreq/cpuinfo_max_freqC:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu7/cpufreq/cpuinfo_max_freq
2050000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu6/cpufreq/cpuinfo_max_freq
2050000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu5/cpufreq/cpuinfo_max_freq
2000000
C:\Users\11599>adb shell cat    sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
2000000

这篇关于Android Fingerprint 通过提高CPU主频及绑定大核提高 Android 手机指纹识别性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/275917

相关文章

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.