一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种开机动画的退出方法、存储介质及终端设备与流程

2021-10-22 22:23:00 来源:中国专利 TAG:终端设备 开机 退出 特别 计算机


1.本发明涉及计算机技术领域,特别涉及一种开机动画的退出方法、存储介质及终端设备。


背景技术:

2.在android设备启动的时候,都会有一个开机动画,目的是让整个系统启动,在这个过程中,由于系统原因,或厂商客制化的逻辑漏洞的原因,会导致系统一直在开机动画处,从而不能进入系统的可操作界面;在android原生流程中,开机动画的退出流程,主要是通过检测动画退出属性(service.bootanim.exit)的属性值来确定动画是否需要退出,但是该操作与动画的播放过程是同步的,这样就存在一个问题,当开机动画卡在某个流程中的时候,就无法检测到service.bootanim.exit属性的值,即,开机动画掉入死循环,从而开机动画无法正常退出。


技术实现要素:

3.针对现有技术的不足,本发明提供一种开机动画的退出方法、存储介质及终端设备,以解决android的开机动画无法正常退出的问题。
4.本发明所采用的技术方案如下:
5.一种开机动画的退出方法,其包括:
6.当开机动画需要退出时,检测所述开机动画的退出属性值;
7.若没有检测到所述退出属性值,则根据预设的退出动画指令实现所述开机动画的退出。
8.所述开机动画的退出方法,其中,所述预设的退出动画指令为ctl.stop。
9.所述开机动画的退出方法,其中,所述开机动画的退出方法还包括:
10.若检测到所述动画的退出属性值,则退出所述开机动画。
11.所述开机动画的退出方法,其中,所述若检测到所述动画的退出属性值,则退出所述开机动画具体为:
12.若检测到所述动画的退出属性值,则设置所述动画的退出属性值,以退出所述开机动画。
13.所述开机动画的退出方法,其中,所述开机动画的退出方法还包括:
14.当终端设备启动时,检测开机动画的运行状态;
15.根据所述开机动画的运行状态确定所述开机动画是否退出。
16.所述开机动画的退出方法,其中,所述当终端设备启动时,检测开机动画的运行状态具体包括:
17.当终端设备启动时,检测动画运行状态属性的值;
18.若所述动画运行状态属性的值对应的开机动画的状态为启动,则开机动画处于运行状态;
19.若所述动画运行状态属性的值对应的开机动画的状态为停止,则开机动画处于退出状态。
20.所述开机动画的退出方法,其中,所述当终端设备启动时,检测动画运行状态属性的值具体包括:
21.当终端设备启动时,调用预设的应用周期函数;
22.在所述预设的应用周期函数中获取动画运行状态属性的值。
23.所述开机动画的退出方法,其中,所述根据所述开机动画的运行状态确定所述开机动画是否退出具体包括:
24.若所述动画运行状态属性的值对应的开机动画的状态为启动,则退出所述开机动画;
25.若所述动画运行状态属性的值对应的开机动画的状态为停止,则代表所述开机动画已经退出,此时不用执行退出开机动画的操作。
26.所述开机动画的退出方法,其中,所述若所述动画运行状态属性的值对应的开机动画的状态为启动,则退出所述开机动画具体为:
27.若所述动画运行状态属性的值对应的开机动画的状态为启动,则退出所述开机动画,则调用ctl.stop指令退出所述开机动画。
28.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任意一项所述的开机动画的退出方法中的步骤。
29.一种终端设备,其包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上任意一项所述的开机动画的退出方法中的步骤。
30.有益效果:与现有技术相比,本发明提供了一种开机动画的退出方法、存储介质及终端设备,所述方法包括:当开机动画需要退出时,检测所述开机动画的退出属性值;若没有检测到所述退出属性值,则根据预设的退出动画指令实现所述开机动画的退出。通过本发明,避免了由于系统,或厂商客制化的逻辑漏洞的原因而导致终端设备启动时一直在运行开机动画的问题,本发明当未检测到动画退出属性的值时,通过预设的退出动画指令实现所述开机动画的退出,从而避免了开机动画无法正常退出的问题,提高用户的体验。
附图说明
31.图1为本发明提供的开机动画的退出方法的流程图。
32.图2为本发明提供的开机动画的退出方法的另一流程图。
33.图3为本发明提供的终端设备的结构原理图。
具体实施方式
34.本发明提供一种开机动画的退出方法、存储介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
35.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一
个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
36.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
37.下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
38.本实施例提供了一种开机动画的退出方法,如图1所示,所述方法包括:
39.s100、当开机动画需要退出时,检测所述开机动画的退出属性值。
40.具体地,本发明是基于android系统的终端设备,当终端设备启动时,终端设备会相应的启动开机动画。但是,由于系统原因或厂商客制化的逻辑漏洞的原因,会导致一直在开机动画处,从而使终端设备不能进入可操作界面,因此会存在开机动画可能存在无法正常退出的情况。本发明为了保障用户能够正常使用,提出的一种开机动画退出的优化方案。
41.进一步,在android原生流程中,开机动画的退出,是通过在开机动画中检测动画退出属性的值来确定开机动画是否需要退出。所述动画退出属性具体为service.bootanim.exit,也就是说,通过检测service.bootanim.exit属性值确定动画是否需要退出,所述service.bootanim.exit属性是android原生里存在的,该属性为0,说明系统还没有启动完成,开机动画需要一直播放;当该属性变为1,则说明系统已经启动完成,开机动画可以退出。
42.进一步,surfaceflinger是android绘图进程,android系统的开机动画是由surfaceflinger启动的,当系统启动完成后,会回调到surfaceflinger的bootfinished方法中,所述bootfinished是surfaceflinger里面的一个结束动画方法,可以该方法中会将动画退出属性的值进行修改。也就是说,若bootfinished方法中service.bootanim.exit的值为1则代表动画退出状态;若bootfinished方法中service.bootanim.exit的值为0则代表动画运行状态。
43.s200、若没有检测到所述退出属性值,则根据预设的退出动画指令实现所述开机动画的退出。
44.具体地,由于在android原生流程中,开机动画的退出,是通过在开机动画中检测service.bootanim.exit属性的值确定动画是否需要退出。但是该操作与动画的播放过程是同步的,这样就存在一个问题,当开机动画卡在某个流程中的时候,就无法去检测service.bootanim.exit属性的值,就会使开机动画无法正常退出。因此本发明当没有检测到所述service.bootanim.exit属性的值,则在bootfinished方法中添加预设的退出动画指令,以实现所述开机动画的退出。本实施例中,所述预设的退出动画指令为ctl.stop,且所述退出动画指令具体具体过程为property_set("ctl.stop","bootanim"),其中,所述开
机动画都会通过ctl.start的方式启动,因此,开机动画可以动过ctl.stop的方式来结束,所述ctl.stop代表停止某个服务,因此,通过该指令可以实现停止开机动画的的运行,可以实现开机动画的退出,从而避免开机动画在运行时给手机带来的卡顿,影响用户的使用。
45.进一步,在本实施例的一个实现方式中,所述开机动画的退出方法还包括:
46.s300、若检测到所述动画的退出属性值,则退出所述开机动画
47.具体地,若检测到所述动画的退出属性值,则退出所述开机动画具体为:若检测到所述动画的退出属性值,则设置所述动画的退出属性值,以退出所述开机动画。也就是说,本发明当检测到service.bootanim.exit属性的值,则退出所述开机动画具体为:若检测到所述service.bootanim.exit属性的值,则可以在bootfinished方法中会将service.bootanim.exit属性的值设置为1,从而来退出开机动画。
48.在本实施例的一个实现方式中,如图2所示,图2为本发明提供的开机动画的退出方法的另一流程图。所述开机动画的退出方法还包括:
49.s10、当终端设备启动时,检测开机动画的运行状态。
50.具体地,本发明还可以根据开机动画的运行状态来判断是否来退出开机动画,相应的,所述当终端设备启动时,检测开机动画的运行状态具体包括:
51.s11、当终端设备启动时,检测动画运行状态属性的值;
52.s12、若所述动画运行状态属性的值对应的开机动画的状态为启动,则开机动画处于运行状态;
53.s13、若所述动画运行状态属性的值对应的开机动画的状态为停止,则开机动画处于退出状态。
54.具体地,本发明通过init.svc.bootanim属性的值来确定动画的运行状态,所述init.svc.bootanim属性用于检测开机动画是否还在运行,在android系统中,每次启动应用程序,都会检测应用程序的activity的状态,因此本实施例中,当开机启动第一个应用程序时,来判断开机动画是否在运行;所述检测应用程序的activity的状态具体为:安卓平台底层的主线程通过activitymanager检测应用的activity的状态,当检测到activity开始执行onresume方法时,获取init.svc.bootanim属性的值。若所述动画运行状态属性的值对应的开机动画的状态为启动(running),则开机动画处于运行状态;若所述动画运行状态属性的值对应的开机动画的状态为停止(stopped),则开机动画处于退出状态。
55.进一步,本实施例的一个实现方式中,所述当终端设备启动时,检测动画运行状态属性的值具体包括:
56.s111、当终端设备启动时,调用预设的应用周期函数;
57.s112、在所述预设的应用周期函数中获取动画运行状态属性的值。
58.具体地,activitystack是一个类,所述预设的应用周期函数是这个类中的方法,本实施例中,所述预设的应用周期函数为esumetopactivityinnerlocked,进一步,当检测到activity开始执行onresume方法时,由于此时会调用activitystack的resumetopactivityinnerlockedd方法,因此我们可以在该方法中检查init.svc.bootanim属性的值,并根据检查到的init.svc.bootanim属性的值确定开机动画是否退出。
59.s20、根据所述开机动画的运行状态确定所述开机动画是否退出。
60.本实施例中,根据所述开机动画的运行状态确定所述开机动画是否退出具体包
括:
61.s21、若所述动画运行状态属性的值对应的开机动画的状态为启动,则退出所述开机动画;
62.s22、若所述动画运行状态属性的值对应的开机动画的状态为停止,则代表所述开机动画已经退出,此时不用执行退出开机动画的操作。
63.具体地,若所述init.svc.bootanim属性的值对应的开机动画的状态为启动(running),则代表终端设备的开机动画仍处于运行状态,则需要退出所述开机动画,其具体过程包括:若所述动画运行状态属性的值对应的开机动画的状态为启动(running),则调用ctl.stop指令退出所述开机动画。也就是说,若所述init.svc.bootanim属性的值对应的开机动画的状态为启动(running),则调用ctl.stop退出所述开机动画。相应的,如果init.svc.bootanim属性的值对应的开机动画的状态为停止(stopped),则代表所述开机动画已经退出,此时不用执行退出开机动画的操作。
64.综上所述,本发明提供了一种开机动画的退出方法,所述方法包括:当开机动画需要退出时,检测所述开机动画的退出属性值;若没有检测到所述退出属性值,则根据预设的退出动画指令实现所述开机动画的退出。通过本发明,避免了由于系统,或厂商客制化的逻辑漏洞的原因而导致终端设备启动时一直在运行开机动画的问题,本发明当未检测到动画退出属性的值时,通过预设的退出动画指令实现所述开机动画的退出,从而避免了开机动画无法正常退出的问题,提高用户的体验。
65.基于上述开机动画的退出方法,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的开机动画的退出方法中的步骤。
66.基于上述开机动画的退出方法,本发明还提供了一种终端设备,如图3所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(communications interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
67.此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
68.存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器30通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
69.存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
70.此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在
上述方法中已经详细说明,在这里就不再一一陈述。
71.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜