CN116860597A - 应用程序的检测方法、计算设备及计算机存储介质 - Google Patents

应用程序的检测方法、计算设备及计算机存储介质 Download PDF

Info

Publication number
CN116860597A
CN116860597A CN202310537264.XA CN202310537264A CN116860597A CN 116860597 A CN116860597 A CN 116860597A CN 202310537264 A CN202310537264 A CN 202310537264A CN 116860597 A CN116860597 A CN 116860597A
Authority
CN
China
Prior art keywords
detection
application program
software development
development kit
installation package
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
CN202310537264.XA
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.)
Dingtalk China Information Technology Co Ltd
Original Assignee
Dingtalk China 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 Dingtalk China Information Technology Co Ltd filed Critical Dingtalk China Information Technology Co Ltd
Priority to CN202310537264.XA priority Critical patent/CN116860597A/zh
Publication of CN116860597A publication Critical patent/CN116860597A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种应用程序的检测方法、计算设备及计算机存储介质。其中,应用程序的检测方法,包括:获取软件开发工具包;对所述软件开发工具包进行集成检测,生成检测结果;基于所述检测结果确定是否将所述软件开发工具包集成至应用程序。本发明实施例提供的技术方案避免了将软件开发工具包集成至应用程序中后影响应用程序的正常运行,提高了应用程序更新的安全性。

Description

应用程序的检测方法、计算设备及计算机存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用程序的检测方法、计算设备及计算机存储介质。
背景技术
软件开发工具包(Software Development Kit,SDK)是为软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合,包括示例代码、库以及文档等。
为了丰富应用程序的功能,可以将第三方SDK集成至应用程序中,以使用第三方SDK对应用程序进行更新,提高应用程序的更新效率。将第三方SDK集成至应用程序中可以是指将第三方SDK的功能整合到应用程序代码中的过程。
发明人在实现本发明构思的过程中发现,在将第三方SDK集成至应用程序后,由于SDK与应用程序的兼容性问题,可能会导致应用程序运行出现异常,相关技术中通常是在应用程序运行出现异常后,对应用程序进行异常检测,从而定位到导致问题的第三方SDK,并对问题进行解决。
发明内容
本发明实施例提供一种应用程序的检测方法、装置、计算设备及计算机存储介质。
第一方面,本发明实施例中提供了一种应用程序的检测方法,包括:
获取软件开发工具包;
对所述软件开发工具包进行集成检测,生成检测结果;
基于所述检测结果确定是否将所述软件开发工具包集成至应用程序。
第二方面,本发明实施例中提供了一种应用程序的检测方法,包括:
接收针对应用程序的检测请求,所述应用程序中集成有软件开发工具包;
确定所述应用程序中除所述软件开发工具包的主体部分;
对所述主体部分和所述软件开发工具包分别进行检测,生成检测结果。
第三方面,本发明实施例中提供了一种应用程序的检测装置,包括:
第一获取模块,用于获取软件开发工具包;
检测模块,用于对所述软件开发工具包进行集成检测,生成检测结果;
集成模块,用于基于所述检测结果确定是否将所述软件开发工具包集成至应用程序。
第四方面,本发明实施例中提供了一种应用程序的检测装置,包括:
请求接收模块,用于接收针对应用程序的检测请求,所述应用程序中集成有软件开发工具包;
程序确定模块,用于确定所述应用程序中除所述软件开发工具包的主体部分;
程序检测模块,用于对所述主体部分和所述软件开发工具包分别进行检测,生成检测结果。
第五方面,本发明实施例中提供了一种计算设备,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现本发明实施例提供的应用程序的检测方法。
本发明实施例提供了一种应用程序的检测方法,通过采用:获取软件开发工具包;对所述软件开发工具包进行集成检测,生成检测结果;基于所述检测结果确定是否将所述软件开发工具包集成至所述应用程序的技术方案,在将软件开发工具包集成至应用程序之前,首先对软件开发工具包进行集成检测,并基于检测结果具体判断是否可以将软件开发工具包集成至应用程序中,避免了将软件开发工具包集成至应用程序中后影响应用程序的正常运行,提高了应用程序更新的安全性。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本发明一个实施例提供的一种应用程序的检测方法的流程图;
图2示意性示出了本发明实施例提供的对软件开发工具包进行集成检测的示意图;
图3示意性示出了本发明另一个实施例提供的一种应用程序检测方法的流程图;
图4示意性示出了本发明一个实施例提供的一种应用程序的检测装置的框图;
图5示意性示出了本发明另一实施例提供的一种应用程序的检测装置的框图;
图6示意性示出了本发明一个实施例提供的一种计算设备的框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
需要说明的是,本发明所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
软件开发工具包(Software Development Kit,SDK)是为软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合,包括示例代码、库以及文档等。
为了丰富应用程序的功能,可以将第三方SDK集成至应用程序中,以使用第三方SDK对应用程序进行更新,提高应用程序的检测效率。将第三方SDK集成至应用程序中可以是指将第三方SDK的功能整合到应用程序代码中的过程。
发明人在实现本发明构思的过程中发现,在将第三方SDK集成至应用程序后,由于SDK与应用程序的兼容性问题,可能会导致应用程序运行出现异常,相关技术中通常是在应用程序运行出现异常后,对应用程序进行异常检测,从而定位到导致问题的第三方SDK,并对问题进行解决。
为了解决相关技术中存在的技术问题,本发明实施例提供了一种应用程序的检测方法,通过采用:获取软件开发工具包;对软件开发工具包进行集成检测,生成检测结果;基于检测结果确定是否将软件开发工具包集成至应用程序的技术方案,在将软件开发工具包集成至应用程序之前,首先对软件开发工具包进行集成检测,并基于检测结果具体判断是否可以将软件开发工具包集成至应用程序中,避免了将软件开发工具包集成至应用程序中后影响应用程序的正常运行,提高了应用程序更新的安全性。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示意性示出本发明一个实施例提供的一种应用程序的检测方法的流程图,如图1所示,该应用程序的刚更新方法可以包括以下步骤:
101,获取软件开发工具包;
102,对软件开发工具包进行集成检测,生成检测结果;
103,基于检测结果确定是否将软件开发工具包集成至应用程序。
本发明实施例提供的应用程序的检测方法可以应用于应用程序的开发平台,开发平台可以用于开发应用程序以及在开发完成应用程序后,以及在应用程序的生命周期内,对应用程序进行安全性、稳定性检测,并在检测合格后将应用程序交付至用户使用。
根据本发明的实施例,开发平台例如可以通过接收用户或者软件开发工具包的开发者上传的软件开发工具包的方式,获取软件开发工具包。
根据本发明的实施例,用户或者软件开发工具包的开发者在将软件开发工具包上传时,可以指定该软件开发工具包用于更新哪个应用程序,从而,开发平台在获取到软件开发工具包后,可以针对该应用程序对软件开发工具包进行集成检测。
在本发明的实施例中,软件开发工具包(Software Development Kit,SDK)是一种开发软件应用程序的集成化工具。SDK可以为应用程序的开发人员提供一组基础工具和接口,使开发人员能够更快速、更高效地进行应用程序的开发。
SDK可以包括以下几个方面:库文件,SDK中包含了开发应用程序所需的各种库文件,这些库文件提供了现成的代码模块,可以加快应用程序开发的进程;API(ApplicationProgramming Interface,应用程序编程接口)文档,SDK提供了详细的API文档,包括各种函数和类的说明,可以方便地帮助开发人员理解如何使用这些库文件;示例代码,SDK通常会提供一些示例代码或样例程序,这些程序可以帮助开发人员更好地理解如何调用库文件和API;开发工具,SDK也包括了一些开发工具,例如编译器、调试器、集成开发环境等,这些工具可以帮助开发人员更高效地进行软件开发。
根据本发明的实施例,由于SDK中包含了各种功能库,功能库,例如可以实现图像处理、人脸识别、语音合成、导航等,在需要对应用程序进行更新时,开发平台可以在从获取到用户或者SDK开发者上传的SDK后,将SDK集成至应用程序中,即可以通过调用SDK的相应API接口快速实现相应的功能,无需从头编写代码,提高了应用程序的检测效率。
对于某些应用程序,例如用于办公的即时通讯应用而言,不同用户通常对即时通讯应用的应用需求不同,从而用户通常会在即时通讯应用的使用过程中,利用一些SDK来对即时通讯应用进行更新,以丰富即时通讯应用的功能。由于不同用户对即时通讯应用的需求不同,因此即时通讯应用的官方通常无法针对用户的每一种需求均开发官方SDK,所以用户通常会从第三方的SDK开发者处,或者自行开发SDK,这些SDK可以统称为第三方SDK,并利用第三方SKD来更新即时通讯应用。
然而,发明人在实现本发明构思的过程中发现,一些第三方SDK可能与应用程序不兼容,或者应用程序中已经使用了其他库或者框架,而待集成的第三方SDK和其他库或者框架存在冲突,从而,在将第三方SDK集成至应用程序后,可能会导致应用程序的运行出现异常。
在应用程序运行出现异常的情况下,对用户而言,无法轻易感知该异常的出现是第三方SDK集成所导致的,还是应用程序本身的运行不稳定所导致的,从而将会导致用户对应用程序的应用稳定性产生疑虑,不利于应用程序的推广。
根据本发明的实施例,在对软件开发工具包进行的集成检测,可以用于检测将软件开发工具包集成到应用程序后,是否会导致应用程序运行出现异常。应用程序运行出现异常例如可以表现为运行性能下降、某些功能无法使用等。具体而言,集成检测例如可以包括环境变量检测、配置文件检测、应用文件检测、运行时检测等。
根据本发明的实施例,基于检测结果确定是否将软件开发工具包集成至应用程序具体可以实现为:
在检测结果表明软件开发工具包未影响应用程序运行的情况下,将软件开发工具包集成至应用程序。根据本发明的实施例,软件开发工具包未影响应用程序的运行可以表现为,将软件开发工具包集成到应用程序后,未导致应用程序的性能下降、稳定性降低、某些功能异常等。
根据本发明的实施例,例如可以通过对SDK的属性信息以及配置文档等信息进行检测、识别,以预先判断将SDK集成到应用程序后是否会对应用程序的运行产生影响,并在检测结果表明软件开发工具包未影响应用程序运行的情况下,才将软件开发工具包集成至应用程序。
根据本发明的实施例,通过在检测结果表明软件开发工具包未影响应用程序运行的情况下,才将软件开发工具包集成至应用程序,可以实现提前预防、避免第三方SDK引入的风险,提高SDK集成的安全性。并且,还可以明确应用程序的异常原因,提高用户对应用程序的运行稳定性的信任度。
根据本发明的实施例,对软件开发工具包进行集成检测,生成检测结果具体可以实现为:
获取检测清单,检测清单包括针对软件开发工具包的多个检测项;
按照检测清单的多个检测项,对软件开发工具包进行集成检测,生成检测结果。
根据本发明的实施例,检测清单中的多个检测项可以是根据先验集成经验总结得到的多个检测项,例如,可以是在之前的SDK集成过程中所出现过的集成问题,并根据该出现过的集成问题形成检测项。
根据本发明的实施例,通过将以前出现过的集成问题作为检测项,对SDK进行集成前的检测,可以避免之前出现过的问题再次发生,提高集成效率。
根据本发明的实施例,检测项例如可以包括SDK的版本信息、SDK的文档和示例、SDK所需权限信息、SDK的性能需求信息、SDK的稳定性等。
对于SDK的版本信息,例如,若应用程序使用的是较旧的SDK版本,而在集成SDK时,则是将较新版本的SDK集成到应用程序中,则可能会导致应用程序崩溃或出现其他问题。对于SDK的文档和示例,在集成SDK之前,可以预先检测SDK的文档和示例,以了解如何正确地使用SDK,从而可以避免常见的错误和问题。对于SDK所需权限信息,在将SDK集成到应用程序中之前,可以预先确定SDK需要应用程序的哪些权限,若SDK需要访问敏感数据或设备功能,则可能会影响应用程序的安全性和稳定性。对于SDK的性能需求信息,在将SDK集成到应用程序中之前,可以预先确定SDK的性能需求,如果SDK需要大量的计算资源或网络带宽,则可能会影响应用程序的性能和响应速度。对于SDK的稳定性,在将SDK集成到应用程序中之前,可以预先检测SDK的稳定性,如果SDK存在已知的问题或漏洞,则可能会导致应用程序崩溃或出现其他问题。
根据本发明的实施例,获取检测清单具体可以实现为:
确定应用程序的操作系统;
从预先制定的多个检测清单中,确定与操作系统相匹配的检测清单。
根据本发明的实施例,对于基于不同操作系统的应用程序而言,需要检查的检查项可能不相同,因而,在获取检测清单前,可以首先确定应用程序所使用的操作系统,从而可以获取与操作系统对应的检测清单。
以下表1可以为本发明实施例提供的一种示意性的检测清单。
表1检测清单
根据本发明的实施例,对软件开发工具包进行集成检测,生成检测结果具体可以实现为:
获取应用程序的第一安装包;
将软件开发工具包部署至第一安装包,得到第二安装包;
对第一安装包与第二安装包进行对比,得到检测结果。
根据本发明的实施例,将软件开发工具包部署至第一安装包,得到第二安装包具体可以实现为:
对第一安装包进行复制,得到复制第一安装包;
将软件开发工具部署至复制第一安装包,得到第二安装包。
根据本发明的实施例,由于在集成前,无法得知将SDK集成至应用程序的安装包是否会导致应用程序的运行异常,因而,可以在将SDK集成前,首先对第一安装包进行克隆,得到复制第一安装包,并将SDK集成部署到复制第一安装包中,避免SDK的集成对第一安装包产生影响。
根据本发明的实施例,在将第一安装包与第二安装包进行对比时,例如可以进行资源对比、Manifest(清单)文件对比、so(程序函数库)对比、安装包体积对比以及API Key对比等。
具体而言,在资源对比时,可以对比第一安装包中存在的资源,在第二安装包中是否存在,以此可以发现SDK的集成导致第二安装包中的资源缺失问题;还可以对比第一安装包中的资源,与第二安装包中的对应资源的大小是否一致,以及对比第一安装包中的资源,与第二安装包中的对应资源的加密值是否一致,加密值例如可以实现为hash function(散列函数)值。
在进行Manifest(清单)文件对比时,可以进行新增权限校验、全局参数校验等。
在进行so(程序函数库)对比时,可以进行so变化扫描、编译版本扫描等。
在进行安装包体积对比时,可以比较第一安装包和第二安装包的体积是否一致,具体而言,可以比较第一安装包的总体积与第二安装包的总体积是否一致,以及第一安装包的分类体积是否与第二安装包的对应分类的分类体积一致。
根据本发明的实施例,对软件开发工具包进行集成检测,生成检测结果具体可以实现为:
获取检测清单,检测清单包括针对软件开发工具包的多个检测项;
按照检测清单的多个检测项,对软件开发工具包进行集成检测,生成第一检测结果;
在第一检测结果表征将软件开发工具包集成至应用程序后,不会对应用程序的运行产生影响的情况下,获取应用程序的第一安装包;
将软件开发工具包部署至第一安装包,得到第二安装包;
对第一安装包与第二安装包进行对比,得到检测结果。
根据本发明的实施例,检测清单中的多个检测项可以是根据先验集成经验总结得到的多个检测项,例如,可以是在之前的SDK集成过程中所出现过的集成问题,并根据该出现过的集成问题形成检测项。
根据本发明的实施例,通过将以前出现过的集成问题作为检测项,对SDK进行集成前的检测,可以避免之前出现过的问题再次发生,提高集成效率。
根据本发明的实施例,获取检测清单具体可以实现为:
确定应用程序的操作系统;
从预先制定的多个检测清单中,确定与操作系统相匹配的检测清单。
根据本发明的实施例,对于基于不同操作系统的应用程序而言,需要检查的检查项可能不相同,因而,在获取检测清单前,可以首先确定应用程序所使用的操作系统,从而可以获取与操作系统对应的检测清单。
根据本发明的实施例,由于在集成前,无法得知将SDK集成至应用程序的安装包是否会导致应用程序的运行异常,因而,可以在将SDK集成前,首先对第一安装包进行克隆,得到复制第一安装包,并将SDK集成部署到复制第一安装包中,避免SDK的集成对第一安装包产生影响。
根据本发明的实施例,在将第一安装包与第二安装包进行对比时,例如可以进行资源对比、Manifest(清单)文件对比、so(程序函数库)对比、安装包体积对比以及API Key对比等。
具体而言,在资源对比时,可以对比第一安装包中存在的资源,在第二安装包中是否存在,以此可以表面SDK的集成导致第二安装包中的资源缺失问题;还可以对比第一安装包中的资源,与第二安装包中的对应资源的大小是否一致,以及对比第一安装包中的资源,与第二安装包中的对应资源的加密值是否一致,加密值例如可以实现为hash function(散列函数)值。
在进行Manifest(清单)文件对比时,可以进行新增权限校验、全局参数校验等。
在进行so(程序函数库)对比时,可以进行so变化扫描、编译版本扫描等。
在进行安装包体积对比时,可以比较第一安装包和第二安装包的体积是否一致,具体而言,可以比较第一安装包的总体积与第二安装包的总体积是否一致,以及第一安装包的分类体积是否与第二安装包的对应分类的分类体积一致。
图2示意性示出了本发明实施例提供的对软件开发工具包进行集成检测的示意图。
如图2所示,在对软件开发工具包进行集成检测时,首先可以将用户上传至开发平台的SDK下载并解压,然后获取与应用程序的操作系统对应的检测清单。
获取到检测清单后,可以对SDK进行静态检测,即依次依据检测清单中的多个检测项,对SDK进行检测,得到检测结果。
若检测结果表征检测清单中的多个检测项均为检测到问题的情况下,即可以对SDK进行动态检测。具体而言,可以获取应用程序的第一安装包,并对第一安装包进行克隆,得到复制第一安装包,然后将SDK集成至复制第一安装包中,得到第二安装包。然后可以对第一安装包与第二安装包进行对比扫描,确定在将SDK集成至第一安装包后,除了引出SDK本身带来的功能外,在第一安装包中是否存在其他功能受到影响。
若在动态检测时,仍未检测到问题,则可以确认将SDK集成至应用程序不会使应用程序产生异常,可以对SDK进行集成。
根据本发明的实施例,对软件开发工具包进行集成检测,生成检测结果具体可以实现为:
将软件开发工具包发送至第一检测服务器,以供第一检测服务器在提供的应用程序的运行环境中,对软件工具包进行集成检测;
获取第一检测服务器返回的的检测结果。
根据本发明的实施例,第一检测服务器可以用于提供应用程序的运行环境。
根据本发明的实施例,将软件开发工具包发送至第一检测服务器具体可以实现为:
确定应用程序的操作系统;
确定用于提供与操作系统相对应的运行环境的第一检测服务器;
将软件开发工具包发送至第一检测服务器。
根据本发明的实施例,将软件开发工具包发送至第一检测服务器具体可以实现为:
将软件开发工具包以及检测清单发送至第一检测服务器,以供第一检测服务器在提供的应用程序的运行环境中,按照检测清单的多个检测项对软件工具包进行集成检测。
根据本发明的实施例,应用程序的检测方法还包括:
获取至少一个更新检测项,以及更新检测项对应的解决方案;
将至少一个更新检测以及更新检测项对应的解决方案项添加至检测清单,以更新检测清单。
根据本发明的实施例,由于检测清单是根据先验的集成经验所制定的,导致检测清单并不能包含所有在SDK集成过程中可能出现的问题。在将SDK集成至应用程序,并运行一段时间后,应用程序可能会出现运行异常,该运行异常可能是有检测清单中没有包含的问题所导致,此时,可以由运维人员对应用程序的异常进行定位并解决,然后,则可以根据导致本次运行异常的问题形成更新检测项,并将更新检测项以及该更新检测项对应的解决方案添加至检测清单中。如此以来,通过将更新检测项添加至检测清单中,从而,在第一次的集成检测时,就可以在SDK集成前就发现该问题。
根据本发明的实施例,在基于检测结果确定将软件开发工具包集成至应用程序的情况下,应用程序的检测方法还包括:
将第二安装包分发至用于运行应用程序的客户端,以便客户端利用第二安装包对应用程序进行更新,得到目标应用程序。
根据本发明的实施例,在基于检测结果确定将软件开发工具包集成至应用程序的情况下,即确定将SDK集成至应用程序不会导致应用程序产生异常时,即可以将集成了SDK的第二安装包进行分发,分发至运行应用程序的客户端,使得客端可以利用第二安装包对应用程序进行更新。
根据本发明的实施例,检测清单包括多个检测项分别对应的解决方案。
根据本发明的实施例,在检测结果表明软件开发工具包影响应用程序运行的情况下,应用程序的检测方法还包括:
基于至少一项存在问题的检测项,以及针对检测项的问题的解决方案生成检测报告;
输出检测报告。
根据本发明的实施例,可以预先对检测清单中的检测项进行分级,例如可以划分为强风险以及弱风险,检测报告中可以仅展示强风险等级的存在问题的检查项。在此基础上,检测报告中还可以展示有与该存在问题的检测项对应的解决方案,从而,在将检测报告发送给用户后,用户可以按照解决方案对存在问题的检测项进行修改。
图3示意性示出了本发明另一个实施例提供的一种应用程序检测方法的流程图,如图3所示,该应用程序的检测方法具体可以包括以下步骤:
301,接收针对应用程序的检测请求,应用程序中集成有软件开发工具包;
302,确定应用程序中除软件开发工具包的主体部分;
303,对主体部分和软件开发工具包分别进行检测,生成检测结果。
根据本发明的实施例,应用程序的检测方法还可以包括:
在软件开发工具包运行的情况下,对应用程序进行性能检测,得到第一检测结果;
在软件开发工具包关闭的情况下,对应用程序进行性能检测,得到第二检测结果。
在本发明的实施例中,软件开发工具包(Software Development Kit,SDK)是一种开发软件应用程序的集成化工具。SDK可以为应用程序的开发人员提供一组基础工具和接口,使开发人员能够更快速、更高效地进行应用程序的开发。
SDK可以包括以下几个方面:库文件,SDK中包含了开发应用程序所需的各种库文件,这些库文件提供了现成的代码模块,可以加快应用程序开发的进程;API(ApplicationProgramming Interface,应用程序编程接口)文档,SDK提供了详细的API文档,包括各种函数和类的说明,可以方便地帮助开发人员理解如何使用这些库文件;示例代码,SDK通常会提供一些示例代码或样例程序,这些程序可以帮助开发人员更好地理解如何调用库文件和API;开发工具,SDK也包括了一些开发工具,例如编译器、调试器、集成开发环境等,这些工具可以帮助开发人员更高效地进行软件开发。
根据本发明的实施例,由于SDK中包含了各种功能库,功能库,例如可以实现图像处理、人脸识别、语音合成、导航等,在需要对应用程序进行更新时,开发平台可以在从获取到用户或者SDK开发者上传的SDK后,将SDK集成至应用程序中,即可以通过调用SDK的相应API接口快速实现相应的功能,无需从头编写代码,提高了应用程序的检测效率。
对于某些应用程序,例如用于办公的即时通讯应用而言,不同用户通常对即时通讯应用的应用需求不同,从而用户通常会在即时通讯应用的使用过程中,利用一些SDK来对即时通讯应用进行更新,以丰富即时通讯应用的功能。由于不同用户对即时通讯应用的需求不同,因此即时通讯应用的官方通常无法针对用户的每一种需求均开发官方SDK,所以用户通常会从第三方的SDK开发者处,或者自行开发SDK,这些SDK可以统称为第三方SDK,并利用第三方SKD来更新即时通讯应用。
然而,发明人在实现本发明构思的过程中发现,一些第三方SDK可能与应用程序不兼容,或者应用程序中已经使用了其他库或者框架,而待集成的第三方SDK和其他库或者框架存在冲突,从而,在将第三方SDK集成至应用程序后,可能会导致应用程序的运行出现异常。
在应用程序运行出现异常的情况下,对用户而言,无法轻易感知该异常的出现是第三方SDK集成所导致的,还是应用程序本身的运行不稳定所导致的,从而将会导致用户对应用程序的应用稳定性产生疑虑,不利于应用程序的推广。
根据本发明的实施例,通过对应用程序的主体部分和软件开发工具包部分进行分别检测,可以明确应用程序产生异常的原因,提高用户对应用程序的运行稳定性的信任度。
根据本发明的实施例,对应用程序和软件开发工具包的检测方式具体可以参照以上图1示出的应用程序的检测方法提供的检测方式,在此不再赘述。
图4示意性示出了本发明一个实施例提供的一种应用程序的检测装置的框图,如图4所示,该应用程序的检测装置可以包括:
第一获取模块401,用于获取软件开发工具包;
检测模块402,用于对软件开发工具包进行集成检测,生成检测结果;
集成模块403,用于基于检测结果确定是否将软件开发工具包集成至应用程序。
根据本发明的实施例,集成模块403包括:
集成单元,用于在检测结果表明软件开发工具包未影响应用程序运行的情况下,将软件开发工具包集成至应用程序。
根据本发明的实施例,检测模块402包括:
第一清单获取子模块,用于获取检测清单,检测清单包括针对软件开发工具包的多个检测项;
第一检测子模块,用于按照检测清单的多个检测项,对软件开发工具包进行集成检测,生成检测结果。
根据本发明的实施例,检测模块402包括:
第一安装包获取子模块,用于获取应用程序的第一安装包;
第一部署子模块,用于将软件开发工具包部署至第一安装包,得到第二安装包;
第一对比子模块,用于对第一安装包与第二安装包进行对比,得到检测结果。
根据本发明的实施例,检测模块402包括:
第二清单获取子模块,用于获取检测清单,检测清单包括针对软件开发工具包的多个检测项;
第二检测子模块,用于按照检测清单的多个检测项,对软件开发工具包进行集成检测,生成第一检测结果;
第二安装包获取子模块,用于在第一检测结果表征将软件开发工具包集成至应用程序后,不会对应用程序的运行产生影响的情况下,获取应用程序的第一安装包;
第二部署子模块,用于将软件开发工具包部署至第一安装包,得到第二安装包;
第二对比子模块,用于对第一安装包与第二安装包进行对比,得到检测结果。
根据本发明的实施例,检测模块402包括:
第一发送子模块,用于将软件开发工具包发送至第一检测服务器,以供第一检测服务器在提供的应用程序的运行环境中,对软件工具包进行集成检测;
结果获取子模块,用于获取第一检测服务器返回的的检测结果。
根据本发明的实施例,第一发送子模块包括:
第一发送单元,用于将软件开发工具包以及检测清单发送至第一检测服务器,以供第一检测服务器在提供的应用程序的运行环境中,按照检测清单的多个检测项对软件工具包进行集成检测。
根据本发明的实施例,应用程序的检测装置400还包括:
更新获取模块,用于获取至少一个更新检测项,以及更新检测项对应的解决方案;
更新模块,用于将至少一个更新检测以及更新检测项对应的解决方案项添加至检测清单,以更新检测清单。
根据本发明的实施例,应用程序的检测装置400还包括:
分发模块,用于将第二安装包分发至用于运行应用程序的客户端,以便客户端利用第二安装包对应用程序进行更新,得到目标应用程序。
根据本发明的实施例,检测清单包括多个检测项分别对应的解决方案。
根据本发明的实施例,应用程序的检测装置400还包括:
报告生成模块,用于基于至少一项存在问题的检测项,以及针对检测项的问题的解决方案生成检测报告;
报告输出模块,用于输出检测报告。
图4所述的应用程序的检测装置可以执行图1所示实施例所述的应用程序的检测方法,其实现原理和技术效果不再赘述。对于上述实施例中的应用程序的检测装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5示意性示出了本发明另一个实施例提供的一种应用程序的检测装置的示意图,如图5所示,该应用程序的检测装置500可以包括:
请求接收模块501,用于接收针对应用程序的检测请求,所述应用程序中集成有软件开发工具包;
程序确定模块502,用于确定所述应用程序中除所述软件开发工具包的主体部分;
程序检测模块503,用于对所述主体部分和所述软件开发工具包分别进行检测,生成检测结果。
根据本发明的实施例,应用程序的检测装置还可以包括:
第一性能检测模块,用于在所述软件开发工具包运行的情况下,对所述应用程序进行性能检测,得到第一检测结果;
第二性能检测模块,用于在所述软件开发工具包关闭的情况下,对所述应用程序进行性能检测,得到第二检测结果。
在一个可能的设计中,本发明实施例提供的应用程序的检测装置可以实现为计算设备,如图6所示,该计算设备可以包括存储组件601以及处理组件602;
存储组件601存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件602调用执行,用以实现本发明实施例提供的应用程序的检测方法。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
其中,该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
当计算设备为物理设备时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。
本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现本发明实施例提供的应用程序的检测方法。
本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时可以实现本发明实施例提供的应用程序的检测方法。
其中,前文相应实施例中的处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件被配置为存储各种类型的数据以支持在设备中操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种应用程序的检测方法,其特征在于,包括:
获取软件开发工具包;
对所述软件开发工具包进行集成检测,生成检测结果;
基于所述检测结果确定是否将所述软件开发工具包集成至应用程序。
2.根据权利要求1所述的方法,其特征在于,所述基于所述检测结果确定是否将所述软件开发工具包集成至所述应用程序包括:
在所述检测结果表明所述软件开发工具包未影响所述应用程序运行的情况下,将所述软件开发工具包集成至所述应用程序。
3.根据权利要求1所述的方法,其特征在于,所述对所述软件开发工具包进行集成检测,生成检测结果包括:
获取检测清单,所述检测清单包括针对所述软件开发工具包的多个检测项;
按照所述检测清单的所述多个检测项,对所述软件开发工具包进行所述集成检测,生成检测结果。
4.根据权利要求1所述的方法,其特征在于,所述对所述软件开发工具包进行集成检测,生成检测结果包括:
获取所述应用程序的第一安装包;
将所述软件开发工具包部署至所述第一安装包,得到第二安装包;
对所述第一安装包与所述第二安装包进行对比,得到所述检测结果。
5.根据权利要求1所述的方法,其特征在于,所述对所述软件开发工具包进行集成检测,生成检测结果包括:
获取检测清单,所述检测清单包括针对所述软件开发工具包的多个检测项;
按照所述检测清单的所述多个检测项,对所述软件开发工具包进行所述集成检测,生成第一检测结果;
在所述第一检测结果表征将所述软件开发工具包集成至所述应用程序后,不会对所述应用程序的运行产生影响的情况下,获取所述应用程序的第一安装包;
将所述软件开发工具包部署至所述第一安装包,得到第二安装包;
对所述第一安装包与所述第二安装包进行对比,得到所述检测结果。
6.根据权利要求3所述的方法,其特征在于,所述对所述软件开发工具包进行集成检测,生成检测结果包括:
将软件开发工具包发送至第一检测服务器,以供所述第一检测服务器在提供的所述应用程序的运行环境中,对所述软件工具包进行集成检测;
获取所述第一检测服务器返回的所述的检测结果。
7.根据权利要求6所述的方法,其特征在于,所述将软件开发工具包发送至第一检测服务器包括:
将所述软件开发工具包以及所述检测清单发送至第一检测服务器,以供所述第一检测服务器在提供的所述应用程序的运行环境中,按照所述检测清单的所述多个检测项对所述软件工具包进行集成检测。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取至少一个更新检测项,以及所述更新检测项对应的解决方案;
将所述至少一个更新检测以及所述更新检测项对应的解决方案项添加至所述检测清单,以更新所述检测清单。
9.根据权利要求5所述的方法,其特征在于,在基于所述检测结果确定将所述软件开发工具包集成至所述应用程序的情况下,所述方法还包括:
将所述第二安装包分发至用于运行所述应用程序的客户端,以便所述客户端利用所述第二安装包对所述应用程序进行更新,得到所述应用程序。
10.根据权利要求5所述的方法,其特征在于,所述检测清单包括多个检测项分别对应的解决方案;
在所述检测结果表明所述软件开发工具包影响所述应用程序运行的情况下,所述方法还包括:
基于至少一项存在问题的检测项,以及针对所述检测项的问题的解决方案生成检测报告;
输出所述检测报告。
11.一种应用程序的检测方法,其特征在于,包括:
接收针对应用程序的检测请求,所述应用程序中集成有软件开发工具包;
确定所述应用程序中除所述软件开发工具包的主体部分;
对所述主体部分和所述软件开发工具包分别进行检测,生成检测结果。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述软件开发工具包运行的情况下,对所述应用程序进行性能检测,得到第一检测结果;
在所述软件开发工具包关闭的情况下,对所述应用程序进行性能检测,得到第二检测结果。
13.一种计算设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现如权利要求1至10任一项所述的应用程序的检测方法,或者实现权利要求11-12任一项所述的应用程序的检测方法。
CN202310537264.XA 2023-05-11 2023-05-11 应用程序的检测方法、计算设备及计算机存储介质 Pending CN116860597A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310537264.XA CN116860597A (zh) 2023-05-11 2023-05-11 应用程序的检测方法、计算设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310537264.XA CN116860597A (zh) 2023-05-11 2023-05-11 应用程序的检测方法、计算设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN116860597A true CN116860597A (zh) 2023-10-10

Family

ID=88232852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310537264.XA Pending CN116860597A (zh) 2023-05-11 2023-05-11 应用程序的检测方法、计算设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN116860597A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357732A (zh) * 2017-07-17 2017-11-17 广州爱九游信息技术有限公司 用户终端及软件开发工具包接入状态检测装置与方法
CN107450909A (zh) * 2017-06-30 2017-12-08 武汉斗鱼网络科技有限公司 用于软件开发工具包集成有效性检查的处理方法和装置
CN110096430A (zh) * 2019-03-16 2019-08-06 平安证券股份有限公司 第三方sdk准入测试方法、装置、终端及存储介质
WO2019200721A1 (zh) * 2018-04-20 2019-10-24 平安科技(深圳)有限公司 Sdk 兼容性检测方法、装置、设备及可读存储介质
CN111563038A (zh) * 2020-04-30 2020-08-21 深圳壹账通智能科技有限公司 Sdk测试方法、装置、计算机设备及计算机可读存储介质
CN113778877A (zh) * 2021-09-10 2021-12-10 中金金融认证中心有限公司 检测应用程序安装包的方法和其相关产品

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450909A (zh) * 2017-06-30 2017-12-08 武汉斗鱼网络科技有限公司 用于软件开发工具包集成有效性检查的处理方法和装置
CN107357732A (zh) * 2017-07-17 2017-11-17 广州爱九游信息技术有限公司 用户终端及软件开发工具包接入状态检测装置与方法
WO2019200721A1 (zh) * 2018-04-20 2019-10-24 平安科技(深圳)有限公司 Sdk 兼容性检测方法、装置、设备及可读存储介质
CN110096430A (zh) * 2019-03-16 2019-08-06 平安证券股份有限公司 第三方sdk准入测试方法、装置、终端及存储介质
CN111563038A (zh) * 2020-04-30 2020-08-21 深圳壹账通智能科技有限公司 Sdk测试方法、装置、计算机设备及计算机可读存储介质
CN113778877A (zh) * 2021-09-10 2021-12-10 中金金融认证中心有限公司 检测应用程序安装包的方法和其相关产品

Similar Documents

Publication Publication Date Title
US9910743B2 (en) Method, system and device for validating repair files and repairing corrupt software
US9201757B2 (en) Offline type checking in programming languages
TW201403368A (zh) 運算環境安全方法和電子運算系統
CN111259403A (zh) 渗透测试方法、装置、计算机设备及存储介质
CN110474900B (zh) 一种游戏协议测试方法及装置
CN110879781A (zh) 程序调试方法、装置、电子设备及计算机可读存储介质
CN108197469B (zh) 校验应用程序的方法、装置和存储介质以及电子设备
US20080109793A1 (en) Verifying loaded module during debugging
CN106844219B (zh) 应用检测方法及应用检测装置
CN111008017A (zh) 一种基于oclint的待提交文件预审方法及相关组件
CN109684205B (zh) 系统测试方法、装置、电子设备及存储介质
US8074205B2 (en) Binary verification service
US20230141948A1 (en) Analysis and Testing of Embedded Code
CN116860597A (zh) 应用程序的检测方法、计算设备及计算机存储介质
CN115098105B (zh) 容器云性能测试评估实现方法、装置、设备及介质
CN108628620B (zh) Pos应用开发的实现方法、装置、计算机设备和存储介质
CN114706706A (zh) 应用软件的修复方法、装置及电子设备
KR102002545B1 (ko) 가상화를 통한 코드 테스트 수행 자동화 방법 및 장치
CN112560035B (zh) 应用检测方法、装置、设备及存储介质
CN113343222B (zh) Java项目工程安全校验方法、装置、计算机设备及存储介质
CN114048481A (zh) 安全扫描报告的处理方法、装置、服务器和存储介质
CN112783759B (zh) 白盒测试任务执行方法、装置、存储介质和计算机设备
CN114611111A (zh) 漏洞修复方法及计算设备
CN114398279A (zh) 应用程序测试方法、装置、设备和存储介质
CN118057335A (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