Android的动画播放限制方法、存储介质、电子设备及系统与流程

文档序号:17474939发布日期:2019-04-20 06:03阅读:195来源:国知局
Android的动画播放限制方法、存储介质、电子设备及系统与流程

本发明涉及android系统的动画播放设置领域,具体涉及一种android的动画播放限制方法、存储介质、电子设备及系统。



背景技术:

在android系统的开发过程中,会经常使用到动画特效来展示界面,通常播放动画以实现特效,会占用系统较大的资源开销。现有的android系统播放动画的方法一般为:android系统收到动画执行请求(即播放动画的请求)时播放动画,该方法使用时存在以下缺陷:

上述方法使用时,如同时发送多个动画执行请求,则会播放多条动画,即会出现在一幅页面上同时播放多条动画的情形,播放动画的数量较多时,所需的系统资源开销非常大,进而极大的提高了页面的负载,造成页面卡顿的情况,页面卡顿会使得动画播放不顺畅,这不仅会降低android系统的质量,而且会严重降低用户体验。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何将android系统同时播放动画的数量,控制在android系统能够承载的范围内,以此保证android系统的质量,不会出现页面和动画播放时卡顿的情形,进而显著提高了用户体验。

为达到以上目的,本发明提供的android的动画播放限制方法,包括以下步骤:

s1:android系统创建动画执行队列,android系统收到动画执行请求时,将收到的动画执行请求加入动画执行队列,将动画执行队列中所有动画执行请求的总条数,作为待执行的动画数量n1,转到s2;

s2:android系统获取cpu的当前使用率p,根据p和n1计算得到动画数量执行上限值n,n=n1/p-n1,n取整数,转到s3;

s3:android系统获取正在执行的所有动画数量n3,当n3<n时,转到s4;

s4:android系统播放所述动画执行队列中的动画执行请求对应的动画。

在上述技术方案的基础上,s4中所述android系统播放动画的数量定义为n4,n4=n-n3。

在上述技术方案的基础上,s1中将收到的动画执行请求加入动画执行队列的流程包括:将收到的动画执行请求标记优先级后加入动画执行队列;s4的流程包括:android系统根据所述动画执行队列中的动画执行请求的优先级,播放与动画执行请求对应的动画。

本发明提供的存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述android的动画播放限制方法。

本发明提供的电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述android的动画播放限制方法。

本发明提供的android的动画播放限制系统,包括设置于android系统上的动画执行队列设置模块、动画数量执行上限值计算模块、执行动画数量监测模块和动画播放模块;

动画执行队列设置模块用于创建动画执行队列,收到动画执行请求时,将收到的动画执行请求加入动画执行队列,将动画执行队列中所有动画执行请求的总条数,作为待执行的动画数量n1,向动画数量执行上限值计算模块发送动画数量执行上限值计算信号;

动画数量执行上限值计算模块用于:收到动画数量执行上限值计算信号后,获取cpu的当前使用率p,根据p和n1计算得到动画数量执行上限值n,n=n1/p-n1,n取整数,向执行动画数量监测模块发送执行动画数量监测信号;

执行动画数量监测模块用于:收到执行动画数量监测信号后,获取正在执行的所有动画数量n3,当n3<n时,向动画播放模块发送动画播放信号;

动画播放模块用于:收到动画播放信号后,播放所述动画执行队列中的动画执行请求对应的动画。

在上述技术方案的基础上,所述动画播放模块播放动画的数量定义为n4,n4=n-n3。

在上述技术方案的基础上,所述动画执行队列设置模块将收到的动画执行请求加入动画执行队列的流程包括:将收到的动画执行请求标记优先级后加入动画执行队列;所述动画播放模块的流程包括:根据所述动画执行队列中的动画执行请求的优先级,播放与动画执行请求对应的动画。

与现有技术相比,本发明的优点在于:

参见本发明s1可知,本发明通过动画执行队列的将所有动画执行请求进行缓存,若动画执行请求无法执行需要等待时,无需在等待后重新发起,只需在动画执行队列中提取即可,其操作流程比较简单,提高了工作效率。

参见本发明s2可知,本发明在计算动画数量执行上限值时,充分考虑到了cpu的当前使用率p和待执行的动画数量n1两个因素。p代表着资源开销,在n1不变的情况下,p越大,系统的资源开销越大,此时动画数量执行上限值n越小;p越小,系统的资源开销越小,此n越大。n1代表着用户需求,在p不变的情况下,n1越大,n越大,n1越小,n越小。本发明将p和n1结合,对应着将cpu的当前使用率与用户需求相结合来计算动画数量执行上限值,因此本发明的动画数量执行上限值设置的非常合理,在符合系统的工作需求的同时匹配了用户需求。

在上述基础上,参见本发明s1至s4可知,本发明能够将android系统同时播放动画的数量,控制在cpu能够承载的范围内,以此保证android系统的质量,不会出现页面和动画播放时卡顿的情形,进而显著提高了用户体验。

(2)参见本发明s3和s4可知,本发明在能够播放动画时,不是播放一条动画,而是根据正在执行的所有动画数量,和动画数量执行上限值计算出能够播放动画的最大数量后,根据最大数量同时播放多条动画(同时播放并不是同一时刻开始播放,而是指第一条还未播放完成,第二条就已经开始播放,此时则会有2条动画正在播放这种情形),进而最大化利用了系统资源,也提高了播放质量。

(3)参见本发明s1和s4可知,本发明为动画执行队列中的每条动画执行请求均设置有优先级,进而使得能够根据优先级顺序播放动画,以此实现动画播放井然有序的效果,提高了播放质量。

附图说明

图1为本发明实施例中android的动画播放限制方法的流程图;

图2为本发明实施例中电子设备的连接框图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的android的动画播放限制方法,包括以下步骤:

s1:android系统创建动画执行队列,android系统收到动画执行请求时,将收到的动画执行请求标记优先级后加入动画执行队列,将动画执行队列中所有动画执行请求的总条数,作为待执行的动画数量n1(n1至少是1,不可能为0),转到s2。

s1中设置动画执行队列的目的为:将所有动画执行请求进行缓存,若动画执行请求无法执行需要等待时,无需在等待后重新发起,只需在动画执行队列中提取即可,其操作流程比较简单,提升了用户体验。

s2:android系统获取cpu的当前使用率p,根据p和n1计算得到动画数量执行上限值n,n=n1/p-n1,n取整数,n为非整数(即整数部分、小数部分和小数点组成的小数)时,可以按照四舍五入的方式将n取整,或者舍弃小数点之后的数值取整数,转到s3。

参见s2可知,本发明实施例在计算动画数量执行上限值时,充分考虑到了cpu的当前使用率p和待执行的动画数量n1两个因素。p代表着资源开销,在n1不变的情况下,p越大,系统的资源开销越大,此时动画数量执行上限值n越小;p越小,系统的资源开销越小,此n越大。n1代表着用户需求,在p不变的情况下,n1越大,n越大,n1越小,n越小。本发明实施例将p和n1结合,对应着将cpu的当前使用率与用户需求相结合来计算动画数量执行上限值,因此本发明实施例的动画数量执行上限值设置的非常合理,在符合系统的工作需求的同时匹配了用户需求,进而提高了用户体验。

s2中获取cpu的使用率时,调用android系统中的top命令来进行监听到,具体为:通过runtime类中的exec方法来执行linux系统中的top命令,进而调用android系统返回cpu使用率的相关信息result。通过bufferedreader类来读取result中的内容后,通过循环的方式调用bufferedreader类中的readline方法来逐行读取result中的内容信息,调用contains("%")方法来判定当前行是否有百分比的标示符,若是,则表明该行是包含了cpu使用率的相关信息的。然后对该行使用split("%")方法来分离出所有cpu使用率的相关信息,在分离出的结果数组中的一个数据就是android系统当前的cpu使用率。

s3:android系统获取正在执行的所有动画数量n3,判断是否n3<n,若是,转到s4,否则证明正在执行的所有动画数量以达到动画数量执行上限值,此时动画执行请求无法被执行,需要等待正在执行的动画播完完成后重新执行s3。

s4:android系统播放s1中动画执行队列的动画执行请求对应的动画:android系统根据s1中动画执行队列中的动画执行请求的优先级,播放与动画执行请求对应的动画(即优先级高的先播放,优先级低的后播放),播放的动画数量n4=n-n3。

参见s1和s4可知,本发明实施例为动画执行队列中的每条动画执行请求均设置有优先级,进而使得能够根据优先级顺序播放动画,以此实现动画播放井然有序的效果,提高了播放质量。与此同时,参见s3和s4可知,本发明实施例在能够播放动画时,不是播放一条动画,而是根据正在执行的所有动画数量,和动画数量执行上限值计算出能够播放动画的最大数量后,根据最大数量同时播放多条动画(同时播放并不是同一时刻开始播放,而是指第一条还未播放完成,第二条就已经开始播放,此时则会有2条动画正在播放这种情形),进而最大化利用了系统资源,也提高了播放质量。

参见s1至s4可知,本发明实施例能够将android系统同时播放动画的数量,控制在cpu能够承载的范围内,以此保证android系统的质量,不会出现页面和动画播放时卡顿的情形,进而显著提高了用户体验。

本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述android的动画播放限制方法。需要说明的是,所述存储介质包括u盘、移动硬盘、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。

参见图2所示,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述android的动画播放限制方法。

本发明实施例中的android的动画播放限制系统,包括设置于android系统上的动画执行队列设置模块、动画数量执行上限值计算模块、执行动画数量监测模块和动画播放模块。

动画执行队列设置模块用于创建动画执行队列,收到动画执行请求时,将收到的动画执行请求加入动画执行队列,将动画执行队列中所有动画执行请求的总条数,作为待执行的动画数量n1,向动画数量执行上限值计算模块发送动画数量执行上限值计算信号。

动画数量执行上限值计算模块用于:收到动画数量执行上限值计算信号后,获取cpu的当前使用率p,根据p和n1计算得到动画数量执行上限值n,n=n1/p-n1,n取整数,向执行动画数量监测模块发送执行动画数量监测信号。

执行动画数量监测模块用于:收到执行动画数量监测信号后,获取正在执行的所有动画数量n3,当n3<n时,向动画播放模块发送动画播放信号,当n3≥n时,重新开始工作。

动画播放模块用于:收到动画播放信号后,播放所述动画执行队列中的动画执行请求对应的动画:将收到的动画执行请求标记优先级后加入动画执行队列;所述动画播放模块的流程包括:根据所述动画执行队列中的动画执行请求的优先级,播放与动画执行请求对应的动画;播放动画的数量定义为n4,n4=n-n3。

需要说明的是:本发明实施例提供的系统在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1