CN113176889A - 程序更新方法、装置和电子设备 - Google Patents

程序更新方法、装置和电子设备 Download PDF

Info

Publication number
CN113176889A
CN113176889A CN202110471304.6A CN202110471304A CN113176889A CN 113176889 A CN113176889 A CN 113176889A CN 202110471304 A CN202110471304 A CN 202110471304A CN 113176889 A CN113176889 A CN 113176889A
Authority
CN
China
Prior art keywords
program
updated
downloading
running state
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110471304.6A
Other languages
English (en)
Inventor
邹杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202110471304.6A priority Critical patent/CN113176889A/zh
Publication of CN113176889A publication Critical patent/CN113176889A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种程序更新方法、装置和电子设备,属于数据处理技术领域,该程序更新方法包括:获取程序列表,所述程序列表中包括待更新程序;下载所述待更新程序对应的数据更新包;在所述待更新程序的当前运行状态为未运行的情况下,基于所述数据更新包,安装所述待更新程序。

Description

程序更新方法、装置和电子设备
技术领域
本申请属于数据处理技术领域,具体涉及一种程序更新方法、装置和电子设备。
背景技术
随着用户需求的不断增加,应用升级的次数越来越多,目前,用户对终端应用的更新基本是采用终端上安装的应用商店更新,但是在待更新程序过程中,若用户正在使用的待更新的应用,则应用会由于安装更新而异常退出,用户不得不等待应用安装完成后才能继续应用,甚至丢失用户信息。
发明内容
本申请实施例的目的是提供一种程序更新方法、装置和电子设备,能够解决由于应用程序更新而导致正在使用的应用异常退出的问题。
第一方面,本申请实施例提供了一种程序更新方法,该方法包括:获取程序列表,所述程序列表中包括待更新程序;下载所述待更新程序对应的数据更新包;在所述待更新程序的当前运行状态为未运行的情况下,基于所述数据更新包,安装所述待更新程序。
第二方面,本申请实施例提供了一种程序更新装置,用于执行第一方面中所述的方法,该装置包括:列表获取模块,用于获取程序列表,所述程序列表中包括待更新程序;下载模块,用于下载与所述待更新程序对应的数据更新包;安装模块,用于获取所述待更新程序的当前运行状态,确定所述运行状态为未运行的情况下,根据所述数据更新包安装对应的所述待更新程序。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,通过获取程序列表,逐个下载与程序列表中的待更新程序的对应数据更新包,在下载数据更新包之后通过获取待更新程序的当前运行状态来判断应用程序是否正在运行,在待更新程序的当前运行状态为未运行的情况下,才安装待更新程序,从而能够避免因更新程序导致用户无法正常使用当前正在运行中的程序。
附图说明
图1是本申请实施例提供的一种程序更新方法的流程图;
图2是本申请实施例提供的一种确定程序列表中待更新程序下载顺序的流程示意图;
图3是本申请实施例提供的一种程序更新装置的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图;
图5是实现本申请实施例的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的程序更新方法进行详细地说明。
如图1所示,图1是本申请实施例提供的一种程序更新方法,该方法可以应用于电子设备中,该电子设备可以为手机、平板电脑、笔记本电脑等。如图1所示,该方法可以包括步骤1100-步骤1300,以下予以详细说明。
步骤1100、获取程序列表,程序列表中包括待更新程序。
所述待更新程序可以是安装在电子设备上的应用程序,例如手机上的应用APP,也可以是电脑上的软件,此处不做特殊限制。
在一个可选的例子中,待更新程序的获取方式可以包括:获取电子设备上所有程序的当前版本号和对应程序的最新版本号,对比该当前版本号和最新版本号,若最新版本号大于当前版本号,则说明该应用程序需要更新,并将该程序添加到程序列表中。例如,通过手机上安装的应用商店APP对手机上所有应用的版本号进行检索,对比当前应用版本号与应用商店APP上架的对应应用的版本号,在上架应用版本号大于当前应用版本号的情况下,将该应用添加到程序列表中,以生成程序列表。
由此可知,程序列表为所有待更新程序的集合,程序列表中的数据可以包含用户ID、程序名称以及程序对应的包版本号等。其中,在处理获取程序列表的情况下,待更新程序在程序列表中的顺序可以按照待更新程序加入程序列表的时间先后顺序,也可以按照待更新程序的大小,在此不做特殊限定。
在步骤1100之后,执行步骤1200,下载所述待更新程序对应的数据更新包。
具体来讲,对于一个待更新的程序来说,首先要获取其更新数据,再用该更新数据替换当前的程序版本对应的数据,以实现程序功能的升级。因此,需要下载每一待更新程序对应的数据更新包。
需要说明的是,对于一个待更新的程序,在下载其数据更新包的情况下,由于数据更新包只是一个新的数据包,不会对该程序本身进行更改,所以不会对程序的运行产生影响,在利用数据更新包更新程序的情况下,才会中止程序的运行,对程序本身进行更新。
因此,为了避免由于更新导致程序在运行过程中被迫退出的情况,在步骤1200之后,执行步骤1300,在所述待更新程序的当前运行状态为未运行的情况下,基于所述数据更新包,安装所述待更新程序。
对于待更新程序的当前运行状态可以采用直接监测程序运行状态的方式,比如获取终端设备的运行数据,通过运行数据获取程序ID,来判断对应的程序是否正在运行。
对于待更新程序的当前运行状态也可以采用监测终端设备的运行状态的方式,例如在程序列表中的待更新程序的数据更新包处于后台下载中或均下载完毕后,获取终端设备的运行状态,当终端设备处于锁屏状态的情况下,则表明用户当前未使用终端设备的程序,则判断终端对应的待更新程序处于未运行状态。
需要说明的是,上述直接监测程序运行状态的方式和采用监测终端设备的运行状态的方式也可以相结合来获取待更新程序的当前运行状态,例如,先检测终端设备的运行状态,再监测程序运行状态,以适应程序处于后台运行的场景。例如音乐播放软件在手机锁屏状态下在后台播放音乐的场景。
在根据待更新程序的运行状态确定待更新程序处于未运行状态的情况下,说明此时用户并未使用该程序,是基于数据更新包安装待更新程序的较佳时机。在一个可选的例子中,用户也可以通过自定义设置,使程序列表中的待更新程序在一个固定的时间段进行统一更新,例如,将程序列表的更新时间设置在夜间。
另外,在确定待更新程序的运行状态处于运行状态的情况下,延迟安装所述待更新程序。例如,在下载待更新程序的数据更新包之后,检测到该程序正在运行中,那么表征此时安装该程序会造成闪退,因此,本实施例采用延迟安装所述待更新程序的方式,来避免安装带来的闪退。同时持续监测该待更新程序的运行状态,直至检测到该待更新程序处于关闭状态时,再基于数据安装包安装该程序。
具体地,延迟安装的方式可以采用调节该待安装的程序在程序列表中的顺序,例如,将待安装的程序在程序列表中的顺序从当前的第一列移动到最后一列。直至检测到该待安装的程序处于未运行状态后,基于数据安装包安装该程序。
基于上述方式对程序列表中的所有待更新程序进行数据更新包的下载和程序的安装,在安装完成后,则将对应安装完成的程序移除程序列表,直至程序列表中所有的待更新程序均被更新完毕。
以上,对如何在程序的更新过程中,通过待更新程序的运行状态来确定安装时机进行了说明,在上述步骤1100-步骤1300的过程中,将程序更新的过程分为下载和安装两个完全分离的步骤,在下载待更新程序的数据更新包之后,确定待更新程序处于未运行状态的情况下,才基于数据更新包安装待更新程序,从而不影响程序的正常使用。
具体来讲,每个安装在终端设备上的程序其使用的时间和概率是不一样的,例如,大多数用户每天都要使用微信,而只有在需要出行的时候才会打开订票软件,对于使用总时间和次数较少的程序,其在当下被使用的概率也很小,那么,就可以通过优先更新此类程序,来减少在下载数据更新包后,被延迟安装的程序数量,提高更新效率。
区别与直接对程序列表中的所有待更新程序进行数据更新包的下载,本实施例在获取程序列表之后,通过对程序列表中的待更新程序进行排列,以使最近最少被使用的程序对应的数据更新包被优先下载。
其中,待更新程序的个数为N,N为大于1的整数,如图2所示,本实施例对程序列表的排序方法包括步骤1101~1103,需要说明的是,N也可以等于1,当N等于1的情况下,则可以无需排序,直接通过上述步骤1200~1300进行更新。
具体地,下面对程序列表的排序方法进行说明:
步骤1101、获取每个待更新程序的历史使用数据。
在本申请实施例中,上述历史使用数据包括预设时间段内的历史使用时间和历史使用次数,历史使用时间包括对应程序每一次被启动的时间和运行时长,例如,在一天24小时内,某一程序的首次启动时间为早上8点,使用时长为1小时。在一天24小时内,该程序的历史使用次数为3次,以记录终端设备上每一程序在一个大周期内的使用情况。其中历史使用次数还可以是当前时间段前后一定范围内应用的使用次数,以体现用户在该时间段使用程序的习惯,例如在当前更新时间点前后1小时的范围内。
步骤1102、根据所述历史使用数据,确定每个待更新程序的下载顺序。
在本申请实施例中,上述步骤1102可通过两种方式来实现:
第一种方式:基于每个待更新程序的历史使用时间和历史使用次数,确定每个待更新程序的下载优先级;根据每个待更新程序的下载优先级,确定每个待更新程序的下载顺序。
其中,所述下载优先级分别与历史使用时间和所述历史使用次数负相关;也就是说应用的历史使用时间越短,下载优先级的评分越高,历史使用次数越少,下载优先级的评分越高,从而确保最近最少被使用且该段时间被使用次数最少的应用优先被下载更新。
例如,A程序在当前时间段内被使用的次数为1,B程序在当前时间段内的使用次数为0,那么,则可以确定B程序的下载优先级大于A程序的下载优先级,由此可以确定相比于A程序的下载顺序,B程序的下载顺序靠前。又例如,A程序在当前时间段内被使用的次数为1,B程序在当前时间段内的使用次数也为1,但是A程序的历史使用时间相比在当前时间点间隔10分钟,B程序的历史使用时间相比在当前时间点间隔20分钟,那么表征A程序在当前时间点被使用的概率较大,B程序在当前时间点被使用的概率较小,那么此时更新B程序对用户的影响概率较小,则确定B程序的下载优先级大于A程序的下载优先级,由此可以确定相比于A程序的下载顺序,B程序的下载顺序靠前。
由于存在同一个时间点同时存在多个程序运行的情况,以及在一个预设时间段内多个程序的使用次数相同但是使用时间不同的情况,因此,在本实施例中,通过为每个待更新程序的历史使用时间和历史使用次数设置权重来确定每个待更新程序的下载优先级,以得到基于历史使用时间和历史使用次数的最优排序。
具体地,获取每个待更新程序的历史使用时间的第一权重系数和历史使用次数的第二权重系数;根据每个待更新程序的历史使用时间、历史使用次数、所述第一权重系数和所述第二权重系数,计算每个待更新程序的下载优先级。
其中,为了提高更新效率,本实施例中每个待更新程序的历史使用时间的第一权重系数和历史使用次数的第二权重系数对应的是整个程序列表的权重系数,也就是说在对程序列表进行排序时,该程序列表中所有的待更新程序的历史使用时间的第一权重系数对应的值为同一个值,比如系统默认值0.5,其中,第一权重系数和第二权重系数的和等于1。对应的,所有的待更新程序的历史使用次数的第二权重系数对应的值为0.5,此时,待更新程序的顺序取决于历史使用时间和历史使用次数。
在实际应用中可以是用户通过操作界面向应用商店APP输入一键更新指令,当应用商店接收到一键更新指令后,弹出对话框设置权重系数的值,权重系数包括上述第一权重系数和第二权重系数,如未设置则使用系统默认值0.5。
另外,也可以分别为每一个待更新程序设置第一权重系数和第二权重系数,例如,由于A程序在当前时间段的历史使用时间大于B程序在当前时间段的历史使用时间,那么可以设置A程序的第一权重系数为0.52,A程序的第二权重系数为0.48,设置B程序的第一权重系数为0.48,B程序的第二权重系数为0.52。
应用商店在接收到权重系数以及更新指令后,应用商店将待更新的程序列表及权重系数上传给系统,通知系统需要更新的程序列表。该系统可以是安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。系统根据程序列表中各待更新程序的历史使用数据,确定各程序的下载顺序,从而对程序列表进行排序,排序的方法包括本实施例中的方式一和方式二。
在一个可行的实施例中,根据各应用的下载优先级确定各应用的下载顺序可以采用最近最少使用算法(Least Recently Used,LRU),LRU的设计原理就是,当数据在最近一段时间经常被访问,那么它在以后也会经常被访问。这就意味着,如果经常访问的数据,我们需要然其能够快速命中,而不常访问的数据,我们在容量超出限制内,要将其淘汰。具体地,利用LRU确定各应用的下载顺序可通过程序列表中各程序的索引来计算其下载优先级,则可以自定义下载优先级的计算公式:
S=k*L+(1-k)*C
其中,S为下载优先级的评分,k为第一权重系数(0<k<1),L为应用的历史使用时间的得分,C为历史使用次数的得分。
其中,L的计算公式为:
L=(i1+1)*100/n
n为待更新程序个数,i1为按照应用历史使用时间排序的索引,系统根据LRU算法对n个程序进行排序,最近最久未使用的程序排在最后,依次类推。其中,索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
其中,C的计算公式为:
C=(i2+1)*100/n
n为待更新程序个数,i2为按照历史使用次数进行排序的索引。
在一个实际程序中,假如最初获取的程序列表获取4个程序的排序分别为a,b,c,d,按照历史使用时间排序时:
a程序排名第1个,索引为0;
b程序排名第4个,索引为3;
c程序排名第2个,索引为1;
d程序排名第3个,索引为2。
按照历史时间使用次数进行排序时:
a程序在上个月的当前时间使用最多且在这3个程序中排第1,索引为0;
b程序在上个月的当前时间使用最少且在这4个程序中排第4,索引为3;
c程序在上个月的当前时间使用比较少且在这3个程序中排第2,索引为1;
d程序在上个月的当前时间使用少且在这3个程序中排第3,索引为2。
那么根据上述下载优先级的评分步骤,程序的历史使用时间的得分L,历史使用次数的得分C的计算公式,k取默认值0.5,最终得到a,b,c,d的优先级的评分。
其中,对于a程序:
a程序的L=(0+1)*100/10=10
a程序的C=(0+1)*100/10=10
a程序的步骤=0.5*20+(1–0.5)*10=10
对于b程序:
b程序的L=(3+1)*100/10=40
b程序的C=(3+1)*100/10=40
b程序的步骤=0.5*20+(1–0.5)*10=40
对于c程序:
c程序的L=(1+1)*100/10=20
c程序的C=(1+1)*100/10=20
c程序的步骤=0.5*20+(1–0.5)*10=20
对于d程序:
d程序的L=(2+1)*100/10=30
d程序的C=(2+1)*100/10=30
d程序的步骤=0.5*30+(1–0.5)*30=30
由上述a,b,c,d的优先级的评分步骤的大小可知,其下载优先级由高到低分别为b,d,c,a,也就是优先下载b程序,最后下载a程序。
以上,是按照第一种方式对程序列表中的待更新应用进行排序的方式,基于每个待更新程序的历史使用时间和历史使用次数,确定每个待更新程序的下载顺序,从而使最近最少被使用且该段时间被使用次数最少的应用优先被下载更新。
需要说明的是,上述第一权重和第二权重可以根据用户的需求自行设置,必须,用户认为历史使用时间对排序关联性较大,那么可以设置第一权重信息为0.6,第二权重信息为0.4,同理,也可以设置第一权重信息为0.4,第二权重信息为0.6。在未经自定义设置的情况下,默认第一权重系数和第二权重系数均为0.5。
另外,由于在每次进行程序列表的过程中,会有程序的状态发生改变,例如,将微信加入到程序列表时,微信的运行状态为未运行状态,但是在下载完微信的数据更新包后,检测到微信的运行状态为运行状态,也就是说,此时用户正在使用微信,表征微信在该时刻的使用时间会增加,那么可以将这一变化作为下一个更新列表时间点的参考,即,可以根据待更新程序的运行状态变化来调节第一权重系数和第二权重系数,从而为下一次更新提供更准确的数据,提高排序的准确度。
因此,本实施例中,在下载数据更新包的过程中,监测每个待更新程序的运行状态变化;在所述待更新程序的运行状态由运行状态到未运行状态的情况下,表征在当前时间段内该程序的运行时间减少,时间因子对程序在程序列表中的排序影响较小,因此减小历史使用时间对应的第一权重系数的值。同理,在所述待更新程序的运行状态由未运行状态到运行状态的情况下,表征在当前时间段内该程序的运行时间增加,时间因子对程序在程序列表中的排序影响较大,因此增加所述第一权重系数的值。第一权重系数和第二权重系数值的增加或减少具体值可以是0.01。
其中,由于第一权重系数和第二权重系数的和为1,因此第二权重系数随着第一权重系数的增加而减少,随着第一权重系数的减少而增加。在一个可选的例子中,也可以通过获取在整个程序列表更新过程中每一待更新程序的运行次数,根据运行次数来调节第二权重系数。例如,某一程序在本次更新过程中的使用次数相比于历史使用次数多了3次,那么说明次数因子对程序在程序列表中的排序影响较大,因此增加所述第二权重系数的值,反之,某一程序在本次更新过程中的使用次数相比于历史使用次数少了3次,那么说明次数因子对程序在程序列表中的排序影响较小,因此减少所述第二权重系数的值,再根据第二权重系数的值来确定其一权重系数。
以上,是本实施例对第一权重系数和第二权重系数的调整方式,能够根据待更新程序的运行状态变化来调节第一权重系数和第二权重系数,从而为下一次更新提供更准确的数据,提高排序的准确度。
步骤1102的第二种方式:
根据预设等级阈值和每个待更新程序的历史使用数据,对所述程序列表中的N个待更新程序进行分组,获得具有不同下载等级的M个程序组;根据所述M个程序组的下载等级,确定所述M个程序组的下载顺序;根据所述M个待更新程序组的下载顺序,确定每个待更新程序的下载顺序,其中,M为大于1的整数。
例如,可以将每一待更新程序在一段时间内的历史使用时间和历史使用次数与预设等级阈值作比较,将程序组分成4个程序组:很少使用程序组、较少使用程序组、较多使用程序组和经常使用程序组。那么,很少使用程序组、较少使用程序组、较多使用程序组和经常使用程序组的下载等级逐级递减,也就是优先下载很少使用程序组的待更新程序,最后下载经常使用程序组的待更新程序,也可以人为设置,当终端进入闲置状态后,触发下载等级较低的程序组内的待更新程序下载更新。
其中,关于预设等级阈值可以人为设定,也可以根据程序被使用的历史数据进行智能设定,例如最近一周使用次数小于5次,且周期使用情况为0次,该类程序放在“很少使用程序组”;最近一周使用次数大于5次小于10次,且周期使用情况小于2次,该类程序放在“较少使用程序组”;最近一周使用次数大于10次小于15次,且周期使用情况小于5次,该类程序放在“较多使用程序组”;最近一周使用次数大于15,或周期使用情况大于5次,该类程序放在“经常使用程序组”。对于每一程序组中的程序下载顺序,可以优先下载历史使用时间最短的,也可以优先下载历史使用次数最少的,具体顺序可以由用户自定义设置,也可以根据程序当前的运行状态,优先下载处于关闭状态的程序,一个程序组内的待更新程序下载顺序可以有多种,在此不做具体限定。
以上,是通过对待更新程序进行分组的方式确定程序列表中待更新程序的下载顺序的具体方式,相比于方式一,方式二不需要进行权重的计算可以减少计算量。
需要说明的是,对于上述划分程序组的方式,还可以根据第一种方式中的方法计算每一待更新程序的下载优先级的评分,再统一设置预设等级阈值,例如,在通过第一种方式获得各个待更新程序的下载优先级的评分之后,按照下载优先级的评分的最低分和最高分的差值,将程序列表中的程序分成4组,分别为很少使用程序组、较少使用程序组、较多使用程序组和经常使用程序组,再优先下载很少使用程序组的待更新程序,最后下载经常使用程序组内的待更新程序。
在确定每个待更新程序的下载顺序之后,执行步骤1103、根据所述每个待更新程序的下载顺序,依次下载每个待更新程序的数据更新包。
对于步骤1102中的方式一,则按照下载优先级的评分由高到低的顺序,依次下载对应的待更新程序;对于步骤1102中的方式二,则按照程序组的下载等级,依次下载每个程序组内的对应待更新程序。
由本实施例的上述分析可知,在第一次确定好程序列表中的待更新程序的下载顺序之后,由于存在更新过程中程序的运行状态的变化,因此在依次下载每个待更新程序的数据更新包之前,可以通过监测未下载数据更新包的第一程序的运行状态来对程序列表中的下载顺序进行更新,来进一步避免更新过程中因为程序的运行状态忽然发生改变带来的闪退。其中第一程序为未下载数据更新包的任一个待更新程序。也就是说,可以通过系统对非正在安装的程序进行运行状态的监控,从而对未下载程序进行重新排序,以及延迟已下载程序的安装。
当然,系统检测的程序也可以是终端设备上的任何一个程序,系统检测到程序进程启动并同时有界面启动时,判断该程序是否在程序列表中,如不在程序列表中,则不做处理;如在程序列表中,则重新对程序列表进行排序,并传输给应用商店。当系统检测到程序退出进程,判断该程序是否在程序列表中,如不在程序列表中,则不做处理;如在程序列表中,则重新对列表进行排序,并传输给应用商店。
需要说明的是,本实施例中,当系统首次获取应用商店的程序列表时,可以直接将程序列表直接传输给应用商店,当系统非首次向应用商店传输程序列表时,可以给应用商店发送更新的全部列表,也可以向应用商店发送顺序调整指令,具体的调整方法可以通过监测未下载数据更新包的第一程序的运行状态来对程序列表中的下载顺序进行更新的步骤来实现。
具体地,在所述第一程序的运行状态由未运行状态更新为运行状态的情况下,按照第一方向,调整所述第一程序的下载顺序;在所述第一程序的运行状态由运行状态到未运行状态的情况下,按照第二方向,调整所述第一程序的下载顺序。其中,第一方向和第二方向为相反的两个方向,第一方向为下载顺序由前到后的方向,第二方向为下载顺序由后到前的方向。
例如,程序列表的下载列队中有10个待下载程序,此时正在下载第一位的程序对应的数据更新包,A程序处于程序列表的下载列队中第3位,检测到此时A程序的运行状态由未运行状态更新为运行状态,那么将A程序的下载顺序由第3位调到第10位,其他程序的顺序依次前推。同理,A程序处于程序列表的下载列队中第8位,若检测到此时A程序的运行状态由运行状态更新为未运行状态,那么可以将A程序的下载顺序由第8位调到第3位,其他程序的顺序依次前推,具体的顺序可以根据列表中其他程序的状态来动态调整。在此不做具体限定。
系统在每次更新完程序列表之后,将更新的程序列表传输至应用商店,每次应用商店接收到系统重新给的程序列表后,应用商店根据系统的新的列表或调节指令重新对程序列表进行排序,并根据重新排列后的程序列表开始下载待更新程序对应的数据安装包。
其中,在一个可选的实际应用中,应用商店每更新完一个程序后向系统发送通知,并通知系统重新获取程序列表,以避免在下载过程中程序列表发生改变,如用户停止了某个程序的更新或者卸载了某个程序。同时,系统在收到应用商店发出的更新程序列表请求后,重新获取程序列表,并重新确定程序列表中各待更新程序的下载顺序,以确保维护的程序列表和应用商店获取的程序列表中程序的一致性。
以上,为本申请实施例通过对根据每一程序的历史数据对获取到的待更新的程序列表进行重新排序来确定下载顺序的方法的详细说明,能够使最近最少被使用且该段时间被使用次数最少的程序优先被下载更新,且在下载过程中通过持续获取程序列表中的程序的运行状态来更新列表,确保在程序处于关闭状态的情况下安装已下载程序,从而避免因待更新程序使用户无法使用,提高用户体验。
需要说明的是,本申请实施例提供的程序更新方法,执行主体可以为程序更新装置,或者该程序更新装置中的用于执行程序更新的方法的控制模块。本申请实施例中以程序更新装置执行程序更新的方法为例,说明本申请实施例提供的程序更新。
如图3所示,本实施例提供一种程序更新装置300,该装置包括:列表获取模块310、下载模块330和安装模块340,其中:
列表获取模块310用于获取程序列表,程序列表中包括待更新程序;
下载模块330,用于下载与所述待更新程序对应的数据更新包;
安装模块340,用于获取所述待更新程序的当前运行状态,确定所述运行状态为未运行的情况下,根据所述数据更新包安装对应的所述待更新程序。
在一个实施例中,程序更新装置300还包括排序模块320,排序模块320用于获取各待更新程序的历史使用数据,根据所述历史使用数据确定所述程序列表中各待更新程序的下载顺序,其中,所述历史使用数据包括设定时间段内的历史使用时间和历史使用次数;根据所述各待更新程序的下载顺序,依次下载与所述待更新程序对应的数据更新包。
在一个实施例中,排序模块320还用于根据预设等级阈值和每个待更新程序的历史使用数据,对所述程序列表中的N个待下载应用进行分组,获得具有不同下载等级的M个程序组,M为大于1的整数;根据所述M个程序组的下载等级,确定所述M个程序组的下载顺序;根据所述M个程序组的下载顺序,确定每个待更新程序的下载顺序。
在一个实施例中,排序模块320还用于监测未下载数据更新包的第一程序的运行状态;在所述第一程序的运行状态由未运行状态更新为运行状态的情况下,按照第一方向,调整所述第一程序的下载顺序;在所述第一程序的运行状态由运行状态到未运行状态的情况下,按照第二方向,调整所述第一程序的下载顺序。
在一个实施例中,安装模块340还用于在所述待更新程序的当前运行状态为运行状态的情况下,延迟安装所述待更新程序。
本申请实施例将程序更新的过程分为下载和安装两个完全分离的步骤,在下载待待更新程序的数据更新包之后,确定待更新程序处于未运行状态的情况下,才基于数据更新包安装待更新程序,从而不影响程序的正常使用。且通过对根据每一应用的历史数据对获取到的待更新的程序列表进行重新排序,通过该程序列表中的顺序依次对应用内进行下载,从而使最近最少被使用且该段时间被使用次数最少的应用优先被下载更新,从而避免因待更新程序使用户无法使用,提高用户体验。
本申请实施例中的程序更新装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的程序更新装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的程序更新装置能够实现图1至图2的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图4所示,本申请实施例还提供一种电子设备400,包括处理器401,存储器402,存储在存储器402上并可在所述处理器401上运行的程序或指令,该程序或指令被处理器401执行时实现上述程序更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图5为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备100包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1100等部件。
本领域技术人员可以理解,电子设备1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1100逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图5中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1100,用于获取待更新的程序列表;根据程序列表中各应用的历史使用数据,确定各应用的下载顺序;根据各应用的下载顺序,依次下载程序列表中的应用;根据已下载应用的运行状态,安装已下载应用。
处理器1100,还用于根据对应应用的历史使用数据获及对应应用的历史使用数据的权重信息得对应应用的下载优先级的评分;其中,所述下载优先级的评分分别与所述历史使用时间和所述历史使用次数成反比;根据每一应用的下载优先级的评分,确定所述各应用的下载顺序。
处理器1100,还用于根据预设等级阈值以及每一应用的历史使用数据,对程序列表中各应用进行分组,获得具有不同下载等级的多个程序组;根据程序组的下载等级,确定程序组的下载顺序;根据程序组的下载顺序确定程序组包含的各应用的下载顺序。
处理器1100,还用于获取未下载应用的运行状态;根据未下载应用的运行状态,调整未下载应用的下载顺序,以及,在已下载应用的运行状态为关闭的情况下,安装已下载应用;在已下载应用的运行状态为运行中的情况下,停止安装已下载应用。
本申请实施例通过对根据每一应用的历史数据对获取到的待更新的程序列表进行重新排序,通过该程序列表中的顺序依次对应用内进行下载,从而使最近最少被使用且该段时间被使用次数最少的应用优先被下载更新,且在下载过程中通过持续获取程序列表中的应用的运行状态来更新列表,从而避免因应用程序更新而导致正在使用的应用异常退出。
应理解的是,本申请实施例中,输入单元1004可以包括图形处理器(GraphicsProcessing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1006可包括显示面板1061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板1061。用户输入单元107包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器1009可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器1100可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1100中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述程序更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述程序更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (10)

1.一种程序更新方法,其特征在于,包括:
获取程序列表,所述程序列表中包括待更新程序;
下载所述待更新程序对应的数据更新包;
在所述待更新程序的当前运行状态为未运行的情况下,基于所述数据更新包,安装所述待更新程序。
2.根据权利要求1所述的方法,其特征在于,所述待更新程序的个数为N,N为大于1的整数;
所述获取程序列表之后,所述方法还包括:
获取每个待更新程序的历史使用数据;
根据所述历史使用数据,确定每个待更新程序的下载顺序,其中,所述历史使用数据包括预设时间段内的历史使用时间和历史使用次数;
根据所述每个待更新程序的下载顺序,依次下载每个待更新程序的数据更新包。
3.根据权利要求2所述的方法,其特征在于,所述根据所述历史使用数据,确定每个待更新程序的下载顺序,包括:
基于每个待更新程序的历史使用时间和历史使用次数,确定每个待更新程序的下载优先级;其中,所述下载优先级分别与所述历史使用时间和所述历史使用次数负相关;
根据每个待更新程序的下载优先级,确定每个待更新程序的下载顺序。
4.根据权利要求3所述的方法,其特征在于,所述基于每个待更新程序的历史使用时间和历史使用次数,确定每个待更新程序的下载优先级,包括:
获取每个待更新程序的历史使用时间的第一权重系数和历史使用次数的第二权重系数;
根据每个待更新程序的历史使用时间、历史使用次数、所述第一权重系数和所述第二权重系数,计算每个待更新程序的下载优先级。
5.根据权利要求2所述的方法,其特征在于,所述根据所述历史使用数据,确定每个待更新程序的下载顺序,还包括:
根据预设等级阈值和每个待更新程序的历史使用数据,对所述程序列表中的N个待下载应用进行分组,获得具有不同下载等级的M个程序组,M为大于1的整数;
根据所述M个程序组的下载等级,确定所述M个程序组的下载顺序;
根据所述M个程序组的下载顺序,确定每个待更新程序的下载顺序。
6.根据权利要求2所述的方法,其特征在于,所述根据所述每个待更新程序的下载顺序,依次下载每个待更新程序的数据更新包之前,还包括:
监测未下载数据更新包的第一程序的运行状态;
在所述第一程序的运行状态由未运行状态更新为运行状态的情况下,按照第一方向,调整所述第一程序的下载顺序;
在所述第一程序的运行状态由运行状态到未运行状态的情况下,按照第二方向,调整所述第一程序的下载顺序。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在下载数据更新包的过程中,监测每个待更新程序的运行状态变化;
在所述待更新程序的运行状态由运行状态到未运行状态的情况下,减小所述第一权重系数的值;
在所述待更新程序的运行状态由未运行状态到运行状态的情况下,增加所述第一权重系数的值。
8.根据权利要求1所述的方法,其特征在于,在所述下载与所述待更新程序对应的数据更新包之后,所述方法还包括:
在所述待更新程序的当前运行状态为运行状态的情况下,延迟安装所述待更新程序。
9.一种程序更新装置,其特征在于,所述装置包括:
列表获取模块,用于获取程序列表,所述程序列表中包括待更新程序;
下载模块,用于下载与所述待更新程序对应的数据更新包;
安装模块,用于获取所述待更新程序的当前运行状态,确定所述运行状态为未运行的情况下,根据所述数据更新包安装对应的所述待更新程序。
10.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-8中任一项所述的程序更新方法的步骤。
CN202110471304.6A 2021-04-28 2021-04-28 程序更新方法、装置和电子设备 Pending CN113176889A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110471304.6A CN113176889A (zh) 2021-04-28 2021-04-28 程序更新方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110471304.6A CN113176889A (zh) 2021-04-28 2021-04-28 程序更新方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN113176889A true CN113176889A (zh) 2021-07-27

Family

ID=76925675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110471304.6A Pending CN113176889A (zh) 2021-04-28 2021-04-28 程序更新方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN113176889A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422505A (zh) * 2022-01-25 2022-04-29 中国农业银行股份有限公司 银行柜面交易程序更新传输方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014112303A1 (ja) * 2013-01-21 2014-07-24 日産自動車株式会社 データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム
CN105487905A (zh) * 2015-11-27 2016-04-13 东软集团股份有限公司 一种混合应用的更新方法和装置
CN108595195A (zh) * 2018-04-09 2018-09-28 江苏国泰新点软件有限公司 一种应用程序更新方法、装置、终端和储存介质
CN110837377A (zh) * 2018-08-15 2020-02-25 北京国双科技有限公司 一种应用程序的更新方法及装置、存储介质、电子设备
CN112685058A (zh) * 2020-12-22 2021-04-20 北京达佳互联信息技术有限公司 应用程序更新包的预下载方法、相关设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014112303A1 (ja) * 2013-01-21 2014-07-24 日産自動車株式会社 データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム
CN105487905A (zh) * 2015-11-27 2016-04-13 东软集团股份有限公司 一种混合应用的更新方法和装置
CN108595195A (zh) * 2018-04-09 2018-09-28 江苏国泰新点软件有限公司 一种应用程序更新方法、装置、终端和储存介质
CN110837377A (zh) * 2018-08-15 2020-02-25 北京国双科技有限公司 一种应用程序的更新方法及装置、存储介质、电子设备
CN112685058A (zh) * 2020-12-22 2021-04-20 北京达佳互联信息技术有限公司 应用程序更新包的预下载方法、相关设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422505A (zh) * 2022-01-25 2022-04-29 中国农业银行股份有限公司 银行柜面交易程序更新传输方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11693693B2 (en) Resource management based on ranking of importance of applications
AU2021202560B2 (en) Application startup control method and control device
CN104808892A (zh) 一种应用图标排序方法、装置、系统及相关设备
CN106777226B (zh) 一种信息分析方法及电子设备
CN107179930B (zh) 一种应用卸载推荐方法及装置
US10552438B2 (en) Triggering method for instant search
CN107861602B (zh) 终端cpu性能控制方法、终端及计算机可读存储介质
CN107402804B (zh) 后台进程管控方法、装置、存储介质及电子设备
US11561929B2 (en) Method, device and computer program product for shrinking storage space
CN109525647B (zh) 消息推送徽章值控制方法、电子装置及存储介质
CN113176889A (zh) 程序更新方法、装置和电子设备
WO2019062409A1 (zh) 后台应用程序管控方法、存储介质及电子设备
CN111381953B (zh) 进程管理方法、装置、存储介质及电子设备
US20160253591A1 (en) Method and apparatus for managing performance of database
CN111813307A (zh) 应用程序显示方法、装置及电子设备
CN107943535B (zh) 应用清理方法、装置、存储介质及电子设备
CN111638892A (zh) 一种优化应用更新排序的方法、装置、系统及存储介质
CN116048331A (zh) 一种菜单排序方法、装置、电子设备及存储介质
CN112527407B (zh) 一种应用启动方法、终端及计算机可读存储介质
CN110399087A (zh) 屏幕触控的控制方法、终端设备及计算机可读存储介质
US8949249B2 (en) Techniques to find percentiles in a distributed computing environment
CN109885551A (zh) 电子装置、元数据处理方法和计算机可读存储介质
CN105591980A (zh) 一种带宽消耗管理方法及装置
JP2019079319A (ja) レコメンドシステム、装置、方法、及びプログラム
CN113835733B (zh) 云应用更新方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210727