一、本专利技术所属的领域:
本发明属于体感手势领域,尤其涉及到一种提升黑屏手势响应速度的技术方法。
二、相关技术背景
2.1 黑屏手势功能的背景介绍:
黑屏手势是目前智能手机一个独具特色又具有科技未来感的功能,即在手机待机黑屏的情况下支持屏幕手势操作,用户可通过手机内部设置的手势来直接唤醒手机的某项功能或相对应的软件。
比如我司目前黑屏手势支持暗屏下双击、C、M、O、e、V、S、Z、左滑、右滑、上滑、下滑等的手势识别并打开预设置的某项功能或打开相对应的软件。
2.2 现有黑屏手势功能的存在的技术缺点:
1.启动黑屏手势程序速度慢;
2.黑屏手势解除锁屏界面速度慢,容易导致出现闪屏现象,影响用户体验;
3.黑屏动画不流畅;
4.软件架构耦合严重,没有做到解耦形成独立功能模块的设计;
基于上述描述,这里提出一个提升黑屏手势响应速度的软件架构设计方法,旨在提供一个快速响应的黑屏手势功能和益于后续维护的功能设计思路,使黑屏手势功能不仅带来更好的用户体验,同时也便于软件后续维护和管理。
三、本发明技术方案的详细阐述
1、本发明提供的完整技术方案
本方案实现背景:对我司已有的黑屏手势速度慢问题进行改进和修复,为了方便理解这里重点指出旧方案存在速度慢的原因。
一、旧黑屏手势实现方案描述及速度慢原因:
A.描述:(见旧方案实现流程图-附图1)
每次黑屏手势事件到来就创建黑屏手势程序,在该程序内调用系统的亮屏和解锁的功能,等到屏幕亮屏和解锁完成后,启动手势动画模块,动画完成执行对应的预设置指令功能,并退出该程序。
B.速度慢原因:
1.创建黑屏手势程序耗时多;
2.解除锁屏耗时多;
以下为我司X型号机器的测试数据结果:
测试项目 数据1 数据2 数据3 平均耗时
创建程序耗时 1400ms 1300ms 1400ms 1366ms
解锁耗时 374ms 373ms 318ms 355ms
由于在Android操作系统中创建程序经历onCreate()、onStart()、onResume()导致启动一个程序需要消耗一定时间,且程序大小和复杂度越高,启动所需时间会越多。创建耗时导致用户画完手势等了1.3秒后程序才执行亮屏和解锁功能,用户无形中等待了1.3秒。
如果亮屏后没有解除锁屏界面,用户看到是锁屏界面而非手势动画界面,所以必须调用锁屏功能,若亮屏后,过了300ms才解除锁屏成功,用户会短暂看到锁屏界面,然后再看到手势动画界面。这种现象称之为闪屏,该现象会严重用户体验,尤其是强迫症性用户,所以必须对过多的解锁耗时进行优化。
上述2个现象可以导致用户画完黑屏手势实际等待了1300ms~1600ms才看到手势动画,会引起黑屏手势速度慢的体验。故基于上述的2个耗时老虎,进行下本发明专利的方案实施。
二、提升黑屏手势响应速度的方案如下:
1.方案流程图,见附图2
2.方案描述:
A、黑屏手势事件到来
B、同时进行下面2件事情
1.调用快速解锁模块
备注:解锁模块内部工作原理:跨进程调用锁屏服务,执行移除锁屏界面和回调系统解锁完成的信号。该方法比系统解锁函数快的原因是绕开系统接口的层层调用关系,一步到位直接执行移除锁屏界面和回调系统解锁完成信号;
这里我们得到快速解锁模块的解锁所需时间数据
解锁耗时 数据1 数据2 数据3 平均耗时 结论
优化前 374ms 373ms 318ms 355ms 优化后速度提升306ms
优化后 36ms 57ms 55ms 49ms
使用本方案解锁时间大幅度缩短,且为已知最快速解除锁屏的方案。即因亮屏导致解锁界面仍存在或闪屏的现象消失,因为一有手势事件到来,60ms内即可完成解锁流程,黑屏手势对解锁功能业界做法是调用系统函数接口,快速解锁时本发明专利的创新点之一。
2.调用黑屏手势跨进程服务
备注:黑屏手势跨进程服务为开机时判断黑屏手势设置开启时启动,关闭时不启动,这里使用跨进程服务调用的目的在于取代就方案中非常耗时的创建程序方案,便于快速执行黑屏手势接下来的代码流程,而非等待1.3秒后才可以执行。
这里我们也测算了调用跨进程服务和创建程序的耗时数据
项目 数据1 数据2 数据3 平均耗时 结论
创建程序 1400ms 1300ms 1400ms 1366ms 优化后速度提升1300ms
调用服务 4ms 9ms 6ms 6ms
上述彻底解决了黑屏手势速度慢的问题,收到黑屏手势事件以前需要等待1.3秒时间才能执行黑屏手势余下流程,使用本发明方案可以在10ms内就快速响应执行黑屏手势余下流程。响应速度在我司的X型号提升1000~1300ms的速度,用户画完手势一下子就看到手势动画并打开对应的功能了,带来用户体验提升非常有效果!
其中业界执行黑屏手势流程主要是创建程序或者基于锁屏模块开发,存在创建耗时或基于锁屏代码不灵活,本黑屏手势跨进程服务的建立和使用时本发明专利的创新点之一
C、黑屏手势跨进程服务完成下面2件事情,由于执行软件消耗时间短,无需考虑先后顺序
1.黑屏手势界面窗口设置可见
备注:此时用户虽然看不到界面但是屏幕已经显示手势界面,只是手势界面动画开始未执行
2.调用系统亮屏功能
D、等待系统亮屏和解锁完成,后执行手势动画模块
1.手势动画模块主要进行不同手势对应的图片组合,间隔时间更换图片,即实现动画效果
2.其中手势对应的图片越多,加上合理的间隔时间,播放的动画流畅度和用户体验会大大提升。在优化本速度中,我们新增了手势动画图片和调整了间隔时间,例如旧方案中画字母C动画,原先是10张图,每张图间隔80ms进行切换,即总动画时间800ms,在新方案中我们通过准备20张图每张图间隔50ms,即总动画时间1000ms,但是实际体验不因为多出200ms而让用户感觉速度慢,由于动画已执行,放到用户觉得动画更加细腻和字母完成更流畅的感觉。所以本发明实例我们建议一定数量的手势图片和间隔时间能启动改善用户体验的作用,这里的建议可以认为是本方案专利的创新思想之一。
E、动画执行完毕,手势界面窗口设置为不可见
F、执行手势动画对应的预设置指令,完成本次黑屏手势触发流程
G、黑屏手势跨进程服务继续保持后台运行,直到下一次手势事件到来进行中断并调用
3.关于软件架构设计创新
对于开发人员尤其是系统二次开发人员来说,减少对系统原生软件耦合非常有必要,因为Android系统软件迭代速度快,如果代码基于系统原有模块进行开发,一旦代码更新了对移植和维护工作带来很大麻烦,且一有问题调试也及其不方便。
现有黑屏手势技术方案中有些方案是基于锁屏流程原理进行开发,即黑屏手势触发事件通过锁屏流程传递完成黑屏手势逻辑,该方案基于系统锁屏模块进行开发,缺点是软件耦合性差依赖锁屏模块,导致原生系统软件可能出现版本迭代而兼容性差。本方案在黑屏手势模块建立自己的跨进程服务只接受黑屏手势触发事件及处理手势全部流程,即使后续软件有UI变更和bug修改只需要在黑屏手势模块维护即可,不需在锁屏模块进行修改,做到软件解耦的软件框架设计,该黑屏手势软件解耦的思想是本发明专利的创新点之一
2、本发明技术方案带来的有益效果
本发明黑屏速度提升方案可以带来下面效果
1.黑屏手势响应速度相对现有技术使用启动程序的相关方案可以带来1000~1300ms的速度提升;
2.本快速解锁模块所需要的时间相对于现有技术使用系统解锁功能的相关方案可以带来300ms的速度提升,属于已知最快的解锁方式,因为系统解锁功能需要执行层层的调用关系才能执行到本快速解锁模块的核心步骤;
3.独立模块的软件设计相对于现有技术基于锁屏原理相关方案,在响应速度、解锁效率、代码解耦3方面都全面优于基于锁屏原理的方案,便于开发人员的软件维护和管理;
4.动画模块合理的手势动画图片数量和间隔,可以改善视觉流畅度,这些细节的充分考虑,可以更好的提高用户体验。
基于上述阐述,使用本发明技术方案可以使黑屏手势达到几乎实时的响应,屏幕亮起即迅速执行手势动画,执行对应预设置指令。整个过程快速、连贯、流程,真正做到黑屏待机下通过手势快捷响应,让这个功能更加具有实用性。黑屏手势核心思想在于速度,即使暗屏下也能快速响应,方便用户智能化操作手势,速度提高,不仅增加用户的好感,而且也适合产品亮点的宣传。解耦化的框架设计不仅使代码更加独立,而且使维护和管理更加简单了。
四、提供本发明创造的附图:
旧方案实现流程图-附图1
附图2
五、本发明的技术关键点或欲保护点是什么
1.黑屏手势跨进程服务的实时响应技术;
2.快速解锁的技术;
3.合理手势动画图片数量和间隔时间的思想;
4.解耦式软件架构设计;