CN117130897A - 安装包检测方法、装置、介质与电子设备 - Google Patents

安装包检测方法、装置、介质与电子设备 Download PDF

Info

Publication number
CN117130897A
CN117130897A CN202210555545.3A CN202210555545A CN117130897A CN 117130897 A CN117130897 A CN 117130897A CN 202210555545 A CN202210555545 A CN 202210555545A CN 117130897 A CN117130897 A CN 117130897A
Authority
CN
China
Prior art keywords
character string
file
list
code
resource file
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
CN202210555545.3A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202210555545.3A priority Critical patent/CN117130897A/zh
Publication of CN117130897A publication Critical patent/CN117130897A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种安装包检测方法、装置、介质与电子设备,涉及计算机技术领域。所述安装包检测方法包括:获取待检测安装包的工程文件,获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表,若在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,并根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表。本公开提供了一种安装包的自动化检测方法,提高了安装包中缺失资源文件的检测效率和精准度。

Description

安装包检测方法、装置、介质与电子设备
技术领域
本公开涉及计算机技术领域,尤其涉及一种安装包检测方法、安装包检测装置、计算机可读存储介质与电子设备。
背景技术
在开发好的应用程序安装包中,通常可以包括代码文件和资源文件,资源文件可以包括文件、图片、视频或者音频等文件,代码文件中的代码在运行过程中,可以调用资源文件,展示相应的内容或者实现相应的功能。
在应用程序开发过程中,由于多人协作等各方面的原因,开发好的安装包中,可能存在资源文件缺失的情况,导致应用程序在运行过程中,由于无法调用需要的资源文件,导致应用程序无法展示相应的内容或者实现相应的功能,影响用户的使用体验。
发明内容
本公开提供了一种安装包检测方法、装置、介质与电子设备,进而提升安装包中缺失资源文件的检测效率和精准度。
根据本公开的第一方面,提供一种安装包检测方法,包括:
获取待检测安装包的工程文件,所述工程文件包括至少一个代码文件和至少一个资源文件;
获取每个所述资源文件的文件名得到至少一个第一字符串,并将所述至少一个第一字符串存储至第一字符串列表;
若在任一所述代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将所述字符串确定为第二字符串;
若确定所述第一字符串列表中不存在与所述第二字符串相同的所述第一字符串,则将所述第二字符串存储至待处理字符串列表中,并根据所述待处理字符串列表和所述第一字符串列表,确定缺失资源文件列表。
根据本公开的第二方面,提供一种安装包检测装置,包括:
获取模块,被配置为获取待检测安装包的工程文件,所述工程文件包括至少一个代码文件和至少一个资源文件;
存储模块,被配置为获取每个所述资源文件的文件名得到至少一个第一字符串,并将所述至少一个第一字符串存储至第一字符串列表;
第一确定模块,被配置为若在任一所述代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将所述字符串确定为第二字符串;
第二确定模块,被配置为若确定所述第一字符串列表中不存在与所述第二字符串相同的所述第一字符串,则将所述第二字符串存储至待处理字符串列表中,并根据所述待处理字符串列表和所述第一字符串列表,确定缺失资源文件列表。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面的方法。
根据本公开的第四方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储处理器的可执行指令;
其中,处理器配置为经由执行可执行指令来执行第一方面的方法。
本公开的技术方案具有以下有益效果:
提供了一种安装包检测方法、装置、介质与电子设备,可以获取待检测安装包的工程文件,获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表,若在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,并根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表。提供了一种安装包的自动化检测方法,提高了安装包中缺失资源文件的检测效率和精准度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中一种安装包检测系统的示意性架构图;
图2示出本示例性实施方式中一种安装包检测方法的流程示意图;
图3示出本示例性实施方式中另一种安装包检测方法的流程示意图;
图4示出本示例性实施方式中又一种安装包检测方法的流程示意图;
图5示出本示例性实施方式中一种检测工具的交互界面图;
图6示出本示例性实施方式中另一种检测工具的交互界面;
图7示出本示例性实施方式中又一种检测工具的交互界面;
图8示出本示例性实施方式中另一种安装包检测装置的结构示意图;
图9示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
相关技术中,通常可以通过人工对应用程序安装包中的代码文件和资源文件进行核查,以查找代码运行过程中无法调运资源文件的代码,进而确定应用程序安装包中的缺失资源文件。
然而,通过人工确定应用程序安装包中缺失资源文件的过程,通常需要耗费较多的人力以及较长的时间,效率低下,且可能出现核查结果不准确,漏查或者误查的情况。
鉴于上述问题,本公开的示例性实施方式提供一种安装包检测方法。该安装包检测方法的应用场景包括但不限于:在应用程序开发完成后,利用检测工具对应用程序安装包的工程文件进行检测,以检测应用程序的安装包中的缺失资源文件。
为了实现上述安装包检测方法,本公开的示例性实施方式提供一种安装包检测系统。图1示出了该安装包检测系统的示意性架构图。如图1所示,安装包检测系统100可以包括第一终端110和第二终端120。其中,第一终端110是安装包检测服务提供方使用的终端设备。第二终端120是安装包检测服务需求方使用的终端设备,更具体地,终端设备可以是如智能手机、个人电脑、平板电脑或者服务器等。第一终端110与第二终端120可以通过网络建立连接。
在一种可选的实施方式中,第二终端120可以向第一终端110发送安装包检测请求,第一终端110在接收到安装包检测请求之后,可以解析安装包检测请求,得到待检测安装包的工程文件,并将待检测安装包的工程文件存储于第一终端110中,并利用第一终端110中的检测工具,对待检测安装包的工程文件进行检测,得到检测结果,进一步的,第一终端110将检测结果发送至第二终端120。其中,检测工具可以实现本公开实施例中提供的安装包检测方法。
下面从第一终端的角度,对安装包检测方法进行说明。图2示出了由第一终端执行的安装包检测方法的示例性流程,可以包括步骤S201至步骤S204:
步骤S201,获取待检测安装包的工程文件;
在本公开实施例中,工程文件包括至少一个代码文件和至少一个资源文件。
步骤S202,获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表;
步骤S203,若在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;
在本公开实施例中,目标资源文件为程序代码运行过程中,需要调用的资源文件。
步骤S204,若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,并根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表。
在本公开实施例中,可以获取待检测安装包的工程文件,获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表,若在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,并根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表。提供了一种安装包的自动化检测方法,提高了安装包中缺失资源文件的检测效率和精准度。
在一个可选的实施例中,在上述步骤S201中,第一终端可以获取待检测安装包的工程文件。
在本公开实施例中,应用程序开发完成后,应用程序的安装包可以以工程文件形式保存。待检测安装包为待检测应用程序的安装包,工程文件可以包括至少一个代码文件和至少一个资源文件,其中,代码文件指的是运行过程中需要执行的程序代码的文件,资源文件可以为图片、视频或者音频等文件。
在一种可选的实施方式中,第一终端中可以预先存储待检测安装包的工程文件,则第一终端获取待检测安装包的工程文件的过程可以包括:响应于工程文件检测操作,获取待检测安装包的工程文件。
需要说明的是,在本公开实施例中,第一终端在获取到待检测安装包的工程文件后,可以对工程文件中的多个待检测文件进行扫描分析,确定至少一个代码文件和至少一个资源文件。
其中,第一终端对工程文件中的多个待检测文件进行扫描分析,确定至少一个代码文件和至少一个资源文件的过程包括:获取工程文件中每个待检测文件的文件名,若待检测文件的后缀为代码文件后缀,则确定待检测文件为代码文件;若待检测待文件的后缀为资源文件后缀,则确定待检测文件为资源文件,代码文件后缀和资源文件后缀可以基于需要确定,本公开实施例对此不作限定。示例的,代码文件后缀可以包括:“.h”、“.m”、“.mm”、“.swfit”和“.xib”等;资源文件后缀可以包括:“.imageset”、“.png”、“.jpg”、“.wedp”和“.pdf”等。
在一个可选的实施例中,在上述步骤S202中,第一终端可以获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表。
在本公开实施例中,资源文件通常以字符串形式命名,第一字符串指的是组成资源文件的文件名的字符信息的组合。
在一种可选的实施方式中,对于每个资源文件,第一终端可以获取资源文件的文件名,将文件名确定为第一字符串,并将第一字符串存储至第一字符串列表,得到最终的第一字符串列表。
在一个可选的实施例中,在上述步骤S203中,若第一终端确定在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串。
在本公开实施例中,代码文件中存储的是应用程序运行过程中需要执行的程序代码,目标资源文件为程序代码运行过程中需要调用的资源文件。在需要调用资源文件的程序代码中,可以调用两种类型的资源文件,一种可以是应用程序安装包中的资源文件,另一种可以是网络资源。对于安装包中的资源文件,在程序代码的编写过程中,可以将本地资源文件的文件名(字符串)确定为资源文件的标识;对于网络资源,在程序代码的编写过程中,可以将包含资源文件的地址信息的属性名或者变量名确定为资源文件的文件标识,其中,地址信息可以是资源定位符(Uniform Resource Locator,URL)。
在一种可选的实施方式中,第一终端确定程序代码调用目标资源文件的形式的过程可以包括:对代码文件中存储的程序代码进行扫描,检测到目标关键词后,获取与目标关键词关联的代码内容,得到待检测文件标识,按照预先确定的字符串匹配规则对待检测文件标识进行匹配,若匹配成功,则确定在代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件;若匹配失败,则在代码文件存储的程序代码中,以非字符串为文件标识调用目标资源文件。其中,包含目标关键词的代码在运行过程中,可以调用待检测文件标识对应的资源文件;目标关键词可以基于程序代码的编写语言或者实际情况确定,本公开实施例对此不作限定,示例的,目标关键词可以包括:imageNamed、imageName或ContentsOfFile等。预先确定的字符串匹配规则可以包括,与预先确定的正则表达式对应的字符串匹配规则。
其中,包含目标关键词的程序代码还包含待检测文件标识,目标关键词和待检测文件标识通过分割符区分,则第一终端获取与目标关键词关联的代码内容的过程可以包括:确定包含目标关键词的目标代码,获取目标代码中分隔符两侧的两个代码内容,将非目标关键词的代码内容,确定为与目标关键词关联的代码内容;分隔符可以为“:”,目标代码可以包括一行程序代码。
可以理解的是,第一终端可以按照上述实施例中提供的确定程序代码调用目标资源文件的形式的过程,确定每个代码文件存储的程序代码调用目标资源文件的形式。其中,若第一终端确定在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串。
在一种可选的实施方式中,若第一终端确定在代码文件存储的程序代码中,以非字符串为文件标识调用目标资源文件,则确定程序代码为第二警示代码,并将第二警示代码存储至第二警示代码列表。需要说明的是,非字符串的文件标识通常可以是目标资源文件的属性名或者变量名。第二警示代码列表中包括,应用程序运行过程中需要调用非安装包中资源文件的程序代码,可以通过展示第二警示代码列表,提示开发人员或者测试人员对第二代码警示列表中的代码进行核对,以保证应用程序上线后,可以成功实现其功能或者展示相应内容。
其中,第一终端确定程序代码为第二警示代码的过程可以包括:确定包含非字符串文件标识的程序代码,将包含非字符串文件标识的程序代码确定为第二警示代码。可以理解的是,包含非字符串文件标识的程序代码通常可以是一行程序代码。
在一个可选的实施例中,在上述步骤S204中,若第一终端确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,并根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表。
在本公开实施例中,第二字符串为程序代码中的字符串,也即是在应用程序运行过程中,需要调用文件名为第二字符串的资源文件。对于第二字符串,若第一字符串列表中不存在与第二字符串相同的第一字符串,表示应用程序的安装包中不包括文件名为第二字符串的资源文件,在应用程序运行过程中,无法调用文件名为第二字符串的资源文件,因此,若第一字符串列表中不存在与第二字符串相同的第一字符串,则需要将第二字符串确定为待处理字符串;并进一步确定出现待处理字符串的原因是;资源文件中不存在目标程序代码运行过程中需要调用的目标资源文件导致的;或者,资源文件中可能存在目标程序代码运行过程中需要调用的目标资源文件,但是,在程序代码的编辑过程中的失误,导致在第一字符串列表中无法匹配到与第二字符串相同的第一字符串,以便于获得更精准的安装包检测结果;目标程序代码为包含待处理字符串的程序代码。
在一种可选的实施方式中,第一终端根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表的过程可以包括:
将待处理第二字符串与第一字符串列表中的每个第一字符串进行相似度匹配处理,得到至少一个字符串相似度值;判断至少一个字符串相似度值中,每个字符串相似度值是否均小于字符串相似度阈值,若确定至少一个字符串相似度值中,每个字符串相似度值小于字符串相似度阈值,则确定待处理字符串为目标第一字符串,并将目标第一字符串存储至缺失资源文件列表。其中,待处理第二字符串为待处理字符串列表中的每个第二字符串,字符串相似度阈值可以基于实际需要确定,本公开实施例对此不作限定。可以理解的是,目标第一字符串用于指示,待检测安装包的工程文件中缺失的资源文件的文件名。
在一种可选的实施方式中,若确定至少一个字符串相似度值中,任一字符串相似度值大于或者等于字符串相似度阈值,则获取待处理第二字符串对应的程序代码,并将程序代码存储至第一警示代码列表。其中,待处理第二字符串对应的程序代码可以是包含待处理第二字符串的程序代码。第一警示代码列表中包括文件标识可能编辑错误的程序代码。可以通过展示第一警示代码列表,提示开发人员或者测试人员对第一代码警示列表中的代码进行核对,以保证应用程序上线后,可以成功实现其功能或者展示相应内容。
在一种可选的实施方式中,为了提高安装包检测效率,在将字符串确定为第二字符串之后,第一终端还可以将第二字符串存储至第二字符串列表。可以理解的是,对于第二字符串列表中的每个第二字符串,第一终端可以根据上述步骤S204中的实现方式,若第一终端确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,可以快速的确定待处理字符串列表。
在一种可选的实施方式中,在第一终端获取到第二字符串列表后,若第一终端确定第二字符串列表中,不存在与第一字符串列表中任一第一字符串相同的第二字符串,则将第一字符串存储至无效资源文件列表。可以通过展示无效资源文件列表,提示开发人员或者测试人员,删除应用程序的安装包中的无用资源文件,减小安装包的数据量,在应用程序上线后,可以提升应用程序的下载速度,并在应用程序运行过程中,减少卡顿等问题的出现。
示例的,如图3所示,图3示出了本公开实施例提供的一种安装包检测方法的流程示意图,包括步骤S301至步骤S312,
步骤S301,获取待检测安装包的工程文件;
步骤S302,对工程文件中的多个待检测文件进行扫描分析,确定至少一个代码文件和至少一个资源文件;
步骤S303,获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表;
步骤S304,对于每个代码文件,判断在代码文件存储的程序代码中,是否以字符串为文件标识调用目标资源文件;
步骤S305,若确定在任一代码文件存储的程序代码中,以非字符串为文件标识调用目标资源文件,则确定程序代码为第二警示代码,并将第二警示代码存储至第二警示代码列表;
步骤S306,若确定在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;
步骤S307,若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中;
步骤S308,将待处理第二字符串与第一字符串列表中的每个第一字符串进行相似度匹配处理,得到至少一个字符串相似度值;
步骤S309,判断至少一个字符串相似度值中,每个字符串相似度值是否均小于字符串相似度阈值;
步骤S310,若确定至少一个字符串相似度值中,每个字符串相似度值小于字符串相似度阈值,则确定待处理字符串为目标第一字符串,并将目标第一字符串存储至缺失资源文件列表;
步骤S311,若确定至少一个字符串相似度值中,任一字符串相似度值大于或者等于字符串相似度阈值,则获取待处理第二字符串对应的程序代码,并将程序代码存储至第一警示代码列表。
在一个可选的实施例中,本公开实施例提供的安装包检测方法可以基于第一终端中的检测工具实现,检测工具可以是预先开发的应用程序,检测工具可以安装于第一终端中,在需要对待检测安装包进行检测时,第一终端可以基于对检测工具的操作,实现安装包检测。其中,基于检测工具实现的安装包检测流程可以如图4所示,图4示出了本公开实施例提供的一种安装包检测流程,包括步骤S401至步骤S412:
步骤S401,响应于对检测工具的运行操作,显示检测工具的交互界面;
在本公开实施例中,检测工具的交互界面如图5所示,包括检测条件设置区域501,检测模式设置区域502和检测结果显示区域503,在检测条件设置区域501中,“Projectpath”表示文件路径,在文件路径对应的输入框中,用户可以输入待检测安装包的工程文件的文件路径;“Exclude folder”表示过滤文件,在过滤文件对应的输入框中,用户可以输入工程文件中无需被检测文件名;“Funcs Name”表示自定义函数名,在自定义函数名对应的输入框中,可以输入安装包中的程序代码开发过程中,开发人员自定义的函数名。其中,检测条件设置区域501中还包括“Browse”控件,用于供用户获取待检测安装包的工程文件的文件路径。
在检测模式设置区域502中,包括资源文件检测模式设置区域5021,和代码文件检测模式设置区域5022,资源文件检测模式设置区域5021用于设置资源文件的扫描模式,以在安装包检测过程中确定资源文件,其中,“Rescource Suffix”表示资源文件后缀,在资源文件后缀对应的输入框中,用户可以输入安装包中资源文件的后缀;代码文件检测模式设置区域5022用于设置代码文件的扫描模式,其中,扫描模式包括“Enable”表示可供选择,“File Suffix”表示代码文件后缀,“Regular Expression”表示正则表达式,“Groupindex”表示群组索引;其中,代码文件检测模式设置区域5022还包括“Remove”控件,用于供用户删除已有的代码文件的扫描模式;“Add”控件,用于供用户添加新的扫描模式。
检测结果显示区域503,包括“Unused”控件,用于供用户查看无效资源文件,“Warning”控件,用于供用户查看警示代码,“shortage”控件,用于供用户查看缺失资源文件;“Delete”控件,用于供用户删除无效资源文件,“Export”控件,用于供用户查看资源文件的文件信息,“Search”控件,用于供用户利用检测工具进行安装包检测。
在本步骤S401中,第一终端可以响应于对检测工具的运行操作,显示检测工具的交互界面。其中,对检测工具的运行操作可以包括对检测工具的图标的双击操作或者触控操作。
进一步的,第一终端可以响应于检测模式设置操作,获取待检测安装包的工程文件的检测模式,其中,第一响应于检测模式设置操作,获取待检测安装包的工程文件的检测模式的过程可以包括:第一终端获取用户在资源文件后缀对应的输入框中输入的资源文件的后缀;和/或,第一终端响应于对“Remove”控件的单击操作或者触控操作,控制预先设置的每个代码文件的扫描模式的“Enable”为可供选择状态,响应于对预先设置的某一代码文件的扫描模式的“Enable”的非选中操作,过滤该代码文件的扫描模式;和/或,第一终端响应于对“Add”控件的单击操作或者触控操作,显示代码文件的扫描模式设置界面,并获取用户输入的代码文件后缀,以及与代码文件后缀对应的正则表达式,得到代码文件的一种扫描模式。
步骤S402,响应于工程文件检测操作,获取待检测安装包的工程文件;
在本步骤S402中,第一终端可以响应于工程文件检测操作,确定文件路径对应的输入框中的文件路径,获取与文件路径对应的文件,得到待检测安装包的工程文件。其中,工程文件检测操作可以是对“Search”控件的点击操作或者触控操作。
需要说明的是,在本公开实施例中,文件路径对应的输入框中的文件路径可以是用户直接输入的;也可以是第一终端响应于对“Browse”控件的点击操作或者触控操作,显示多个工程文件,并响应于对任一工程文件的选中操作,获取该被选中工程文件的路径信息,并将获取到的路径信息显示与输入框中。
步骤S403,对工程文件中的多个待检测文件进行扫描分析,确定至少一个代码文件和至少一个资源文件;
在本步骤S403中,第一终端可以按照交互界面中,检测模式设置区域中的资源文件的扫描模式确定资源文件,以及按照交互界面中检测模式设置区域中的代码文件的扫描模式确定代码文件。
示例的,若交互界面中,检测模式设置区域中的资源文件的扫描模式,以及代码文件的扫描模式如图5所示,则第一终端在对工程文件中的多个待检测文件进行扫描分析的过程中,可以将后缀名为“.imageset”、“.png”、“.jpg”、“.wedp”和“.pdf”的待检测文件确定为资源文件,将后缀名为“.h”、“.m”、“.mm”、“.swfit”和“.xib”的待检测文件确定为代码文件。
在一种可选的实施方式中,在对工程文件中的多个待检测文件进行扫描分析,确定至少一个代码文件和至少一个资源文件之前,若第一终端在交互界面的过滤文件(Exclude folder)对应的输入框中,检测到预先输入的目标文件名,则可以将工程文件中目标文件名对应的文件确定为非待检测文件,无需对该非待检测文件进行扫描分析,满足用户的检测需求,且可以提高效率。
示例的,若交互界面中过滤文件(Exclude folder)对应的输入框如图5所示,则第一终端可以将工程文件中“Pods”对应的文件确定为非待检测文件,无需对该非待检测文件进行扫描分析。
进一步的,第一终端可以获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表;
步骤S404,若确定在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;
在本步骤S404中,第一终端确定程序代码调用目标资源文件的形式的过程可以参考上述步骤S203中确定程序代码调用目标资源文件的形式,本公开实施例对此不做赘述;进一步的,第一终端还可以将第二字符串存储至第二字符串列表。
示例的,若交互界面中,检测模式设置区域中的代码文件的扫描模式如图5所示,则对于后缀为“.m”的代码文件中存储的程序代码,获取到待检测文件标识后,可以利用与正则表达式“@"(.*?)"”对应的字符串匹配规则,对待检测文件标识进行匹配;对于后缀为“.swift”的代码文件中存储的程序代码,获取到待检测文件标识后,可以利用与正则表达式“"(.*?)"”对应的字符串匹配规则,对待检测文件标识进行匹配。
步骤S405,若确定第二字符串列表中,不存在与第一字符串列表中任一第一字符串相同的第二字符串,则将第一字符串存储至无效资源文件列表。
在本步骤S405中,第一终端将第一字符串存储至无效资源文件列表的过程可以包括:确定与第一字符串对应的资源文件的资源文件后缀,将第一字符串以及与第一字符串对应的资源文件的资源文件后缀,确定为无效资源文件的文件名,存储至无效资源文件列表。
步骤S406,显示无效资源文件列表。
在本步骤S406中,第一终端可以在检测工具的交互界面的检测结果显示区域中显示无效资源文件列表。
示例的,若交互界面中,交互界面的检测结果显示区域中显示的无效资源文件列表如图5所示,表示在对待检测安装包的工程文件进行检测之后,在工程文件的资源文件中,文件名为“未使用的图片.imageset”的资源文件为无效资源文件。
在一种可选的实施方式中,第一终端可以响应于无效资源文件显示操作,显示无效资源文件列表,其中,无效资源文件显示操作,可以是对“Unused”控件的单击操作或者触控操作。
步骤S407,若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表。
在本步骤S407中,对于第二字符串列表中的每个第二字符串,若第一终端确定第一字符串列表中不存在与第二字符串相同的第一字符串,则可以将第二字符串存储至待处理字符串列表。
步骤S408,根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表和第一警示代码列表。
在本步骤S408中,第一终端确定缺失资源文件列表和第一警示代码列表的过程可以参考上述实施例,本公开实施例对此不作赘述。
步骤S409,若在任一代码文件存储的程序代码中,以非字符串为文件标识调用目标资源文件,则确定程序代码为第二警示代码,并将第二警示代码存储至第二警示代码列表。
步骤S410,响应于无效资源文件删除操作,删除无效资源文件列表中第一字符串对应的资源文件。
在本步骤S410中,第一终端可以响应于无效资源文件删除操作,删除无效资源文件。其中,无效资源文件删除操作可以包括,响应于对无效资源文件列表中的无效资源文件的文件名(第一字符串以及与第一字符串对应的资源文件的资源文件后缀)的选中操作,以及响应于对“Delete”控件的单击操作或者触控操作。
步骤S411,响应于警示代码显示操作,显示第一警示代码列表。
在本步骤S411中,第一终端可以响应于警示代码显示操作,显示第一警示代码列表。其中,警示代码显示操作,可以是对“Warning”控件的单击操作或者触控操作。
步骤S412,响应于警示代码显示操作,显示第二警示代码列表;
在本步骤S412中,第一终端可以响应于警示代码显示操作,显示第二警示代码列表。其中,警示代码显示操作,可以是对“Warning”控件的单击操作或者触控操作。
需要说明的是,若对待检测安装包的工程文件的检测结果包括第一警示代码列表和第二警示代码列表,则第一终端可以响应于警示代码显示操作,显示第一警示代码列表和第二警示代码列表。
示例的,若第一终端响应于警示代码显示操作,显示第一警示代码列表和/或第二警示代码列表的交互界面如图6所示。其中,检测结果显示区域503中显示的程序代码包括:“pathForRescource:imageNameofType:@".apng"]”、“imageNamed:dictionary[@"image"]]]”、“imageName:dict[@"image"]]”、“ContentsOfFile:path]”和“imageNamed:imageName”。
步骤S413,响应于缺失资源显示操作,显示缺失资源文件列表;
在本步骤S413中,第一终端可以响应于缺失资源显示操作,显示缺失资源文件列表。其中,缺失资源显示操作可以是对“shortage”控件的单击操作或者触控操作。
示例的,若第一终端响应于缺失资源显示操作,显示缺失资源文件列表的交互界面如图7所示。其中,检测结果显示区域503中显示的缺失资源文件包括:“.apng”、“slash_detail_share_animation2”、“JDIDShare”和“slash_detail_share_animation1”。可以理解的是测结果显示区域显示的是缺失资源文件的文件名对应的字符串。
需要说明的是,本公开实施例对上述步骤S410至步骤S413的执行先后顺序不做限制,可以基于实际需要确定。
本公开实施例提供一种安装包检测装置,如图8所示,安装包检测装置800包括:
获取模块801,被配置为获取待检测安装包的工程文件,工程文件包括至少一个代码文件和至少一个资源文件;
存储模块802,被配置为获取每个资源文件的文件名得到至少一个第一字符串,并将至少一个第一字符串存储至第一字符串列表;
第一确定模块803,被配置为若在任一代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将字符串确定为第二字符串;
第二确定模块804,被配置为若确定第一字符串列表中不存在与第二字符串相同的第一字符串,则将第二字符串存储至待处理字符串列表中,并根据待处理字符串列表和第一字符串列表,确定缺失资源文件列表。
可选的,第二确定模块804,被配置为:
将待处理第二字符串与第一字符串列表中的每个第一字符串进行相似度匹配处理,得到至少一个字符串相似度值,待处理第二字符串为待处理字符串列表中的每个第二字符串;
若确定至少一个字符串相似度值中,每个字符串相似度值小于字符串相似度阈值,则确定待处理字符串为目标第一字符串,并将目标第一字符串存储至缺失资源文件列表。
可选的,如图8所示,安装包检测装置800还包括:显示模块805,被配置为:
响应于缺失资源显示操作,显示缺失资源文件列表。
可选的,存储模块802,还被配置为:
若确定至少一个字符串相似度值中,任一字符串相似度值大于或者等于字符串相似度阈值,则获取待处理第二字符串对应的程序代码,并将程序代码存储至第一警示代码列表。
可选的,显示模块805,还被配置为:
响应于警示代码显示操作,显示第一警示代码列表。
可选的,存储模块802,还被配置为:
若在任一代码文件存储的程序代码中,以非字符串为文件标识调用目标资源文件,则确定程序代码为第二警示代码,并将第二警示代码存储至第二警示代码列表。
可选的,显示模块805,还被配置为:
响应于警示代码显示操作,显示第二警示代码列表。
可选的,存储模块802,还被配置为:
将第二字符串存储至第二字符串列表;
若确定第二字符串列表中,不存在与第一字符串列表中任一第一字符串相同的第二字符串,则将第一字符串存储至无效资源文件列表。
可选的,显示模块805,还被配置为显示无效资源文件列表;
安装包检测装置800还包括:删除模块806,被配置为响应于无效资源文件删除操作,删除无效资源文件列表中第一字符串对应的资源文件。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种电子设备,可以是终端涉笔。下面参考图9对该电子设备进行说明。应当理解,图9显示的电子设备900仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:至少一个处理单元910、至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930。
其中,存储单元存储有程序代码,程序代码可以被处理单元910执行,使得处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元910可以执行如图2所示的方法步骤等。
存储单元920可以包括易失性存储单元,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以包括数据总线、地址总线和控制总线。
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口940进行。电子设备900还可以通过网络适配器950与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器950通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

Claims (12)

1.一种安装包检测方法,其特征在于,包括:
获取待检测安装包的工程文件,所述工程文件包括至少一个代码文件和至少一个资源文件;
获取每个所述资源文件的文件名得到至少一个第一字符串,并将所述至少一个第一字符串存储至第一字符串列表;
若在任一所述代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将所述字符串确定为第二字符串;
若确定所述第一字符串列表中不存在与所述第二字符串相同的所述第一字符串,则将所述第二字符串存储至待处理字符串列表中,并根据所述待处理字符串列表和所述第一字符串列表,确定缺失资源文件列表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待处理字符串列表和所述第一字符串列表,确定缺失资源文件列表,包括:
将待处理第二字符串与所述第一字符串列表中的每个所述第一字符串进行相似度匹配处理,得到至少一个字符串相似度值,所述待处理第二字符串为待处理字符串列表中的每个所述第二字符串;
若确定所述至少一个字符串相似度值中,每个所述字符串相似度值小于字符串相似度阈值,则确定所述待处理字符串为目标第一字符串,并将所述目标第一字符串存储至缺失资源文件列表。
3.根据权利要求1或2任一所述的方法,其特征在于,所述方法还包括:
响应于缺失资源显示操作,显示所述缺失资源文件列表。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若确定所述至少一个字符串相似度值中,任一所述字符串相似度值大于或者等于所述字符串相似度阈值,则获取所述待处理第二字符串对应的程序代码,并将所述程序代码存储至第一警示代码列表。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于警示代码显示操作,显示所述第一警示代码列表。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在任一所述代码文件存储的程序代码中,以非字符串为文件标识调用目标资源文件,则确定所述程序代码为第二警示代码,并将所述第二警示代码存储至第二警示代码列表。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于警示代码显示操作,显示所述第二警示代码列表。
8.根据权利要求1所述的方法,其特征在于,在将所述字符串确定为第二字符串之后,所述方法还包括:
将所述第二字符串存储至第二字符串列表;
若确定所述第二字符串列表中,不存在与所述第一字符串列表中任一所述第一字符串相同的所述第二字符串,则将所述第一字符串存储至无效资源文件列表。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
显示所述无效资源文件列表;
响应于无效资源文件删除操作,删除所述无效资源文件列表中所述第一字符串对应的资源文件。
10.一种安装包检测装置,其特征在于,包括:
获取模块,被配置为获取待检测安装包的工程文件,所述工程文件包括至少一个代码文件和至少一个资源文件;
存储模块,被配置为获取每个所述资源文件的文件名得到至少一个第一字符串,并将所述至少一个第一字符串存储至第一字符串列表;
第一确定模块,被配置为若在任一所述代码文件存储的程序代码中,以字符串为文件标识调用目标资源文件,则将所述字符串确定为第二字符串;
第二确定模块,被配置为若确定所述第一字符串列表中不存在与所述第二字符串相同的所述第一字符串,则将所述第二字符串存储至待处理字符串列表中,并根据所述待处理字符串列表和所述第一字符串列表,确定缺失资源文件列表。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的安装包检测方法。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至9任一项所述的安装包检测方法。
CN202210555545.3A 2022-05-19 2022-05-19 安装包检测方法、装置、介质与电子设备 Pending CN117130897A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210555545.3A CN117130897A (zh) 2022-05-19 2022-05-19 安装包检测方法、装置、介质与电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210555545.3A CN117130897A (zh) 2022-05-19 2022-05-19 安装包检测方法、装置、介质与电子设备

Publications (1)

Publication Number Publication Date
CN117130897A true CN117130897A (zh) 2023-11-28

Family

ID=88856964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210555545.3A Pending CN117130897A (zh) 2022-05-19 2022-05-19 安装包检测方法、装置、介质与电子设备

Country Status (1)

Country Link
CN (1) CN117130897A (zh)

Similar Documents

Publication Publication Date Title
CN110489345B (zh) 一种崩溃聚合方法、装置、介质和设备
CN111813641B (zh) 崩溃信息收集的方法、装置、介质和设备
CN110704102A (zh) 页面跳转协议接口文档生成方法、系统、介质和电子设备
CN110875858A (zh) 应用测试数据抓取方法、系统、设备及存储介质
CN110688353A (zh) 文件管理方法、设备以及计算机可读介质
CN111414331A (zh) 在线协同知识库的文档导入方法、装置、存储介质及设备
CN110716804A (zh) 无用资源的自动删除方法、装置、存储介质及电子设备
CN112084114B (zh) 用于测试接口的方法和装置
CN112667502A (zh) 页面测试方法、装置及介质
CN112100036A (zh) 一种基于PaaS前端引擎的页面性能监控方法及系统
CN117130897A (zh) 安装包检测方法、装置、介质与电子设备
CN111813667B (zh) 应用运行轨迹的收集方法、装置、介质和设备
CN113626301B (zh) 生成测试脚本的方法和装置
CN114064510A (zh) 功能测试方法、装置、电子设备和存储介质
CN113760696A (zh) 一种程序问题定位方法、装置、电子设备和存储介质
CN113835996A (zh) 生成测试脚本的方法和装置
CN113760631A (zh) 页面加载时长确定方法、装置、设备和存储介质
CN118394407B (zh) 基于Git源码的接口扫描方法、装置、设备及存储介质
CN112579553B (zh) 用于记录信息的方法和装置
CN111813663B (zh) 一种指针类型识别方法、装置、介质和设备
CN116382597B (zh) 车辆运行数据存储方法、设备和计算机介质
CN118535451A (zh) 程序接口的测试方法、装置、设备、介质和产品
CN112416859B (zh) 一种用于iOS应用内的意见反馈方法及相关设备
CN112100319B (zh) 一种文档内标记文本的查找方法、装置及电子设备
CN118535475A (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