CN115291942A - 应用程序的处理方法、装置及计算机可读存储介质 - Google Patents
应用程序的处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115291942A CN115291942A CN202210993978.7A CN202210993978A CN115291942A CN 115291942 A CN115291942 A CN 115291942A CN 202210993978 A CN202210993978 A CN 202210993978A CN 115291942 A CN115291942 A CN 115291942A
- Authority
- CN
- China
- Prior art keywords
- program
- software program
- file
- application program
- target application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序的处理方法、装置及计算机可读存储介质,涉及金融科技领域及其他相关技术领域。其中,该方法包括:获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系;解析依赖树文件,得到第三方软件程序的要素信息;根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系;在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。本申请解决了现有技术中在管理应用程序与第三方软件程序间的调用关系时存在的管理效率低的的技术问题。
Description
技术领域
本申请涉及金融科技领域及其他相关技术领域,具体而言,涉及一种应用程序的处理方法、装置及计算机可读存储介质。
背景技术
安卓端APP(应用程序)在集成开发阶段会依赖很多自研发的SDK(softwaredevelopment kit,第三方软件程序)或者第三方提供的SDK,其中,为了加强对SDK的管理,技术人员通常会使用扫描工具在APP的编译过程中接入SDK使用扫描流程,从而实现对SDK的使用情况进行自动扫描,并基于扫描结果对APP与SDK之间的调用关系进行管理。
但是,在现有技术中,由于是技术人员通过人工的方式管理应用程序与SDK之间的调用关系,因此容易出现遗漏SDK以及对SDK的调用情况没有及时更新的问题,从而不利于管理人员及时了解应用程序与SDK之间的实际调用情况,降低了对SDK的管理效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种应用程序的处理方法、装置及计算机可读存储介质,以至少解决现有技术中在管理应用程序与第三方软件程序间的调用关系时存在的管理效率低的的技术问题。
根据本申请实施例的一个方面,提供了一种应用程序的处理方法,包括:获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序;解析依赖树文件,得到第三方软件程序的要素信息,其中,要素信息为第三方软件程序的唯一标识;根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系,其中,预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识;在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。
进一步地,应用程序的处理方法包括:通过在安装有目标应用程序的操作系统中运行第一命令,获取第一依赖树子文件,其中,第一依赖树子文件用于表征远程软件程序与目标应用程序之间的依赖关系,以及第一本地软件程序与目标应用程序之间的依赖关系,第一本地软件程序为包含代码与资源文件,并且与目标应用程序为直接依赖关系的程序;将第一依赖树子文件作为依赖树文件之一。
进一步地,应用程序的处理方法包括:通过在操作系统中运行第二命令,获取第二依赖树子文件,其中,第二依赖树子文件用于表征第二本地软件程序与目标应用程序之间的依赖关系,以及第三本地软件程序与目标应用程序之间的依赖关系,第二本地软件程序为未包含资源文件的程序,第三本地软件程序为包含代码与资源文件,并且与目标应用程序为间接依赖关系的程序;将第二依赖树子文件作为依赖树文件之一。
进一步地,应用程序的处理方法包括:解析第一依赖树子文件,得到远程软件程序的要素信息;解析第一依赖树子文件以及第二依赖树子文件,得到本地软件程序的存储路径,其中,本地软件程序包括第一本地软件程序、第二本地软件程序以及第三本地软件程序;根据存储路径确定本地软件程序的要素信息。
进一步地,应用程序的处理方法包括:根据存储路径确定本地软件程序的信息摘要信息,其中,信息摘要信息为依据信息摘要算法对本地软件程序进行计算后得到的信息;根据信息摘要信息确定本地软件程序的要素信息。
进一步地,应用程序的处理方法包括:从预设文件中的所有程序标识中确定与要素信息相对应的至少一个程序标识;检测至少一个程序标识中是否存在目标程序标识;在至少一个程序标识中存在目标程序标识的情况下,确定预设文件中包含目标应用程序与第三方软件程序之间的调用关系;在至少一个程序标识中未存在目标程序标识的情况下,确定预设文件中未包含目标应用程序与第三方软件程序之间的调用关系。
进一步地,应用程序的处理方法包括:在将调用关系更新至预设文件中之后,在第三方软件程序存在异常时,获取第三方软件程序的异常信息;根据第三方软件程序的要素信息以及预设文件确定第一应用程序的程序标识,其中,第一应用程序为与第三方软件程序存在关联关系的应用程序;根据异常信息与第一应用程序的程序标识生成提示信息,并将提示信息发送至终端设备中。
根据本申请实施例的另一方面,还提供了一种应用程序的处理装置,包括:获取模块,用于获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序;解析模块,用于解析依赖树文件,得到第三方软件程序的要素信息,其中,要素信息为第三方软件程序的唯一标识;检测模块,用于根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系,其中,预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识;更新模块,用于在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的应用程序的处理方法。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的应用程序的处理方法。
在本申请中,采用通过应用程序的依赖树文件自动确定应用程序在运行过程中所调用的全部SDK的方式,首先获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,然后解析依赖树文件,得到第三方软件程序的要素信息,并根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系,最后在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序;要素信息为第三方软件程序的唯一标识;预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识。
由上述内容可知,本申请通过依赖树文件确定应用程序在运行过程中所调用的全部第三方软件程序,并将调用关系记录在预设文件中,从而实现了自动维护应用程序与第三方软件程序之间的调用关系的目的,与现有技术采用人工方式管理应用程序与第三方软件程序之间的调用关系相比,本申请的技术方式不仅降低了人工维护的成本,而且还提高了对第三方软件程序与应用程序的管理效率。
由此可见,通过本申请的技术方案,达到了自动管理应用程序与第三方软件程序之间的调用关系的目的,从而实现了提升第三方软件程序的管理效率的效果,进而解决了现有技术中在管理应用程序与第三方软件程序间的调用关系时存在的管理效率低的的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的应用程序的处理方法的流程图;
图2是根据本申请实施例的另一种可选的应用程序的处理方法的流程图;
图3是根据本申请实施例的一种可选的应用程序的处理装置的示意图;
图4是根据本申请实施例的一种可选的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,提供了一种应用程序的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
另外,还需要说明的是,一种应用程序管理系统可作为本申请实施例中的应用程序的处理方法的执行主体。
图1是根据本申请实施例的一种可选的应用程序的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识。
在步骤S101中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序。
具体的,上述的目标应用程序可以理解为是基于安卓系统开发的APP,上述的第三方软件程序为APP所能调用的SDK。其中,SDK可以分为本地SDK(对应本地软件程序)以及远程SDK(对应远程软件程序)。本地SDK可以理解为是与APP部署在同一台本地设备上的SDK,属于APP开发人员在开发APP的过程中自研发的SDK;远程SDK可以理解为是第三方提供的SDK,APP在调用远程SDK时,需要首先通过第三方提供的下载路径将远程SDK下载至本地设备中,然后才能调用远程SDK。
步骤S102,解析依赖树文件,得到第三方软件程序的要素信息。
在步骤S102中,要素信息为第三方软件程序的唯一标识。具体的,上述的要素信息为SDK的Maven三要素信息,其中,三要素分别为SDK的版本号、SDK的文件包名称、SDK的模块名称。Maven是java平台下的一款项目构建和依赖管理的自动化管理工具。
由于Maven三要素信息是第三方软件程序的唯一标识,因此,本申请在通过依赖树文件确定与目标应用程序相关联的多个第三方软件程序之后,能够通过每个第三方软件程序的Maven三要素信息区分不同的第三方软件程序。
步骤S103,根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系。
在步骤S103中,预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识。
具体的,上述的预设文件可以是部署在服务器中的一种数据库文件,并且该预设文件可以在显示设备中进行显示。其中,在APP与SDK之间发生调用关系之后,预设文件会将该调用关系进行记录,从而管理人员通过查阅预设文件,即可确定APP调用了哪些SDK,以及SDK被哪些APP进行了调用。
在一种可选的实施例中,表1示出了一种预设文件的示例:
表1
SDK三要素 | APP标识 |
ABC | 标识1 |
EDF | 标识1 |
EDF | 标识2 |
其中,如表1所示,对于三要素为ABC的SDK,其只被程序标识为标识1的APP进行了调用,对于三要素为EDF的SDK,其同时被程序标识为标识1的APP与程序标识为标识2的APP进行了调用。
步骤S104,在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。
在步骤S104中,应用程序管理系统在获取得到APP的程序标识,以及与该APP相关联的SDK的三要素信息之后,会在预设文件中轮询确定是否已经记录这些SDK与该APP之间的调用关系,如果存在遗漏记录某一个SDK与APP的调用关系的情况,则应用程序管理系统会将该SDK与APP的调用关系及时更新至预设文件中,从而避免了在管理SDK的过程中出现遗漏SDK的问题。
基于上述步骤S101至步骤S104的内容可知,在本申请中,采用通过应用程序的依赖树文件自动确定应用程序在运行过程中所调用的全部SDK的方式,首先获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,然后解析依赖树文件,得到第三方软件程序的要素信息,并根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系,最后在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序;要素信息为第三方软件程序的唯一标识;预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识。
由上述内容可知,本申请通过依赖树文件确定应用程序在运行过程中所调用的全部第三方软件程序,并将调用关系记录在预设文件中,从而实现了自动维护应用程序与第三方软件程序之间的调用关系的目的,与现有技术采用人工方式管理应用程序与第三方软件程序之间的调用关系相比,本申请的技术方式不仅降低了人工维护的成本,而且还提高了对第三方软件程序与应用程序的管理效率。
由此可见,通过本申请的技术方案,达到了自动管理应用程序与第三方软件程序之间的调用关系的目的,从而实现了提升第三方软件程序的管理效率的效果,进而解决了现有技术中在管理应用程序与第三方软件程序间的调用关系时存在的管理效率低的的技术问题。
在一种可选的实施例中,应用程序管理系统通过在安装有目标应用程序的操作系统中运行第一命令,获取第一依赖树子文件,并将第一依赖树子文件作为依赖树文件之一。其中,第一依赖树子文件用于表征远程软件程序与目标应用程序之间的依赖关系,以及第一本地软件程序与目标应用程序之间的依赖关系,第一本地软件程序为包含代码与资源文件,并且与目标应用程序为直接依赖关系的程序。
可选的,图2示出了根据本申请实施例的另一种可选的应用程序的处理方法的流程图。如图2所示,上述的第一命令为“../gradlew-qdependencies>../script/depends.txt”的Gradle命令。应用程序管理系统通过在安装有目标应用程序的操作系统中运行该命令,可以得到第一依赖树文件depends.txt。其中,第一依赖树文件depends.txt用于表征远程SDK与目标应用程序的依赖关系,以及第一本地SDK与目标应用程序的依赖关系,第一本地SDK为通过非artifact.add方式引入的arr格式的本地SDK。
在一种可选的实施例中,应用程序管理系统通过在操作系统中运行第二命令,获取第二依赖树子文件,并将第二依赖树子文件作为依赖树文件之一。其中,第二依赖树子文件用于表征第二本地软件程序与目标应用程序之间的依赖关系,以及第三本地软件程序与目标应用程序之间的依赖关系,第二本地软件程序为未包含资源文件的程序,第三本地软件程序为包含代码与资源文件,并且与目标应用程序为间接依赖关系的程序。
可选的,如图2所示,第二命令为“../gradlew anDep>../script/anDep.txt”的Gradle命令。应用程序管理系统通过在操作系统中运行第二命令,可以获取得到第二依赖树文件anDep.txt。其中,第二依赖树文件anDep.txt用于表征第二本地SDK与目标应用程序的依赖关系,以及第三本地SDK与目标应用程序的依赖关系,第二本地SDK为jar格式的本地SDK,第三本地SDK为通过artifact.add方式引入的arr格式的本地SDK。
需要注意到的是,通过运行第一命令以及第二命令,应用程序管理系统可以自动获取得到目标应用程序对应的第一依赖树文件与第二依赖树文件,由于依赖树文件中包含有与目标应用程序存在依赖关系的SDK的信息,因此,在得到依赖树文件的基础上,应用程序管理系统能够确定与目标应用程序关联的所有SDK,并且确保不会遗漏任何一个SDK。
在一种可选的实施例中,应用程序管理系统解析第一依赖树子文件,得到远程软件程序的要素信息,并且解析第一依赖树子文件以及第二依赖树子文件,得到本地软件程序的存储路径,然后根据存储路径确定本地软件程序的要素信息。其中,本地软件程序包括第一本地软件程序、第二本地软件程序以及第三本地软件程序。
可选的,如图2所示,通过解析第一依赖树文件depends.txt,应用程序管理系统能够获取得到远程SDK的Maven三要素信息,以及第一本地SDK的存储路径;通过解析第二依赖树文件anDep.txt,应用程序管理系统能够获取得到第二本地SDK的存储路径以及第三本地SDK的存储路径。
此外,应用程序管理系统还会将远程SDK的Maven三要素信息存储至第一文件中,将本地SDK(包括第一本地SDK、第二本地SDK、第三本地SDK)的存储路径的信息存储至第二文件中。其中,第一文件的文件路径可以是script/output/remoteList.txt;第二文件的文件路径可以是script/output/LocalList.txt。
在一种可选的实施例中,应用程序管理系统能够根据存储路径确定本地软件程序的信息摘要信息,并根据信息摘要信息确定本地软件程序的要素信息。其中,信息摘要信息为依据信息摘要算法对本地软件程序进行计算后得到的信息。
可选的,如图2所示,上述的信息摘要信息为本地SDK的MD5值,其中,MD5是一种信息摘要算法,该算法可以理解为是一种密码散列函数,用于产生出一个128位的散列值作为本地SDK的信息摘要信息。此外,应用程序管理系统在得到本地SDK的MD5值之后,可以将MD5值存储在第三文件中,其中,第三文件的文件路径为script/output/MD5List.txt。
另外,应用程序管理系统还会将本地SDK的MD5值上传至Maven接口中,然后Maven接口在接收到MD5值之后,会根据MD5值向应用程序管理系统返回本地SDK的Maven三要素信息。
在一种可选的实施例中,应用程序管理系统从预设文件中的所有程序标识中确定与要素信息相对应的至少一个程序标识,并检测至少一个程序标识中是否存在目标程序标识,在至少一个程序标识中存在目标程序标识的情况下,应用程序管理系统确定预设文件中包含目标应用程序与第三方软件程序之间的调用关系,在至少一个程序标识中未存在目标程序标识的情况下,应用程序管理系统确定预设文件中未包含目标应用程序与第三方软件程序之间的调用关系。
可选的,如图2所示,应用程序管理系统中包含有匹配通知模块,应用程序管理系统会将本地SDK的Maven三要素信息以及远程SDK的Maven三要素信息全部发送至匹配通知模块中,同时也会将目标应用程序的目标程序标识也发送至匹配通知模块中。
进一步地,匹配通知模块能够调用预设文件,并且根据上述的Maven三要素信息与预设文件中记录的SDK的Maven三要素信息进行匹配。举例而言,如果预设文件中记录了SDK1的要素信息为要素信息A,并且要素信息A对应的程序标识为程序1,说明在预设文件所记录的信息中,SDK1被程序1所调用。在此基础上,如果应用程序管理系统检测到与目标应用程序3关联的第三方软件程序的要素信息也为要素信息A,则说明该第三方软件程序为SDK1,此时,预设文件中还未记录SDKA与目标应用程序3之间的调用关系,因此,为了确保SDK1的所有调用关系全部被记录,应用程序管理系统会将目标应用程序3与SDK1之间的调用关系也添加至预设文件中。
需要说明的是,在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,应用程序管理系统还会生成邮件发送至终端设备中,以提醒架构师及时对目标应用程序与第三方软件程序进行管理。
在一种可选的实施例中,在将调用关系更新至预设文件中之后,应用程序管理系统还会检测第三方软件程序是否存在异常,在第三方软件程序存在异常时,应用程序管理系统获取第三方软件程序的异常信息,并根据第三方软件程序的要素信息以及预设文件确定第一应用程序的程序标识,最后根据异常信息与第一应用程序的程序标识生成提示信息,并将提示信息发送至终端设备中。其中,第一应用程序为与第三方软件程序存在关联关系的应用程序。
可选的,由于在某个SDK出现异常时,调用该SDK的APP也会受到影响,因此,为了提高运维效率以及提高用户使用体验,应用程序管理系统会在确定某一个SDK出现异常的情况下,根据预设文件确定该SDK对应的所有应用程序(即第一应用程序),并且从预设文件中读取这些第一应用程序的程序标识,最后根据这些程序标识与SDK的异常信息生成提示信息,并将提示信息以邮件的形式发送至终端设备中,以便提醒运维人员。运维人员在接收到提示信息之后,便可以对对应的应用程序以及SDK做出相应处理,例如,技术人员立即启动修复SDK的流程。在SDK修复时长较长时,运营人员暂停第一应用程序的使用,并及时对用户做出解释,尽可能地避免不必要的损失以及用户的抱怨。
由此可见,通过本申请的技术方案,实现了对SDK使用情况的自动扫描的目的,并且将SDK扫描结果进行了自动管理,从而在SDK问题排查时能够协助技术人员及时了解与SDK相关的应用程序的信息,进而提升了运维效率,有利于提高用户使用体验。
实施例2
根据本申请实施例,还提供了一种应用程序的处理装置,其中,图3是根据本申请实施例的一种可选的应用程序的处理装置的示意图,如图3所示,该装置包括:获取模块301,用于获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序;解析模块302,用于解析依赖树文件,得到第三方软件程序的要素信息,其中,要素信息为第三方软件程序的唯一标识;检测模块303,用于根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系,其中,预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识;更新模块304,用于在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。
需要说明的是,上述获取模块301、解析模块302、检测模块303以及更新模块304对应于上述实施例1中的步骤S101至步骤S104,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
可选的,上述获取模块还包括:第一获取单元以及第一确定单元。其中,第一获取单元,用于通过在安装有目标应用程序的操作系统中运行第一命令,获取第一依赖树子文件,其中,第一依赖树子文件用于表征远程软件程序与目标应用程序之间的依赖关系,以及第一本地软件程序与目标应用程序之间的依赖关系,第一本地软件程序为包含代码与资源文件,并且与目标应用程序为直接依赖关系的程序;第一确定单元,用于将第一依赖树子文件作为依赖树文件之一。
可选的,上述的获取模块还包括:第二获取单元以及第二确定单元。其中,第二获取单元,用于通过在操作系统中运行第二命令,获取第二依赖树子文件,其中,第二依赖树子文件用于表征第二本地软件程序与目标应用程序之间的依赖关系,以及第三本地软件程序与目标应用程序之间的依赖关系,第二本地软件程序为未包含资源文件的程序,第三本地软件程序为包含代码与资源文件,并且与目标应用程序为间接依赖关系的程序;第二确定单元,用于将第二依赖树子文件作为依赖树文件之一。
可选的,上述的解析模块还包括:第一解析单元、第二解析单元以及第三确定单元。其中,第一解析单元,用于解析第一依赖树子文件,得到远程软件程序的要素信息;第二解析单元,用于解析第一依赖树子文件以及第二依赖树子文件,得到本地软件程序的存储路径,其中,本地软件程序包括第一本地软件程序、第二本地软件程序以及第三本地软件程序;第三确定单元,用于根据存储路径确定本地软件程序的要素信息。
可选的,上述的第三确定单元还包括:第一确定子模块以及第二确定子模块。其中,第一确定子模块,用于根据存储路径确定本地软件程序的信息摘要信息,其中,信息摘要信息为依据信息摘要算法对本地软件程序进行计算后得到的信息;第二确定子模块,用于根据信息摘要信息确定本地软件程序的要素信息。
可选的,上述的检测模块还包括:第四确定单元、检测单元、第五确定单元以及第六确定单元。其中,第四确定单元,用于从预设文件中的所有程序标识中确定与要素信息相对应的至少一个程序标识;检测单元,用于检测至少一个程序标识中是否存在目标程序标识;第五确定单元,用于在至少一个程序标识中存在目标程序标识的情况下,确定预设文件中包含目标应用程序与第三方软件程序之间的调用关系;第六确定单元,用于在至少一个程序标识中未存在目标程序标识的情况下,确定预设文件中未包含目标应用程序与第三方软件程序之间的调用关系。
可选的,应用程序的处理装置还包括:第一获取模块、确定模块以及生成模块。其中,第一获取模块,用于在第三方软件程序存在异常时,获取第三方软件程序的异常信息;确定模块,用于根据第三方软件程序的要素信息以及预设文件确定第一应用程序的程序标识,其中,第一应用程序为与第三方软件程序存在关联关系的应用程序;生成模块,用于根据异常信息与第一应用程序的程序标识生成提示信息,并将提示信息发送至终端设备中。
实施例3
根据本申请实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述实施例1中的应用程序的处理方法。
实施例4
根据本申请实施例,还提供了一种电子设备实施例,其中,图4是根据本申请实施例的一种可选的电子设备的示意图,如图4所示,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取目标应用程序对应的依赖树文件以及目标应用程序的目标程序标识,其中,依赖树文件用于表征第三方软件程序与目标应用程序之间的依赖关系,第三方软件程序为目标应用程序在运行过程中所调用的程序,第三方软件程序包括本地软件程序以及远程软件程序;解析依赖树文件,得到第三方软件程序的要素信息,其中,要素信息为第三方软件程序的唯一标识;根据目标程序标识与要素信息检测预设文件中是否包含目标应用程序与第三方软件程序之间的调用关系,其中,预设文件中预先记录有第三方软件程序的要素信息以及与第三方软件程序存在历史调用记录的所有应用程序的程序标识;在检测到预设文件中未包含目标应用程序与第三方软件程序之间的调用关系时,将调用关系更新至预设文件中。
可选的,处理器执行程序时还实现以下步骤:通过在安装有目标应用程序的操作系统中运行第一命令,获取第一依赖树子文件,其中,第一依赖树子文件用于表征远程软件程序与目标应用程序之间的依赖关系,以及第一本地软件程序与目标应用程序之间的依赖关系,第一本地软件程序为包含代码与资源文件,并且与目标应用程序为直接依赖关系的程序;将第一依赖树子文件作为依赖树文件之一。
可选的,处理器执行程序时还实现以下步骤:通过在操作系统中运行第二命令,获取第二依赖树子文件,其中,第二依赖树子文件用于表征第二本地软件程序与目标应用程序之间的依赖关系,以及第三本地软件程序与目标应用程序之间的依赖关系,第二本地软件程序为未包含资源文件的程序,第三本地软件程序为包含代码与资源文件,并且与目标应用程序为间接依赖关系的程序;将第二依赖树子文件作为依赖树文件之一。
可选的,处理器执行程序时还实现以下步骤:解析第一依赖树子文件,得到远程软件程序的要素信息;解析第一依赖树子文件以及第二依赖树子文件,得到本地软件程序的存储路径,其中,本地软件程序包括第一本地软件程序、第二本地软件程序以及第三本地软件程序;根据存储路径确定本地软件程序的要素信息。
可选的,处理器执行程序时还实现以下步骤:根据存储路径确定本地软件程序的信息摘要信息,其中,信息摘要信息为依据信息摘要算法对本地软件程序进行计算后得到的信息;根据信息摘要信息确定本地软件程序的要素信息。
可选的,处理器执行程序时还实现以下步骤:从预设文件中的所有程序标识中确定与要素信息相对应的至少一个程序标识;检测至少一个程序标识中是否存在目标程序标识;在至少一个程序标识中存在目标程序标识的情况下,确定预设文件中包含目标应用程序与第三方软件程序之间的调用关系;在至少一个程序标识中未存在目标程序标识的情况下,确定预设文件中未包含目标应用程序与第三方软件程序之间的调用关系。
可选的,处理器执行程序时还实现以下步骤:在将调用关系更新至预设文件中之后,在第三方软件程序存在异常时,获取第三方软件程序的异常信息;根据第三方软件程序的要素信息以及预设文件确定第一应用程序的程序标识,其中,第一应用程序为与第三方软件程序存在关联关系的应用程序;根据异常信息与第一应用程序的程序标识生成提示信息,并将提示信息发送至终端设备中。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种应用程序的处理方法,其特征在于,包括:
获取目标应用程序对应的依赖树文件以及所述目标应用程序的目标程序标识,其中,所述依赖树文件用于表征第三方软件程序与所述目标应用程序之间的依赖关系,所述第三方软件程序为所述目标应用程序在运行过程中所调用的程序,所述第三方软件程序包括本地软件程序以及远程软件程序;
解析所述依赖树文件,得到所述第三方软件程序的要素信息,其中,所述要素信息为所述第三方软件程序的唯一标识;
根据所述目标程序标识与所述要素信息检测预设文件中是否包含所述目标应用程序与所述第三方软件程序之间的调用关系,其中,所述预设文件中预先记录有所述第三方软件程序的要素信息以及与所述第三方软件程序存在历史调用记录的所有应用程序的程序标识;
在检测到所述预设文件中未包含所述目标应用程序与所述第三方软件程序之间的调用关系时,将所述调用关系更新至所述预设文件中。
2.根据权利要求1所述的方法,其特征在于,获取目标应用程序对应的依赖树文件,包括:
通过在安装有目标应用程序的操作系统中运行第一命令,获取第一依赖树子文件,其中,所述第一依赖树子文件用于表征所述远程软件程序与所述目标应用程序之间的依赖关系,以及第一本地软件程序与所述目标应用程序之间的依赖关系,所述第一本地软件程序为包含代码与资源文件,并且与所述目标应用程序为直接依赖关系的程序;
将所述第一依赖树子文件作为所述依赖树文件之一。
3.根据权利要求2所述的方法,其特征在于,获取目标应用程序对应的依赖树文件,包括:
通过在所述操作系统中运行第二命令,获取第二依赖树子文件,其中,所述第二依赖树子文件用于表征第二本地软件程序与所述目标应用程序之间的依赖关系,以及第三本地软件程序与所述目标应用程序之间的依赖关系,所述第二本地软件程序为未包含所述资源文件的程序,所述第三本地软件程序为包含所述代码与所述资源文件,并且与所述目标应用程序为间接依赖关系的程序;
将所述第二依赖树子文件作为所述依赖树文件之一。
4.根据权利要求3所述的方法,其特征在于,解析所述依赖树文件,得到所述第三方软件程序的要素信息,包括:
解析所述第一依赖树子文件,得到所述远程软件程序的要素信息;
解析所述第一依赖树子文件以及所述第二依赖树子文件,得到所述本地软件程序的存储路径,其中,所述本地软件程序包括所述第一本地软件程序、所述第二本地软件程序以及所述第三本地软件程序;
根据所述存储路径确定所述本地软件程序的要素信息。
5.根据权利要求4所述的方法,其特征在于,根据所述存储路径确定所述本地软件程序的要素信息,包括:
根据所述存储路径确定所述本地软件程序的信息摘要信息,其中,所述信息摘要信息为依据信息摘要算法对所述本地软件程序进行计算后得到的信息;
根据所述信息摘要信息确定所述本地软件程序的要素信息。
6.根据权利要求1所述的方法,其特征在于,根据所述目标程序标识与所述要素信息检测预设文件中是否记录有所述目标应用程序与所述第三方软件程序之间的调用关系,包括:
从所述预设文件中的所有程序标识中确定与所述要素信息相对应的至少一个程序标识;
检测所述至少一个程序标识中是否存在所述目标程序标识;
在所述至少一个程序标识中存在所述目标程序标识的情况下,确定所述预设文件中包含所述目标应用程序与所述第三方软件程序之间的调用关系;
在所述至少一个程序标识中未存在所述目标程序标识的情况下,确定所述预设文件中未包含所述目标应用程序与所述第三方软件程序之间的调用关系。
7.根据权利要求1所述的方法,其特征在于,在将所述调用关系更新至所述预设文件中之后,所述方法还包括:
在所述第三方软件程序存在异常时,获取所述第三方软件程序的异常信息;
根据所述第三方软件程序的要素信息以及所述预设文件确定第一应用程序的程序标识,其中,所述第一应用程序为与所述第三方软件程序存在关联关系的应用程序;
根据所述异常信息与所述第一应用程序的程序标识生成提示信息,并将所述提示信息发送至终端设备中。
8.一种应用程序的处理装置,其特征在于,包括:
获取模块,用于获取目标应用程序对应的依赖树文件以及所述目标应用程序的目标程序标识,其中,所述依赖树文件用于表征第三方软件程序与所述目标应用程序之间的依赖关系,所述第三方软件程序为所述目标应用程序在运行过程中所调用的程序,所述第三方软件程序包括本地软件程序以及远程软件程序;
解析模块,用于解析所述依赖树文件,得到所述第三方软件程序的要素信息,其中,所述要素信息为所述第三方软件程序的唯一标识;
检测模块,用于根据所述目标程序标识与所述要素信息检测预设文件中是否包含所述目标应用程序与所述第三方软件程序之间的调用关系,其中,所述预设文件中预先记录有所述第三方软件程序的要素信息以及与所述第三方软件程序存在历史调用记录的所有应用程序的程序标识;
更新模块,用于在检测到所述预设文件中未包含所述目标应用程序与所述第三方软件程序之间的调用关系时,将所述调用关系更新至所述预设文件中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的应用程序的处理方法。
10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至7任一项中所述的应用程序的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210993978.7A CN115291942A (zh) | 2022-08-18 | 2022-08-18 | 应用程序的处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210993978.7A CN115291942A (zh) | 2022-08-18 | 2022-08-18 | 应用程序的处理方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115291942A true CN115291942A (zh) | 2022-11-04 |
Family
ID=83831058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210993978.7A Pending CN115291942A (zh) | 2022-08-18 | 2022-08-18 | 应用程序的处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115291942A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543410A (zh) * | 2022-11-29 | 2022-12-30 | 深圳开源互联网安全技术有限公司 | 组件依赖关系分析方法、装置与介质 |
-
2022
- 2022-08-18 CN CN202210993978.7A patent/CN115291942A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543410A (zh) * | 2022-11-29 | 2022-12-30 | 深圳开源互联网安全技术有限公司 | 组件依赖关系分析方法、装置与介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201407341A (zh) | 修復軟體運行錯誤的方法、裝置及系統 | |
CN111158741B (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
CN111061498B (zh) | 一种配置信息管理系统 | |
US8914798B2 (en) | Production control for service level agreements | |
CN111190573A (zh) | 应用程序埋点方法、装置和电子设备 | |
CN109462507B (zh) | 配置更新方法、装置、系统及电子设备 | |
CN115291942A (zh) | 应用程序的处理方法、装置及计算机可读存储介质 | |
CN115292163A (zh) | 应用程序的检测方法、装置及计算机可读存储介质 | |
US20100031095A1 (en) | Method and apparatus for enhancing ticketing system in a service management process for efficient problem resolultion | |
CN108595178B (zh) | 一种基于hook的数据采集方法、装置及设备 | |
CN110727563A (zh) | 预设客户的云服务报警方法及装置 | |
CN102457777B (zh) | 一种电视网络问题分级处理方法、处理系统及电视 | |
CN117201119A (zh) | 开源组件的风险识别方法、装置及电子设备 | |
CN116028243A (zh) | 消息处理方法和装置 | |
CN112181695A (zh) | 异常应用处理方法、装置、服务器及存储介质 | |
CN110580216A (zh) | 一种应用提测的方法和装置 | |
CN115757107A (zh) | 埋点检测方法、装置、服务器及存储介质 | |
CN115080401A (zh) | 一种自动化测试方法和相关装置 | |
CN114490005A (zh) | 一种日志处理的方法、装置、电子设备及存储介质 | |
CN113806437B (zh) | 一种基于Linux服务器的数据交付方法、设备、存储介质 | |
US20060069757A1 (en) | Automated PCN downloads | |
US11115275B2 (en) | Systems and methods for automated technology resource decommissioning | |
CN110008103B (zh) | 第三方应用程序的日志收集方法、系统、装置及存储介质 | |
KR101883407B1 (ko) | 에이전트리스 방식의 정보시스템 예방점검방법 및 시스템 | |
CN112417085A (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 |