CN112988195B - 终端设备的应用程序更新方法 - Google Patents

终端设备的应用程序更新方法 Download PDF

Info

Publication number
CN112988195B
CN112988195B CN202110349529.4A CN202110349529A CN112988195B CN 112988195 B CN112988195 B CN 112988195B CN 202110349529 A CN202110349529 A CN 202110349529A CN 112988195 B CN112988195 B CN 112988195B
Authority
CN
China
Prior art keywords
application program
application
list
update package
function
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.)
Active
Application number
CN202110349529.4A
Other languages
English (en)
Other versions
CN112988195A (zh
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.)
Ecarx Hubei Tech Co Ltd
Original Assignee
Ecarx Hubei Tech 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 Ecarx Hubei Tech Co Ltd filed Critical Ecarx Hubei Tech Co Ltd
Priority to CN202110349529.4A priority Critical patent/CN112988195B/zh
Publication of CN112988195A publication Critical patent/CN112988195A/zh
Application granted granted Critical
Publication of CN112988195B publication Critical patent/CN112988195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本发明提供了一种终端设备的应用程序更新方法。该方法包括:获取目标应用程序的更新包信息;基于更新包信息查找目标应用程序的关联应用程序集,得到由关联应用程序集组成的第一应用列表;将第一应用列表下发至客户端,并接收客户端从第一应用列表中筛选过滤掉已安装的应用程序后返回的第二应用列表;根据第二应用列表生成更新包;将更新包下发至客户端已安装更新包。本发明能够在终端设备的目标应用程序需要更新时,自动查找该目标应用程序的关联应用程序集,并对关联应用程序集中各应用程序进行一并更新,避免了关联该目标应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。

Description

终端设备的应用程序更新方法
技术领域
本发明涉及应用更新技术领域,特别是涉及一种终端设备的应用程序更新方法。
背景技术
在安卓(Android)***中,应用都是以APK(Android Package,安装包)的形式存在。目前终端设备上的应用程序的更新,通常使用传统更新方式,包括三种。第一种是通过腾讯Tinker(腾讯热更新方案)进行应用程序更新的方式,通过腾讯热更新方案可以更新集成了某一更新功能的单个应用程序的更新补丁。第二种是通过阿里Sophix(阿里热更新方案)进行应用程序更新的方式,通过阿里热更新方案可以更新集成了某一更新功能的单个应用的更新补丁。第三种是通过对Android本身的Multidex替换进行应用程序更新的方式,利用Android的dex文件(dex文件是Android虚拟机可运行的程序)加载机制,对未加载的dex文件进行替换以实现应用程序更新。
然而以上这三种更新方式,仅能更新需要更新的应用程序自身,而无法涉及到其他与需要更新的应用程序相关联的应用程序的更新。采用传统更新方式会出现这样一种情况:若应用程序A更新了某一个功能a,但这个功能a在其他应用程序中也有支持,此时由于应用程序A更新了功能a,导致功能a中的部分逻辑有变化,最后导致其他使用到该功能a的应用在调用功能a时产生了异常,导致功能a无法正常使用。也就是说,传统更新方式不能同时将与自己功能相关的关联应用程序也一并进行更新,从而可能导致关联应用程序无法正常运行。
发明内容
鉴于上述技术问题,提出了一种解决上述问题或者至少部分解决上述问题的终端设备的应用程序更新方法。
本发明的一个目的是要提供一种能够在更新目标应用程序的同时,将与目标应用程序功能相关的关联应用程序也一并进行更新,避免某一应用程序更新某一功能时,关联该应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。
本发明的一个进一步的目的是要全面、准确地查找关联应用程序集,避免遗漏,提高了更新准确率。
特别地,根据本发明的一方面,本发明提供了一种终端设备的应用程序更新方法,应用于与终端设备的客户端连接的服务端,该应用程序更新方法包括:
获取目标应用程序的更新包信息;
基于目标应用程序的更新包信息查找目标应用程序的关联应用程序集,得到由关联应用程序集组成的第一应用列表,关联应用程序集包括目标应用程序;
将第一应用列表下发至客户端,并接收客户端从第一应用列表中筛选过滤掉已安装的应用程序后返回的第二应用列表;
根据第二应用列表生成更新包,并将更新包下发至客户端以安装更新包。
可选地,基于目标应用程序的更新包信息查找目标应用程序的关联应用程序集,得到由关联应用程序集组成的第一应用列表,包括:
根据更新包信息,获取目标应用程序所涵盖的第一功能集;
以第一功能集作为筛选功能集,对筛选功能集中的各项功能进行逐项查找,筛选出涉及筛选功能集中的任一项功能的应用程序作为关联应用程序集;
根据筛选出的关联应用程序集获取第二功能集,第二功能集涵盖关联应用程序集中各应用程序的功能;
循环执行以第二功能集作为新的筛选功能集,对筛选功能集中的各项功能进行逐项查找,筛选出新的关联应用程序集,根据新的关联应用程序集获取新的第二功能集,新的第二功能集涵盖新的关联应用程序集中各应用程序的功能,直到新的第二功能集与前一轮的第二功能集相同;
统计最后得到的所述关联应用程序集中的应用程序,并移除重复的应用程序;
生成由去重后的关联应用程序集组成的第一应用列表。
可选地,对筛选功能集中的各项功能进行逐项查找,筛选出涉及筛选功能集中的任一项功能的应用程序作为关联应用程序集,包括:
将每个应用程序的功能集分别与筛选功能集进行且运算;
若某个应用程序的功能集与筛选功能集的且运算结果为真,则确定应用程序为关联应用程序集。
可选地,在终端设备的目标应用程序需要更新时,获取目标应用程序的更新包信息,包括:
在服务端提出目标应用程序的更新请求时,从服务端获取预先存储的目标应用程序的更新包信息;或
在客户端提出目标应用程序的更新请求时,接收客户端上传的目标应用程序的更新包信息。
可选地,根据第二应用列表生成更新包,包括:
搜索第二应用列表中各应用程序的更新文件;
将更新文件打包成更新包。
可选地,在将更新文件打包成更新包之后,应用程序更新方法还包括:生成更新包的第一校验码;且
将更新包下发至客户端的过程中,还包括:将第一校验码随更新包一并下发至客户端。
特别地,根据本发明的另一方面,本发明还提供了一种终端设备的应用程序更新方法,应用于终端设备上的客户端,该应用程序更新方法包括:
在目标应用程序需要更新时,接收服务端下发的第一应用列表,第一应用列表由目标应用程序的关联应用程序集组成,关联应用程序集包括目标应用程序;
从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表,并将第二应用列表上传至服务端;
接收服务端下发的根据第二应用列表生成的更新包,并安装更新包。
可选地,从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表,包括:
获取客户端的已安装应用列表;
将第一应用列表与已安装应用列表进行版本号以及功能匹配,筛选过滤出第一应用列表中已安装于客户端上的应用程序;
基于筛选过滤后的第一应用列表形成第二应用列表。
可选地,安装更新包,包括:
读取更新包中涉及的所有应用程序相关的类加载器、地址加载器和dex加载器;
通过地址加载器获取更新包中涉及的所有应用程序的dex地址列表;
根据dex地址列表确定各应用程序对应的dex文件位置;
根据dex文件位置,通过dex加载器加载各应用程序的dex文件,并更新dex地址列表。
可选地,在安装更新包之前,前述应用程序更新方法还包括:
校验更新包的正确性。
本发明能够在终端设备的目标应用程序需要更新时,获取目标应用程序的更新包信息,进而基于目标应用程序的更新包查找目标应用程序的关联应用程序集,得到由关联应用程序集组成的第一应用列表,其中关联应用程序集包括目标应用程序,然后将第一应用列表下发至客户端,并接收客户端从第一应用列表中筛选过滤掉已安装的应用程序后返回的第二应用列表,根据第二应用列表生成更新包,将更新包下发至客户端以安装更新包。基于本发明提供的方案,当更新某一目标应用程序时,能够自动查找该目标应用程序的关联应用程序集,从而将与目标应用程序功能相关的关联应用程序也一并进行更新,避免了某一应用程序更新某一功能时,关联该应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。
进一步地,本发明通过对筛选功能集进行逐项查找,以全面、准确地查找目标应用程序的关联应用程序集,避免遗漏,提高了更新准确率。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的终端设备的应用程序更新方法的示意性流程图;
图2是根据本发明另一个实施例的终端设备的应用程序更新方法的示意性流程图;
图3是根据本发明一个实施例的终端设备的应用程序更新方法的示意性详细流程图;
图4是根据本发明另一个实施例的终端设备的应用程序更新方法的示意性详细流程图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例所提供的终端设备的应用程序更新方法主要涉及两种执行主体:服务端和客户端。服务端用于在目标应用程序被触发更新时查找目标应用程序的关联应用程序集。客户端用于对目标应用程序的关联应用程序集中筛选过滤掉已安装的应用程序后剩余的应用程序进行更新安装。本发明实施例通过服务端以及客户端的连通配合,实现了目标应用程序以及与目标应用程序关联的应用程序的联合更新。以下分别从不同执行主体角度来说明本发明实施例提供的终端设备的应用程序更新方法。
服务端
图1是根据本发明一个实施例的终端设备的应用程序更新方法的示意性流程图。参见图1,在本发明一实施例中,终端设备的应用程序更新方法可包括步骤S102至步骤S108。
步骤S102,获取目标应用程序的更新包信息。
步骤S104,基于目标应用程序的更新包信息查找目标应用程序的关联应用程序集,得到由关联应用程序集组成的第一应用列表。关联应用程序集包括目标应用程序。
步骤S106,将第一应用列表下发至客户端,并接收客户端从第一应用列表中筛选过滤掉已安装应用程序后返回的第二应用列表。
步骤S108,根据第二应用列表生成更新包,并将更新包下发至客户端以安装更新包。
本发明实施例能够在终端设备的目标应用程序需要更新时,获取目标应用程序的更新包信息,进而基于目标应用程序的更新包查找目标应用程序的关联应用程序集,得到由关联应用程序集组成的第一应用列表,其中关联应用程序集包括目标应用程序,然后将第一应用列表下发至客户端,并接收客户端从第一应用列表中筛选过滤掉已安装的应用程序后返回的第二应用列表,根据第二应用列表生成更新包,将更新包下发至客户端以安装更新包。基于本发明提供的方案,当更新某一目标应用程序时,能够自动查找该目标应用程序的关联应用程序集,从而将与目标应用程序功能相关的关联应用程序也一并进行更新,避免了某一应用程序更新某一功能时,关联该应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。并且,通过对第一应用列表的筛选过滤,可将已安装于客户端上的应用程序滤除,从而有效避免对移动终端上已安装应用程序的重复更新,进一步提升了更新效率。
步骤S102中提及的更新包信息可以是目标应用程序更新的版本信息。例如可以包括应用程序的更新版本的版本号、所含有的功能、所关联的应用程序、和/或文件存放位置等。
目标应用程序的更新请求,可以通过服务端提出,也可以通过客户端提出。在本发明的一实施例中,当通过服务端提出更新目标应用程序的更新请求时,可从服务端获取预先存储的目标应用程序的更新包信息。在本发明的另一些实施例中,当通过客户端提出目标应用程序的更新请求时,可接收客户端上传的目标应用程序的更新包信息。
在本发明一些实施例中,步骤S104还可以包括如下步骤:
步骤1:根据更新包信息,获取目标应用程序所涵盖的第一功能集。
功能集是应用程序所支持的所有功能名称以及对应的功能描述的集合,可预先存储在数据库内。该步骤中的第一功能集可定义为enum枚举类型,以保证功能的顺序递增。
步骤2:以第一功能集作为筛选功能集,对筛选功能集中的各项功能进行逐项查找,筛选出涉及筛选功能集中的任一功能的应用程序作为关联应用程序集。
步骤3:根据筛选出的关联应用程序集获取第二功能集。其中第二功能集涵盖关联应用程序集中各应用程序的功能。可以理解,第一功能集相当于第二功能集的子集。
该步骤中的第二功能集可定义为enum枚举类型,以保证功能的顺序递增。
步骤4:循环执行以第二功能集作为新的筛选功能集,对筛选功能集中的各项功能进行逐项查找,筛选出新的关联应用程序集,根据新的关联应用程序集获取新的第二功能集,新的第二功能集涵盖新的关联应用程序集中各应用程序的功能,直到新的第二功能集与前一轮的第二功能集相同。
步骤5:统计最后得到的关联应用程序集中的应用程序,并移除重复的应用程序。
步骤6:生成由去重后的关联应用程序集组成的第一应用列表。
在该实施例中,通过对筛选功能集中的各项功能进行逐项查找,能够筛选出目标应用程序以及与目标应用程序关联的全部应用程序,以便得到更全面的关联应用程序集,提高关联应用程序集的查找效率。
在一些进一步的实施例中,在对筛选功能集中的各项功能进行逐项查找,筛选出涉及筛选功能集中的任一项功能的应用程序作为关联应用程序集时,可首先获取每个应用程序的功能集,然后将每个应用程序的功能集分别与筛选功能集进行且运算,若某个应用程序的功能集与筛选功能集的且运算结果为真,则确定该应用程序为与目标应用程序关联的应用程序,统计所有与目标应用程序关联的应用程序形成关联应用程序集。如此通过各应用程序的功能集与筛选功能集的且运算,即可方便快捷地确定出与目标应用程序关联的应用程序,从而得到关联应用程序集,有助于提高更新效率。
示意性的,假设将目标应用程序对应的第一功能集作为筛选功能集A。筛选功能集A所涵盖的功能为功能a、功能b、功能c,若某一个应用程序的功能集B所涵盖的功能为功能a、功能d、功能e,而另一个应用程序的功能集C所涵盖的功能为功能f、功能g、功能h。此时,在将功能集B和功能集C分别与筛选功能集A进行且运算时,则可得出功能集B与筛选功能集A的且运算结果为真,功能集C与筛选功能集A的且运算结果为假。也就是说,在这一情况下,功能集B对应的应用程序为需要和目标应用程序一并更新的关联应用程序,需要筛选出来,而功能集C对应的应用程序则是不需要和目标应用程序一并更新的应用程序,不需要筛选出来。
此外,为便于统计与目标应用程序关联的应用程序,可在确定应用程序为目标应用程序关联的应用程序之后,可对与目标应用程序关联的应用程序添加标识信息(例如,为与目标应用程序关联的应用程序添加标签),进而根据标识信息统计最后得到所有与目标应用程序关联的应用程序。
在本发明一些实施例中,根据第二应用列表生成更新包可以包括:搜索第二应用列表中各应用程序的更新文件;将更新文件打包成更新包。通过搜索第二应用列表中各应用程序的更新文件并打包,以便更新文件的快速传输,有助于提升更新效率。
数据传输过程中,可能会被非法篡改导致传输了非法数据,造成安全隐患。针对这种情况,可在将更新文件打包成更新包之后,进一步生成更新包的第一校验码。具体地,可根据预设计算方式生成第一校验码。然后将第一校验码以及更新包一并下发至客户端,以便客户端对更新包进行校验来确定更新包的正确性,从而确保数据传输的安全性。预设计算方式可根据实际应用需求设置,例如可以是MD5消息摘要算法(MD5 Message-DigestAlgorithm,简称MD5算法),也就是说,服务端可以通过MD5算法生成第一校验码。MD5算法是一种被广泛使用的密码杂凑函数,可以产生出一个128位元的散列值,用于确保信息传输完整一致。
另外,在步骤S108之后,服务端还可以接收客户端返回的更新结果,以便及时了解应用程序的更新情况。
客户端
图2是根据本发明另一个实施例的终端设备的应用程序更新方法的示意性流程图。参见图2所示,在本发明一实施例中,终端设备的应用程序更新方法可包括步骤S202至步骤S206。
步骤S202,在目标应用程序需要更新时,接收服务端下发的第一应用列表。第一应用列表由目标应用程序的关联应用程序集组成,关联应用程序集包括目标应用程序。
步骤S204,从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表,并将第二应用列表上传至服务端。
步骤S206,接收服务端下发的根据第二应用列表生成的更新包,并安装更新包。
在本发明实施例中,在目标应用程序需要更新时,接收服务端下发的由目标应用程序的关联应用程序集组成的第一应用列表,进而从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表,并将第二应用列表上传至服务端,然后接收服务端下发的根据第二应用列表生成的更新包,并安装接收到的更新包。采用本发明实施例,能够对目标应用程序以及与目标应用程序某一功能关联的应用程序进行一并更新,避免了关联该目标应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景,并且,客户端能够将第一应用列表中已安装于客户端上的应用程序滤除,可有效避免对移动终端上已安装应用程序的重复更新,进一步提升了更新效率。
在本发明一些实施例中,从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表的步骤进一步可包括:获取客户端的已安装应用列表;将第一应用列表与已安装应用列表进行版本号以及功能匹配,筛选过滤出第一应用列表中已安装于客户端上的应用程序;基于筛选过滤后的第一应用列表形成第二应用列表。这里已安装应用列表由客户端上已安装应用程序集组成。已安装应用程序集可以包括目标应用程序的历史版本以及与目标应用程序关联的应用程序的历史版本。
在将第一应用列表与已安装应用列表进行版本号以及功能匹配时,具体地,可将第一应用列表中的某一个应用程序与已安装应用程序列表中的应用程序进行版本号以及功能匹配。若第一应用列表中的某一个应用程序与已安装应用程序列表中的应用程序的版本号以及功能一致,说明该应用程序为已安装于客户端上的应用程序,需要将其从第一应用列表中过滤掉,从而基于过滤后的第一应用列表中剩下的应用程序生成第二应用列表。
关于更新包的安装,本发明提供了一种可选安装方式。例如,可首先读取更新包中涉及的所有应用程序的类加载器、地址加载器和dex加载器,然后通过地址加载器获取更新包中涉及的所有应用程序的dex地址列表,进而根据dex地址列表确定各应用程序对应的dex文件位置,最后根据dex文件位置,通过dex加载器加载各应用程序的dex文件,并更新dex地址列表,如此即可完成更新包中各应用程序的更新安装。
客户端在完成更新包中各应用程序的更新安装后,还可向服务端返回更新结果,以便服务端及时了解更新安装情况。
考虑到数据传输的安全性,在安装更新包之前,还可对更新包进行校验,以确定更新包的正确性。具体地,可接收由服务端下发的更新包的第一校验码,其中该第一校验码由服务端根据预设计算方式生成;客户端通过与服务端使用相同的预设计算方式,计算出客户端接收到的更新包的第二校验码;比较第一校验码与第二校验码是否相等;若第一校验码与第二校验码相等,则校验通过;若第一校验码与第二校验码不等,则校验不通过。预设计算方式可根据实际应用需求设置,例如可以是MD5消息摘要算法(MD5 Message-DigestAlgorithm,简称MD5算法)。也就是说,服务端通过MD5算法生成第一校验码,客户端可通过与服务端相同的MD5算法生成第二校验码,进而通过第一校验码与第二校验码的比较结果来校验更新包的正确性。MD5算法是一种被广泛使用的密码杂凑函数,可以产生出一个128位元的散列值,用于确保信息传输完整一致。
其中,在比较第二校验码和第一校验码是否相等时,可通过比较字符串的大小来确定第二校验码与第一校验码是否相等。
在一些实施例中,在更新dex地址列表之后,还可对该已更新dex地址列表的应用程序发送重启命令,以触发该应用程序重启,从而完成更新。之后,还可返回更新结果至服务端,以便服务端及时了解更新情况。
为了能够更清楚了解本发明的技术手段,下面在本发明的一些可选实施例中对终端设备的应用程序更新方法的具体实施方式进行详细介绍。
图3是根据本发明一个实施例的终端设备的应用程序更新方法的示意性详细流程图。参见图3,本实施例的终端设备的应用程序更新方法可包括步骤S302至步骤S334。
步骤S302,服务端存储各应用程序的更新包信息。
步骤S304,服务端向客户端推送目标应用程序的更新请求。
步骤S306,服务端接收客户端响应更新请求返回的请求结果。
步骤S308,根据请求结果判断请求更新是否成功。若请求更新成功,则执行步骤S310;若请求更新失败,则流程结束。
步骤S310,服务端获取目标应用程序的更新包信息。
步骤S312,服务端查找目标应用程序的关联应用程序集,得到第一应用列表。该步骤的第一应用列表由关联应用程序集组成的。关联应用程序集包括目标应用程序。
步骤S314,服务端将第一应用列表下发至客户端。
步骤S316,客户端从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表。
步骤S318,客户端向服务端上传第二应用列表。
步骤S320,服务端搜索第二应用列表中各应用程序的更新文件。
步骤S322,服务端将更新文件打包成更新包,并生成更新包的第一校验码。
步骤S324,服务端将更新包以及第一校验码下发至客户端。
步骤S326,客户端计算得到更新包的第二校验码。
步骤S328,客户端判断第一校验码与第二校验码是否相等。若相等,执行步骤S330;若不相等,则流程结束。
步骤S330,客户端向更新包对应的多个应用程序推送对应的更新文件并安装。
步骤S332,客户端向已更新安装的应用程序下发重启命令。
步骤S334,客户端返回更新结果至服务端。
在本实施例的终端设备的应用程序更新方法中,当更新某一目标应用程序时,可以由服务端提出目标应用程序的更新请求,进而通过服务端获取目标应用程序的更新包信息,以查找目标应用程序的关联应用程序集。采用本实施例的方案,当更新某一目标应用程序时,能够自动查找该目标应用程序的关联应用程序集,从而将与目标应用程序功能相关的关联应用程序也一并进行更新,避免了某一应用程序更新某一功能时,关联该应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。并且,通过对第一应用列表的筛选过滤,可将已安装于客户端上的应用程序滤除,从而有效避免对移动终端上已安装应用程序的重复更新,进一步提升了更新效率。
图4是根据本发明另一个实施例的终端设备的应用程序更新方法的示意性详细流程图。参见图4,本实施例的终端设备的应用程序更新方法可包括步骤S402至步骤S430。
步骤S402,客户端提出目标应用程序更新请求。
步骤S404,客户端获取目标应用程序的更新包信息
步骤S406,客户端将目标应用程序的更新包信息上传至服务端。
步骤S408,服务端查找目标应用程序的关联应用程序集,得到第一应用列表。步骤中的第一应用列表由关联应用程序集组成。关联应用程序集包括目标应用程序。
步骤S410,服务端将第一应用列表下发至客户端。
步骤S412,客户端从第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表。
步骤S414,客户端向服务端上传第二应用列表。
步骤S416,服务端搜索第二应用列表中各应用程序的更新文件。
步骤S418,服务端将更新文件打包成更新包,并生成更新包的第一校验码。
步骤S420,服务端将更新包以及第一校验码下发至客户端。
步骤S422,客户端根据计算得到更新包的第二校验码。
步骤S424,客户端判断第一校验码与第二校验码是否相等。若相等,执行步骤S426;若不相等,则结束流程。
步骤S426,向更新包对应的多个应用程序推送对应的更新文件并安装。
步骤S428,客户端向已更新安装的应用程序下发重启命令。
步骤S430,客户端返回更新结果至服务端。
在本实施例的终端设备的应用程序更新方法中,当更新某一目标应用程序时,可以由客户端提出目标应用程序的更新请求,进而在客户端本地获取目标应用程序的更新包信息并上传至服务端,以通过服务端查找目标应用程序的关联应用程序集。采用本实施例的方案,当更新某一目标应用程序时,能够自动查找该目标应用程序的关联应用程序集,从而将与目标应用程序功能相关的关联应用程序也一并进行更新,避免了某一应用程序更新某一功能时,关联该应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。并且,通过对第一应用列表的筛选过滤,可将已安装于客户端上的应用程序滤除,从而有效避免对移动终端上已安装应用程序的重复更新,进一步提升了更新效率。
根据上述任意一个实施例或多个实施例的组合,本发明实施例能够达到如下有益效果:
本发明实施例能够在终端设备的目标应用程序需要更新时,自动查找该目标应用程序的关联应用程序集,并对关联应用程序集中各应用程序进行一并更新,避免了关联该目标应用程序的某一功能的所有应用程序在使用该功能时出现异常、崩溃等场景。并且,通过对第一应用列表的筛选过滤,可将已安装于客户端上的应用程序滤除,从而有效避免对移动终端上已安装应用程序的重复更新,进一步提升了更新效率。同时,本发明实施例通过对筛选功能集中的各项功能进行逐项查找,能够筛选出目标应用程序以及目标应用程序的全部关联应用程序,以便得到更全面的关联应用程序集,提高关联应用程序集的查找效率。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (9)

1.一种终端设备的应用程序更新方法,应用于与所述终端设备的客户端连接的服务端,所述方法包括:
获取目标应用程序的更新包信息;
基于所述目标应用程序的更新包信息查找所述目标应用程序的关联应用程序集,得到由所述关联应用程序集组成的第一应用列表,所述关联应用程序集包括所述目标应用程序;
将所述第一应用列表下发至所述客户端,并接收所述客户端从所述第一应用列表中筛选过滤掉已安装的应用程序后返回的第二应用列表;
根据所述第二应用列表生成更新包,并将所述更新包下发至所述客户端以安装所述更新包;其中
所述关联应用程序集包括涉及所述目标应用程序所涵盖的第一功能集中的任一功能的应用程序;并且
所述基于所述目标应用程序的更新包信息查找所述目标应用程序的关联应用程序集,得到由所述关联应用程序集组成的第一应用列表,包括:
根据所述更新包信息,获取所述目标应用程序所涵盖的所述第一功能集;
以所述第一功能集作为筛选功能集,对所述筛选功能集中的各项功能进行逐项查找,筛选出涉及所述筛选功能集中的任一项功能的应用程序作为所述关联应用程序集;
根据筛选出的所述关联应用程序集获取第二功能集,所述第二功能集涵盖所述关联应用程序集中各应用程序的功能;
循环执行以所述第二功能集作为新的筛选功能集,对所述筛选功能集中的各项功能进行逐项查找,筛选出新的所述关联应用程序集,根据新的所述关联应用程序集获取新的所述第二功能集,新的所述第二功能集涵盖新的所述关联应用程序集中各应用程序的功能,直到新的所述第二功能集与前一轮的所述第二功能集相同;
统计最后得到的所述关联应用程序集中的应用程序,并移除重复的应用程序;
生成由去重后的所述关联应用程序集组成的所述第一应用列表。
2.根据权利要求1所述的终端设备的应用程序更新方法,其中,所述对所述筛选功能集中的各项功能进行逐项查找,筛选出涉及所述筛选功能集中的任一项功能的应用程序作为所述关联应用程序集,包括:
将每个应用程序的功能集分别与所述筛选功能集进行且运算;
若某个应用程序的功能集与所述筛选功能集的且运算结果为真,则确定所述应用程序为与所述目标应用程序关联的应用程序;
统计所有与目标应用程序关联的应用程序形成所述关联应用程序集。
3. 根据权利要求1所述的终端设备的应用程序更新方法,其中,在终端设备的目标应用程序需要更新时,获取所述目标应用程序的更新包信息,包括:
在所述服务端提出所述目标应用程序的更新请求时,从所述服务端获取预先存储的所述目标应用程序的更新包信息;或
在所述客户端提出所述目标应用程序的更新请求时,接收所述客户端上传的所述目标应用程序的更新包信息。
4.根据权利要求1所述的终端设备的应用程序更新方法,其中,所述根据所述第二应用列表生成更新包,包括:
搜索所述第二应用列表中各应用程序的更新文件;
将所述更新文件打包成所述更新包。
5. 根据权利要求4所述的终端设备的应用程序更新方法,其中,在将所述更新文件打包成所述更新包之后,所述方法还包括:
生成所述更新包的第一校验码;且
将所述更新包下发至所述客户端的过程中,还包括:将所述第一校验码随所述更新包一并下发至所述客户端。
6.一种终端设备的应用程序更新方法,应用于所述终端设备上的客户端,所述方法包括:
在目标应用程序需要更新时,接收服务端下发的第一应用列表,所述第一应用列表由所述目标应用程序的关联应用程序集组成,所述关联应用程序集包括所述目标应用程序;
从所述第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表,并将所述第二应用列表上传至所述服务端;
接收所述服务端下发的根据所述第二应用列表生成的更新包,并安装所述更新包;其中
所述第一应用列表是由服务端通过以下步骤生成:
根据目标应用程序的更新包信息,获取所述目标应用程序所涵盖的第一功能集;
以所述第一功能集作为筛选功能集,对所述筛选功能集中的各项功能进行逐项查找,筛选出涉及所述筛选功能集中的任一项功能的应用程序作为所述关联应用程序集;
根据筛选出的所述关联应用程序集获取第二功能集,所述第二功能集涵盖所述关联应用程序集中各应用程序的功能;
循环执行以所述第二功能集作为新的筛选功能集,对所述筛选功能集中的各项功能进行逐项查找,筛选出新的所述关联应用程序集,根据新的所述关联应用程序集获取新的所述第二功能集,新的所述第二功能集涵盖新的所述关联应用程序集中各应用程序的功能,直到新的所述第二功能集与前一轮的所述第二功能集相同;
统计最后得到的所述关联应用程序集中的应用程序,并移除重复的应用程序;
生成由去重后的所述关联应用程序集组成的所述第一应用列表。
7.根据权利要求6所述的终端设备的应用程序更新方法,其中,从所述第一应用列表中筛选过滤掉已安装的应用程序得到第二应用列表,包括:
获取所述客户端的已安装应用列表;
将所述第一应用列表与所述已安装应用列表进行版本号以及功能匹配,筛选过滤出所述第一应用列表中已安装于所述客户端上的应用程序;
基于筛选过滤后的所述第一应用列表形成所述第二应用列表。
8.根据权利要求6所述的终端设备的应用程序更新方法,其中,所述安装所述更新包,包括:
读取所述更新包中涉及的所有应用程序相关的类加载器、地址加载器和dex加载器;
通过所述地址加载器获取所述更新包中涉及的所有应用程序的dex地址列表;
根据所述dex地址列表确定各所述应用程序对应的dex文件位置;
根据所述dex文件位置,通过所述dex加载器加载各所述应用程序的所述dex文件,并更新所述dex地址列表。
9.根据权利要求6所述的终端设备的应用程序更新方法,其中,在安装所述更新包之前,所述方法还包括:
校验所述更新包的正确性。
CN202110349529.4A 2021-03-31 2021-03-31 终端设备的应用程序更新方法 Active CN112988195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110349529.4A CN112988195B (zh) 2021-03-31 2021-03-31 终端设备的应用程序更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110349529.4A CN112988195B (zh) 2021-03-31 2021-03-31 终端设备的应用程序更新方法

Publications (2)

Publication Number Publication Date
CN112988195A CN112988195A (zh) 2021-06-18
CN112988195B true CN112988195B (zh) 2023-03-14

Family

ID=76338709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110349529.4A Active CN112988195B (zh) 2021-03-31 2021-03-31 终端设备的应用程序更新方法

Country Status (1)

Country Link
CN (1) CN112988195B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523268A (zh) * 2011-12-08 2012-06-27 北京新媒传信科技有限公司 一种客户端升级方法和***
CN105653262A (zh) * 2015-12-21 2016-06-08 Tcl集团股份有限公司 应用程序升级方法、装置及***
CN105989122A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种应用推荐方法及装置
CN106649588A (zh) * 2016-11-15 2017-05-10 北京奇虎科技有限公司 一种获取已安装应用程序列表的方法、装置及***
CN108037941A (zh) * 2017-12-27 2018-05-15 掌阅科技股份有限公司 基于公共插件的应用程序更新方法、电子设备、存储介质
CN108111330A (zh) * 2017-11-06 2018-06-01 北京趣拿软件科技有限公司 更新数据包的获取、应用程序组件的更新方法及装置
CN111736864A (zh) * 2020-05-27 2020-10-02 杭州易现先进科技有限公司 一种应用软件内容分发方法、装置、***和计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124934A (ja) * 1997-06-30 1999-01-29 Hitachi Software Eng Co Ltd クライアント・サーバシステムにおけるクライアントプログラムの配布管理方法
CN105677392A (zh) * 2015-12-29 2016-06-15 小米科技有限责任公司 应用程序的推荐方法和装置
CN109871217A (zh) * 2017-12-01 2019-06-11 龙芯中科技术有限公司 基于应用商店的应用程序安装方法及装置
JP7379892B2 (ja) * 2018-07-25 2023-11-15 株式会社デンソー 車両用電子制御システム、車両側システム及び携帯端末

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523268A (zh) * 2011-12-08 2012-06-27 北京新媒传信科技有限公司 一种客户端升级方法和***
CN105989122A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种应用推荐方法及装置
CN105653262A (zh) * 2015-12-21 2016-06-08 Tcl集团股份有限公司 应用程序升级方法、装置及***
CN106649588A (zh) * 2016-11-15 2017-05-10 北京奇虎科技有限公司 一种获取已安装应用程序列表的方法、装置及***
CN108111330A (zh) * 2017-11-06 2018-06-01 北京趣拿软件科技有限公司 更新数据包的获取、应用程序组件的更新方法及装置
CN108037941A (zh) * 2017-12-27 2018-05-15 掌阅科技股份有限公司 基于公共插件的应用程序更新方法、电子设备、存储介质
CN111736864A (zh) * 2020-05-27 2020-10-02 杭州易现先进科技有限公司 一种应用软件内容分发方法、装置、***和计算机设备

Also Published As

Publication number Publication date
CN112988195A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
US6738932B1 (en) Method and system for identifying software revisions from memory images
US11017091B2 (en) Firmware map data
US20150205979A1 (en) Method and system for repairing file at user terminal
CN105550229A (zh) 分布式存储***数据修复的方法和装置
KR101582601B1 (ko) 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법
EP1443398A2 (en) Method and system for validating differential computer system update
CN103309768A (zh) ***文件修复方法和装置
CN103559065A (zh) 一种ota升级的方法和***
CN109815697B (zh) 误报行为处理方法及装置
CN106843947B (zh) 代码缺陷的处理方法和装置
CN111538523A (zh) 差分升级方法、设备及存储介质
CN115543429A (zh) 项目环境的搭建方法、电子设备及计算机可读存储介质
CN112988195B (zh) 终端设备的应用程序更新方法
US20030014744A1 (en) Method of checking at least one software application installed on a data processing sytstem
CN113434139A (zh) 一种图像打包的处理方法、装置、服务器及存储介质
CN113904955A (zh) 数据传输链路的检测方法、装置及***
CN114363168B (zh) 容器内服务配置修改方法及装置、电子设备及存储介质
CN114647870A (zh) 电子装置以及数据完整性的检验方法
CN111931161A (zh) 基于risc-v处理器的芯片验证方法、设备及存储介质
CN111142965A (zh) 语言配置方法、装置、电子设备及存储介质
CN111881450A (zh) 一种终端文件的病毒检测方法、装置、***、设备和介质
CN111488158A (zh) 仪表远程升级处理方法及***
CN102648452A (zh) 用于核查计算机***的配置的方法及装置
CN112860284B (zh) 设备远程升级的sp升级包生成方法、装置及计算机设备
CN114490346A (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
TA01 Transfer of patent application right

Effective date of registration: 20220317

Address after: 430051 No. b1336, chuanggu startup area, taizihu cultural Digital Creative Industry Park, No. 18, Shenlong Avenue, Wuhan Economic and Technological Development Zone, Wuhan, Hubei Province

Applicant after: Yikatong (Hubei) Technology Co.,Ltd.

Address before: 430056 building B (qdxx-f7b), No.7 building, qiedixiexin science and Technology Innovation Park, South taizihu innovation Valley, Wuhan Economic and Technological Development Zone, Hubei Province

Applicant before: HUBEI ECARX TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant