CN103823665A - SDK (software development kit) activeness analyzing method, network server and system - Google Patents

SDK (software development kit) activeness analyzing method, network server and system Download PDF

Info

Publication number
CN103823665A
CN103823665A CN201210468557.9A CN201210468557A CN103823665A CN 103823665 A CN103823665 A CN 103823665A CN 201210468557 A CN201210468557 A CN 201210468557A CN 103823665 A CN103823665 A CN 103823665A
Authority
CN
China
Prior art keywords
application
sdk
network server
module
source 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.)
Granted
Application number
CN201210468557.9A
Other languages
Chinese (zh)
Other versions
CN103823665B (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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group 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 China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201210468557.9A priority Critical patent/CN103823665B/en
Publication of CN103823665A publication Critical patent/CN103823665A/en
Application granted granted Critical
Publication of CN103823665B publication Critical patent/CN103823665B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种SDK活跃度分析方法,包括:网络服务器接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;所述网络服务器根据所述应用的源文件代码确定所述应用调用的软件开发工具包(SDK);所述网络服务器根据SDK被应用调用的次数进行SDK活跃度分析。本发明还相应地公开了一种网络服务器及SDK活跃度分析系统。本发明基于发布的应用实际使用的SDK进行SDK活跃度分析,从而能够反映SDK的实际应用情况,分析结果准确度较高。

The present invention discloses a SDK activity analysis method, comprising: a network server receives an application release request from a user terminal, the application release request carries at least the source file code of the application to be released; The source file code determines the software development kit (SDK) called by the application; the network server performs SDK activity analysis according to the number of times the SDK is called by the application. The invention also correspondingly discloses a network server and an SDK activity analysis system. The present invention analyzes the SDK activity based on the SDK actually used by the published application, so that the actual application of the SDK can be reflected, and the accuracy of the analysis result is high.

Description

一种SDK活跃度分析方法、网络服务器及系统A SDK activity analysis method, network server and system

技术领域technical field

本发明涉及软件开发领域,尤其涉及一种软件开发工具包(SoftwareDevelopment Kit,SDK)活跃度分析方法、网络服务器及系统。The present invention relates to the field of software development, in particular to a software development kit (Software Development Kit, SDK) activity analysis method, a network server and a system.

背景技术Background technique

SDK通常包含辅助开发某一类应用的相关文档、范例和工具的集合,开发者可以通过SDK提供的应用程序编程接口(Application Programming Interface,API)实现相关领域应用的快速开发。The SDK usually includes a collection of relevant documents, examples and tools to assist in the development of a certain type of application. Developers can use the Application Programming Interface (API) provided by the SDK to achieve rapid development of applications in related fields.

随着各类应用开发需求的不断增长,很多厂商甚至个人都相继推出自己的SDK,以吸引开发者基于自己的SDK构建和发布应用。随着SDK种类和数量的不断增多,SDK的活跃度分析显得尤为重要,通过SDK的活跃度分析,开发者和SDK的提供者可以快速分辨出SDK的应用情况,从而便于进行后续处理。With the continuous growth of various application development needs, many manufacturers and even individuals have successively launched their own SDKs to attract developers to build and release applications based on their own SDKs. As the types and quantities of SDKs continue to increase, SDK activity analysis is particularly important. Through SDK activity analysis, developers and SDK providers can quickly identify the application status of the SDK, which facilitates subsequent processing.

目前SDK的活跃度分析通常是以下载量作为衡量标准的,即通过SDK的下载次数衡量其活跃度。该分析方式下,下载服务器通常会开启一个下载记数的服务,该服务用于更新和保存各SDK的下载次数,当某一SDK被用户下载时,下载服务便会更新该SDK的下载次数并保存。At present, the activity analysis of the SDK is usually based on the number of downloads, that is, the activity is measured by the number of downloads of the SDK. In this analysis method, the download server usually opens a download counter service, which is used to update and save the download times of each SDK. When a certain SDK is downloaded by the user, the download service will update the download times of the SDK and save.

但是,以下载量作为SDK活跃度的分析标准,在很多情况下并不能实际反映SDK的真实使用情况。很多开发者会一并下载大量的SDK,但实际使用的SDK所占比例很少;另外,SDK一旦下载之后就可以无限传播,很多SDK的使用者并非从SDK下载门户下载SDK使用,而是通过二次传播的途径获得,因此,以下载量作为SDK活跃度的衡量指标容易造成SDK活跃度分析结果不准确。However, using downloads as the analysis standard for SDK activity does not actually reflect the real usage of the SDK in many cases. Many developers will download a large number of SDKs at the same time, but the actual use of the SDK is very small; in addition, once the SDK is downloaded, it can be spread infinitely. Many SDK users do not download the SDK from the SDK download portal, but use it through The method of secondary transmission is obtained. Therefore, using downloads as the measure of SDK activity may easily lead to inaccurate SDK activity analysis results.

发明内容Contents of the invention

有鉴于此,本发明的主要目的在于提供一种SDK活跃度分析方法、网络服务器及系统,能够提高分析结果准确度。In view of this, the main purpose of the present invention is to provide an SDK activity analysis method, a network server and a system, which can improve the accuracy of analysis results.

为达到上述目的,本发明的技术方案是这样实现的:In order to achieve the above object, technical solution of the present invention is achieved in that way:

一种SDK活跃度分析方法,包括:A method for analyzing SDK activity, comprising:

网络服务器接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;The network server receives an application release request from the user terminal, where the application release request at least carries the source file code of the application to be released;

所述网络服务器根据所述应用的源文件代码确定所述应用调用的软件开发工具包SDK;The network server determines the software development kit SDK called by the application according to the source file code of the application;

所述网络服务器根据SDK被应用调用的次数进行SDK活跃度分析。The network server performs SDK activity analysis according to the number of times the SDK is invoked by the application.

该方法还包括:网络服务器获取SDK接口表,所述SDK接口表包括SDK信息以及各SDK的接口信息;The method also includes: the network server acquires an SDK interface table, and the SDK interface table includes SDK information and interface information of each SDK;

所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK为:The network server determines according to the source file code of the application that the SDK called by the application is:

所述网络服务器对所述应用的源文件代码进行扫描,获取所述应用调用的接口;The network server scans the source file code of the application to obtain the interface called by the application;

所述网络服务器根据所述应用调用的接口查找所述SDK接口表,确定所述应用调用的SDK。The network server searches the SDK interface table according to the interface invoked by the application, and determines the SDK invoked by the application.

所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK之前,该方法还包括:Before the network server determines the SDK called by the application according to the source file code of the application, the method further includes:

所述网络服务器对所述应用的源文件代码进行代码安全检查,检查通过,则执行后续流程;检查不通过,则向所述用户设备返回应用发布失败响应。The network server performs a code security check on the source file code of the application, and if the check passes, the subsequent process is executed; if the check fails, an application publishing failure response is returned to the user equipment.

所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK之前,该方法还包括:Before the network server determines the SDK called by the application according to the source file code of the application, the method further includes:

所述网络服务器采用编译器对所述应用的源文件代码进行编译,编译成功,执行后续流程;编译失败,则向所述用户设备返回应用发布失败响应。The network server uses a compiler to compile the source file code of the application. If the compilation is successful, the subsequent process is executed; if the compilation fails, an application publishing failure response is returned to the user equipment.

该方法还包括:The method also includes:

用户在用户设备上调试本地应用时,所述用户设备与所述网络服务器进行编译器版本同步。When the user debugs the local application on the user equipment, the user equipment synchronizes the compiler version with the network server.

该方法还包括:The method also includes:

网络服务器接收来自用户终端的应用测试请求,所述应用测试请求至少携带需要测试的应用信息;The network server receives an application test request from the user terminal, where the application test request at least carries application information to be tested;

所述网络服务器根据预设的测试资源和/或测试次数对所述需要测试的应用进行测试。The network server tests the application to be tested according to preset test resources and/or test times.

一种网络服务器,包括:接收模块、SDK确定模块和分析模块;其中,A network server, comprising: a receiving module, an SDK determining module and an analyzing module; wherein,

所述接收模块,用于接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;The receiving module is configured to receive an application release request from a user terminal, where the application release request at least carries the source file code of the application to be released;

所述SDK确定模块,用于根据所述接收模块接收的所述应用的源文件代码确定所述应用调用的SDK;The SDK determining module is configured to determine the SDK called by the application according to the source file code of the application received by the receiving module;

所述分析模块,用于根据SDK被应用调用的次数进行SDK活跃度分析。The analysis module is used to analyze the SDK activity according to the number of times the SDK is called by the application.

该网络服务器还包括SDK接口表获取模块,The network server also includes an SDK interface table acquisition module,

所述SDK接口表获取模块,用于获取SDK接口表,所述SDK接口表包括SDK信息以及各SDK的接口信息;The SDK interface table obtaining module is used to obtain the SDK interface table, and the SDK interface table includes SDK information and interface information of each SDK;

所述SDK确定模块,具体用于对所述应用的源文件代码进行扫描,获取所述应用调用的接口;之后,根据所述应用调用的接口查找所述SDK接口表获取模块获取的SDK接口表,确定所述应用调用的SDK。The SDK determination module is specifically used to scan the source file code of the application to obtain the interface called by the application; after that, search the SDK interface table obtained by the SDK interface table acquisition module according to the interface called by the application to determine the SDK called by the application.

该网络服务器还包括代码安全检查模块,The web server also includes a code security check module,

所述代码安全检查模块,用于对所述接收模块接收的应用的源文件代码进行代码安全检查,检查通过,则通知SDK确定模块确定所述应用调用的SDK;检查不通过,则向用户设备返回应用发布失败响应。The code security check module is used to perform a code security check on the source file code of the application received by the receiving module. If the check passes, the SDK will be notified to determine the module to determine the SDK called by the application; if the check fails, the user device will be notified Returns the application publishing failure response.

该网络服务器还包括编译模块,The web server also includes compilation modules,

所述编译模块,用于采用编译器对所述接收模块接收的应用的源文件代码进行编译,编译成功,则通知SDK确定模块确定所述应用调用的SDK;编译失败,则向所述用户设备返回应用发布失败响应。The compiling module is configured to use a compiler to compile the source file code of the application received by the receiving module. If the compiling is successful, the SDK will be notified to determine the module to determine the SDK called by the application; if the compiling fails, the user device will be notified Returns the application publishing failure response.

所述编译模块,还用于在用户设备调试本地应用时,与所述用户设备进行编译器版本同步。The compilation module is also used to synchronize the compiler version with the user equipment when the user equipment debugs the local application.

该网络服务器还包括应用测试模块,The web server also includes an application testing module,

所述接收模块,还用于接收来自用户终端的应用测试请求,所述应用测试请求至少携带需要测试的应用信息;The receiving module is further configured to receive an application test request from a user terminal, where the application test request at least carries application information to be tested;

所述测试模块,用于根据预设的测试资源和/或测试次数对所述需要测试的应用进行测试。The testing module is configured to test the application to be tested according to preset testing resources and/or testing times.

一种SDK活跃度分析系统,包括用户设备和网络服务器;其中,A SDK activity analysis system, including user equipment and network server; wherein,

所述用户设备,用于根据用户操作,向网络服务器发送应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;The user equipment is configured to send an application release request to a network server according to user operations, where the application release request at least carries the source file code of the application to be released;

所述网络服务器,为权利要求7至10任一项所述的网络服务器。The network server is the network server according to any one of claims 7 to 10.

所述用户设备,还用于在用户调试本地应用时,与所述网络服务器进行编译器版本同步。The user equipment is further configured to synchronize the compiler version with the network server when the user debugs the local application.

所述用户设备,还用于根据用户操作,向网络服务器发送应用测试请求,所述应用测试请求至少携带需要测试的应用信息;The user equipment is further configured to send an application test request to a network server according to a user operation, where the application test request at least carries application information to be tested;

所述网络服务器,还用于根据预设的测试资源和/或测试次数对所述需要测试的应用进行测试。The network server is further configured to test the application to be tested according to preset test resources and/or test times.

本发明SDK活跃度分析方法、网络服务器及系统,网络服务器接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK;所述网络服务器根据SDK被应用调用的次数进行SDK活跃度分析。本发明基于发布的应用实际使用的SDK进行SDK活跃度分析,从而能够反映SDK的实际应用情况,分析结果准确度较高。The SDK activity analysis method, network server and system of the present invention, the network server receives the application release request from the user terminal, the application release request at least carries the source file code of the application to be released; the network server according to the source of the application The file code determines the SDK called by the application; the network server analyzes the activity of the SDK according to the number of times the SDK is called by the application. The present invention analyzes the SDK activity based on the SDK actually used by the published application, so that the actual application of the SDK can be reflected, and the accuracy of the analysis result is high.

附图说明Description of drawings

图1为本发明一实施例一种SDK活跃度分析方法流程示意图;Fig. 1 is a schematic flow chart of an SDK activity analysis method according to an embodiment of the present invention;

图2为本发明另一实施例一种SDK活跃度分析方法流程示意图;Fig. 2 is a schematic flow chart of an SDK activity analysis method according to another embodiment of the present invention;

图3为本发明再一实施例一种SDK活跃度分析方法流程示意图;Fig. 3 is a schematic flow chart of an SDK activity analysis method according to yet another embodiment of the present invention;

图4为本发明一实施例一种网络服务器结构示意图;FIG. 4 is a schematic structural diagram of a network server according to an embodiment of the present invention;

图5为本发明另一实施例一种网络服务器结构示意图;FIG. 5 is a schematic structural diagram of a network server according to another embodiment of the present invention;

图6为本发明实施例获取SDK接口表的示意图;FIG. 6 is a schematic diagram of obtaining an SDK interface table according to an embodiment of the present invention;

图7为本发明实施例生成应用临时信息表的示意图;FIG. 7 is a schematic diagram of generating an application temporary information table according to an embodiment of the present invention;

图8为本发明实施例生成SDK调用表的示意图;FIG. 8 is a schematic diagram of generating an SDK calling table according to an embodiment of the present invention;

图9为本发明实施例生成SDK活跃度统计表的示意图;FIG. 9 is a schematic diagram of generating an SDK activity statistical table according to an embodiment of the present invention;

图10为本发明再一实施例一种网络服务器结构示意图;FIG. 10 is a schematic structural diagram of a network server according to yet another embodiment of the present invention;

图11为本发明再一实施例一种网络服务器结构示意图;FIG. 11 is a schematic structural diagram of a network server according to yet another embodiment of the present invention;

图12为本发明再一实施例一种网络服务器结构示意图。FIG. 12 is a schematic structural diagram of a network server according to yet another embodiment of the present invention.

具体实施方式Detailed ways

本发明的基本思想是:网络服务器接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK;所述网络服务器根据SDK被应用调用的次数进行SDK活跃度分析。The basic idea of the present invention is: the network server receives an application release request from a user terminal, and the application release request at least carries the source file code of the application to be released; the network server determines the application release request according to the source file code of the application The called SDK; the network server performs SDK activity analysis according to the number of times the SDK is called by the application.

图1为本发明一实施例一种SDK活跃度分析方法流程示意图,如图1所示,该方法包括:Fig. 1 is a schematic flow chart of an SDK activity analysis method according to an embodiment of the present invention. As shown in Fig. 1, the method includes:

步骤101:网络服务器接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;Step 101: The network server receives an application release request from a user terminal, and the application release request at least carries the source file code of the application to be released;

步骤102:所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK;Step 102: The network server determines the SDK called by the application according to the source file code of the application;

步骤103:所述网络服务器根据SDK被应用调用的次数进行SDK活跃度分析。Step 103: The network server analyzes the activity of the SDK according to the number of times the SDK is called by the application.

可选的,该方法还包括:网络服务器获取SDK接口表,所述SDK接口表包括SDK信息以及各SDK的接口信息。相应的,所述网络服务器根据所述应用的源文件代码确定所述应用调用的SDK为:所述网络服务器对所述应用的源文件代码进行扫描,获取所述应用调用的接口;所述网络服务器根据所述应用调用的接口查找所述SDK接口表,确定所述应用调用的SDK。Optionally, the method further includes: the network server acquires an SDK interface table, and the SDK interface table includes SDK information and interface information of each SDK. Correspondingly, the network server determines the SDK called by the application according to the source file code of the application as follows: the network server scans the source file code of the application to obtain the interface called by the application; The server searches the SDK interface table according to the interface called by the application, and determines the SDK called by the application.

图2为本发明另一实施例一种SDK活跃度分析方法流程示意图,如图2所示,可选的,步骤102之前,该方法还包括:FIG. 2 is a schematic flow chart of an SDK activity analysis method according to another embodiment of the present invention. As shown in FIG. 2 , optionally, before step 102, the method further includes:

步骤102’:所述网络服务器对所述应用的源文件代码进行代码安全检查,检查通过,则执行步骤102;检查不通过,则向所述用户设备返回应用发布失败响应。Step 102': The network server performs a code security check on the source file code of the application, and if the check is passed, then step 102 is executed; if the check fails, an application publishing failure response is returned to the user equipment.

图3为本发明再一实施例一种SDK活跃度分析方法流程示意图,如图3所示,可选的,步骤102之前,该方法还包括:Fig. 3 is a schematic flow chart of an SDK activity analysis method according to another embodiment of the present invention. As shown in Fig. 3, optionally, before step 102, the method further includes:

步骤102”:所述网络服务器采用编译器对所述应用的源文件代码进行编译,编译成功,执行步骤102;编译失败,则向所述用户设备返回应用发布失败响应。Step 102": The network server uses a compiler to compile the source file code of the application. If the compilation is successful, step 102 is executed; if the compilation fails, an application publishing failure response is returned to the user equipment.

需要说明的是,进行安全性审核的步骤102’和进行远端编译结果审核的步骤102”也可共存于方法流程中,此时,源文件代码进行代码安全检查通过且应用源文件代码编译成功后,再执行步骤102。通过审核的应用便可上线运营。It should be noted that the step 102' of performing security review and the step 102" of performing remote compilation result review can also coexist in the method flow. At this time, the source file code passes the code security check and the application source file code is compiled successfully. Afterwards, step 102 is executed again. Apps that pass the review can be put into operation.

一般情况下,用户(开发者)登陆SDK下载门户,选择应用开发所需的SDK进行下载,下载SDK到本地之后,即可基于SDK进行应用的开发。由于应用开发过程中,需要不断的调试和修改,每次修改之后的应用系统编译,都需要调用本地的编译环境进行。因此,可选的,该方法还包括:用户在用户设备上调试本地应用时,所述用户设备与所述网络服务器进行编译器版本同步。Under normal circumstances, the user (developer) logs in to the SDK download portal, selects the SDK required for application development to download, and after downloading the SDK locally, the application can be developed based on the SDK. Since the application development process requires constant debugging and modification, the application system compilation after each modification needs to call the local compilation environment. Therefore, optionally, the method further includes: when the user debugs the local application on the user equipment, the user equipment synchronizes the compiler version with the network server.

对于开发和调试阶段的应用,属于测试型应用。测试型应用应当可以接入网络服务器进行真实环境的测试。但是对于测试型应用,网络服务器可以限制应用可使用的资源和/或限制应用测试的最大次数,例如,当应用执行次数超过该应用对应的最大测试次数时,网络服务器可以将应用停止。具体实施方式可以为:网络服务器接收来自用户终端的应用测试请求,所述应用测试请求至少携带需要测试的应用信息;所述网络服务器根据预设的测试资源和/或测试次数对所述需要测试的应用进行测试。For applications in the development and debugging phases, they are test applications. The test application should be able to access the network server for real environment testing. However, for a test application, the web server may limit the resources available to the application and/or limit the maximum number of application tests. For example, when the execution times of the application exceed the maximum number of tests corresponding to the application, the web server may stop the application. The specific implementation method may be as follows: the network server receives the application test request from the user terminal, and the application test request carries at least the application information to be tested; application for testing.

需要说明的是,本发明中,网络服务器可以是一个服务器,也可以是多个服务器的组合。It should be noted that, in the present invention, the network server may be one server, or a combination of multiple servers.

本发明实施例还相应地提出了一种网络服务器,如图4所示,该网络服务器包括:接收模块、SDK确定模块和分析模块;其中,The embodiment of the present invention also correspondingly proposes a network server, as shown in Figure 4, the network server includes: a receiving module, an SDK determination module and an analysis module; wherein,

所述接收模块,用于接收来自用户终端的应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;The receiving module is configured to receive an application release request from a user terminal, where the application release request at least carries the source file code of the application to be released;

所述SDK确定模块,用于根据所述接收模块接收的所述应用的源文件代码确定所述应用调用的SDK;The SDK determining module is configured to determine the SDK called by the application according to the source file code of the application received by the receiving module;

所述分析模块,用于根据SDK被应用调用的次数进行SDK活跃度分析。The analysis module is used to analyze the SDK activity according to the number of times the SDK is called by the application.

图5为本发明另一实施例一种网络服务器结构示意图,如图5所示,该网络服务器还包括SDK接口表获取模块,Fig. 5 is a schematic structural diagram of a network server according to another embodiment of the present invention. As shown in Fig. 5, the network server also includes an SDK interface table acquisition module,

所述SDK接口表获取模块,用于获取SDK接口表,所述SDK接口表包括SDK信息以及各SDK的接口信息;一般的,SDK接口表获取模块对服务器侧的SDK包进行扫描及分析,并生成SDK接口表。SDK除了开发文档、使用范例等辅助开发资料之外,其核心是对外提供接口调用的API开发包。以C语言为例,SDK的API开发包包括头文件、lib库和动态dll。其中,头文件和lib库用于调用SDK的应用进行静态系统编译使用,动态dll则用于系统动态接口调用使用。SDK接口表可以包含头文件区和lib库区两部分,用于记录SDK对外暴露的静态调用接口。如图6所示,为了生成SDK接口表,SDK接口表获取模块需要对SDK的文件进行扫描,并提取SDK中所有头文件的文件名部分,以生成SDK接口表中的头文件区记录。同时扫描SDK中所有lib库的文件名部分,以生成SDK接口表中的lib库记录。The SDK interface table acquisition module is used to obtain the SDK interface table, and the SDK interface table includes SDK information and interface information of each SDK; generally, the SDK interface table acquisition module scans and analyzes the SDK package on the server side, and Generate the SDK interface table. In addition to auxiliary development materials such as development documents and usage examples, the core of the SDK is an API development kit that provides external interface calls. Taking the C language as an example, the API development package of the SDK includes header files, lib libraries, and dynamic dlls. Among them, the header file and the lib library are used to call the SDK application for static system compilation, and the dynamic dll is used for the system dynamic interface call. The SDK interface table can include two parts: the header file area and the lib library area, which are used to record the static call interfaces exposed by the SDK. As shown in Figure 6, in order to generate the SDK interface table, the SDK interface table acquisition module needs to scan the SDK files and extract the file name part of all header files in the SDK to generate the header file area records in the SDK interface table. At the same time, scan the file name part of all lib libraries in the SDK to generate lib library records in the SDK interface table.

所述SDK确定模块,具体用于对所述应用的源文件代码进行扫描,获取所述应用调用的接口;之后,根据所述应用调用的接口查找所述SDK接口表获取模块获取的SDK接口表,确定所述应用调用的SDK。以C语言为例,SDK确定模块对所述应用的源文件代码进行扫描后,可以根据扫描结果提取应用所使用的所有头文件和lib库,并保存于应用临时信息表中,实施例一应用临时信息表的生成过程如图7所示,之后,通过应用临时信息表和SDK接口表的比较,确定所述应用调用的SDK,生成应用的SDK调用表,生成SDK调用表的过程中,且当仅当应用临时信息表的某一头文件(如下表中的hfilen.h)和某一lib库(如下表中的lfilen.lib)同时对应SDK接口表中某个SDK的接口时,才会将该SDK信息记录于SDK调用表中。实施例一SDK调用表的生成过程如图8所示。The SDK determination module is specifically used to scan the source file code of the application to obtain the interface called by the application; after that, search the SDK interface table obtained by the SDK interface table acquisition module according to the interface called by the application to determine the SDK called by the application. Taking the C language as an example, after the SDK determination module scans the source file code of the application, it can extract all the header files and lib libraries used by the application according to the scanning results, and save them in the application temporary information table. The application of the first embodiment The generation process of the temporary information table is shown in Figure 7. After that, by comparing the application temporary information table with the SDK interface table, determine the SDK called by the application, generate the SDK call table of the application, and generate the SDK call table, and Only when a header file (hfilen.h in the following table) and a lib library (lfilen.lib in the following table) of the application temporary information table correspond to an SDK interface in the SDK interface table, the The SDK information is recorded in the SDK call table. Embodiment 1 The generation process of the SDK call table is shown in FIG. 8 .

相应的,分析模块可以根据各应用的SDK调用表进行分析,生成SDK活跃度统计表,并以此对SDK的活跃度进行统计分析。具体的,首先根据所有应用的SDK调用表,统计出各SDK的被调用情况,生成SDK被调用记录表,并根据各SDK被调用情况表的调用次数字段进行排序,生成SDK活跃度统计表。基于SDK活跃度统计表,可以配合其他策略进一步分析SDK的活跃度,本发明一实施例生成SDK活跃度统计表的过程如图9所示。Correspondingly, the analysis module can analyze the SDK call table of each application, generate a statistical table of SDK activity, and use this to perform statistical analysis on the activity of the SDK. Specifically, firstly, according to the SDK calling table of all applications, count the calling situation of each SDK, generate the SDK calling record table, and sort according to the calling times field of each SDK calling table, and generate the SDK activity statistics table. Based on the SDK activity statistics table, the SDK activity can be further analyzed in conjunction with other strategies. The process of generating the SDK activity statistics table in an embodiment of the present invention is shown in FIG. 9 .

图10为本发明再一实施例一种网络服务器结构示意图,如图10所示,该网络服务器还包括代码安全检查模块,Fig. 10 is a schematic structural diagram of a network server according to another embodiment of the present invention. As shown in Fig. 10, the network server also includes a code security check module,

所述代码安全检查模块,用于对所述接收模块接收的应用的源文件代码进行代码安全检查,检查通过,则通知SDK确定模块确定所述应用调用的SDK;检查不通过,则向用户设备返回应用发布失败响应。该模块可集成现有的代码安全检查工具,一般的,代码安全检查主要采用软件应用安全的静态代码扫描技术对开发者提交的应用源文件进行代码扫描,并结合代码安全检查模块,确认应用代码的安全性。对于检测出有代码安全漏洞的应用,审核不予通过,并通知开发者审核失败的原因。The code security check module is used to perform a code security check on the source file code of the application received by the receiving module. If the check passes, the SDK will be notified to determine the module to determine the SDK called by the application; if the check fails, the user device will be notified Returns the application publishing failure response. This module can integrate existing code security inspection tools. Generally, code security inspection mainly uses the static code scanning technology of software application security to scan the code of the application source files submitted by developers, and combined with the code security inspection module to confirm the application code. security. For applications that detect code security vulnerabilities, the review will not pass, and the developer will be notified of the reason for the review failure.

图11为本发明再一实施例一种网络服务器结构示意图,如图11所示,该网络服务器还包括编译模块,Fig. 11 is a schematic structural diagram of a network server according to another embodiment of the present invention. As shown in Fig. 11, the network server also includes a compiling module,

所述编译模块,用于采用编译器对所述接收模块接收的应用的源文件代码进行编译,编译成功,则通知SDK确定模块确定所述应用调用的SDK;编译失败,则向所述用户设备返回应用发布失败响应。这里,编译模块将开发者通过用户设备提交的应用的源文件代码,通过网络服务器端的编译器进行编译,如果能够编译成应用可执行文件,则表示编译成功;如果编译有误,则拒绝该应用的发布请求,并将编译错误信息通知开发者。The compiling module is configured to use a compiler to compile the source file code of the application received by the receiving module. If the compiling is successful, the SDK will be notified to determine the module to determine the SDK called by the application; if the compiling fails, the user device will be notified Returns the application publishing failure response. Here, the compilation module compiles the source file code of the application submitted by the developer through the user device through the compiler on the network server side. If it can be compiled into an application executable file, it means that the compilation is successful; if the compilation is wrong, the application is rejected. , and notify the developer of compilation errors.

为了确保开发者本地采用的编译器与应用发布服务器使用的编译器版本一致,可选的,所述编译模块,还用于在用户设备调试本地应用时,与所述用户设备进行编译器版本同步。In order to ensure that the compiler version used locally by the developer is consistent with the compiler version used by the application release server, optionally, the compilation module is also used to synchronize the compiler version with the user device when the user device is debugging a local application .

图12为本发明再一实施例一种网络服务器结构示意图,如图12所示,该网络服务器还包括应用测试模块,Fig. 12 is a schematic structural diagram of a network server according to another embodiment of the present invention. As shown in Fig. 12, the network server also includes an application testing module,

所述接收模块,还用于接收来自用户终端的应用测试请求,所述应用测试请求至少携带需要测试的应用信息;The receiving module is further configured to receive an application test request from a user terminal, where the application test request at least carries application information to be tested;

所述测试模块,用于根据预设的测试资源和/或测试次数对所述需要测试的应用进行测试。The testing module is configured to test the application to be tested according to preset testing resources and/or testing times.

本发明实施例还相应地提出了一种SDK活跃度分析系统,该系统包括用户设备和网络服务器;其中,The embodiment of the present invention also correspondingly proposes an SDK activity analysis system, the system includes user equipment and a network server; wherein,

所述用户设备,用于根据用户操作,向网络服务器发送应用发布请求,所述应用发布请求至少携带需要发布的应用的源文件代码;The user equipment is configured to send an application release request to a network server according to user operations, where the application release request at least carries the source file code of the application to be released;

所述网络服务器,为上述的网络服务器。The network server is the above-mentioned network server.

可选的,所述用户设备,还用于在用户调试本地应用时,与所述网络服务器进行编译器版本同步。Optionally, the user equipment is further configured to synchronize the compiler version with the network server when the user debugs the local application.

可选的,所述用户设备,还用于根据用户操作,向网络服务器发送应用测试请求,所述应用测试请求至少携带需要测试的应用信息;Optionally, the user equipment is further configured to send an application test request to the network server according to a user operation, where the application test request carries at least application information to be tested;

所述网络服务器,还用于根据预设的测试资源和/或测试次数对所述需要测试的应用进行测试。The network server is further configured to test the application to be tested according to preset test resources and/or test times.

本发明中,由网络服务器确定被应用调用的SDK,因此可以反映应用使用SDK的真实情况,以此作为SDK活跃度分析的依据更加客观真实。In the present invention, the network server determines the SDK called by the application, so it can reflect the real situation of the application using the SDK, which is more objective and true as the basis for analyzing the activity of the SDK.

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the protection scope of the present invention.

Claims (15)

1. An SDK activity analysis method, comprising:
the method comprises the steps that a network server receives an application issuing request from a user terminal, wherein the application issuing request at least carries a source file code of an application to be issued;
the network server determines a Software Development Kit (SDK) called by the application according to the source file code of the application;
and the network server analyzes the SDK activity according to the number of times of the SDK being applied and called.
2. The method of claim 1, further comprising: the network server acquires an SDK interface table, wherein the SDK interface table comprises SDK information and interface information of each SDK;
the network server determines that the SDK called by the application is as follows according to the source file code of the application:
the network server scans the source file code of the application to acquire an interface called by the application;
and the network server searches the SDK interface table according to the interface called by the application and determines the SDK called by the application.
3. The method of claim 1, wherein the web server determines the SDK of the application call before it is invoked from a source file code of the application, the method further comprising:
the network server carries out code security check on the source file code of the application, and if the check is passed, the subsequent flow is executed; and if the check is not passed, returning an application release failure response to the user equipment.
4. The method of claim 1, wherein the web server determines the SDK of the application call before it is invoked from a source file code of the application, the method further comprising:
the network server adopts a compiler to compile the source file code of the application, the compilation is successful, and the subsequent flow is executed; and if the compiling fails, returning an application release failure response to the user equipment.
5. The method of claim 4, further comprising:
and when a user debugs a local application on user equipment, the user equipment and the network server carry out compiler version synchronization.
6. The method of any one of claims 1 to 5, further comprising:
the network server receives an application test request from a user terminal, wherein the application test request at least carries application information to be tested;
and the network server tests the application to be tested according to preset test resources and/or test times.
7. A network server, comprising: the system comprises a receiving module, an SDK determining module and an analyzing module; wherein,
the receiving module is used for receiving an application issuing request from a user terminal, wherein the application issuing request at least carries a source file code of an application to be issued;
the SDK determining module is used for determining the SDK called by the application according to the source file code of the application received by the receiving module;
and the analysis module is used for analyzing the SDK activity according to the number of times of the SDK being applied and called.
8. The network server of claim 7, further comprising an SDK interface table acquisition module,
the SDK interface table acquisition module is used for acquiring an SDK interface table, and the SDK interface table comprises SDK information and interface information of each SDK;
the SDK determining module is specifically configured to scan a source file code of the application to obtain an interface called by the application; and then, searching the SDK interface table obtained by the SDK interface table obtaining module according to the interface called by the application, and determining the SDK called by the application.
9. The network server of claim 7, wherein the network server further comprises a code security check module,
the code security check module is used for carrying out code security check on the source file code of the application received by the receiving module, and if the check is passed, the SDK determining module is informed to determine the SDK called by the application; and if the check is not passed, returning an application release failure response to the user equipment.
10. The network server of claim 7, wherein the network server further comprises a compiling module,
the compiling module is used for compiling the source file code of the application received by the receiving module by adopting a compiler, and if the compiling is successful, the SDK determining module is informed to determine the SDK called by the application; and if the compiling fails, returning an application release failure response to the user equipment.
11. The network server of claim 10,
the compiling module is further configured to perform compiler version synchronization with the user equipment when the user equipment debugs the local application.
12. The network server according to any of claims 7 to 11, characterized in that the network server further comprises an application test module,
the receiving module is further configured to receive an application test request from a user terminal, where the application test request at least carries application information to be tested;
and the test module is used for testing the application to be tested according to preset test resources and/or test times.
13. An SDK liveness analysis system, comprising a user device and a network server; wherein,
the user equipment is used for sending an application issuing request to the network server according to user operation, wherein the application issuing request at least carries a source file code of an application to be issued;
the network server according to any one of claims 7 to 10.
14. The system of claim 13,
the user equipment is also used for performing compiler version synchronization with the network server when a user debugs a local application.
15. The system of claim 13 or 14,
the user equipment is also used for sending an application test request to the network server according to user operation, wherein the application test request at least carries application information to be tested;
and the network server is also used for testing the application to be tested according to preset testing resources and/or testing times.
CN201210468557.9A 2012-11-19 2012-11-19 SDK (software development kit) activeness analyzing method, network server and system Active CN103823665B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210468557.9A CN103823665B (en) 2012-11-19 2012-11-19 SDK (software development kit) activeness analyzing method, network server and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210468557.9A CN103823665B (en) 2012-11-19 2012-11-19 SDK (software development kit) activeness analyzing method, network server and system

Publications (2)

Publication Number Publication Date
CN103823665A true CN103823665A (en) 2014-05-28
CN103823665B CN103823665B (en) 2017-02-22

Family

ID=50758752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210468557.9A Active CN103823665B (en) 2012-11-19 2012-11-19 SDK (software development kit) activeness analyzing method, network server and system

Country Status (1)

Country Link
CN (1) CN103823665B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106572126A (en) * 2015-10-08 2017-04-19 平安科技(深圳)有限公司 Method for calculating number of active devices, and server
CN106934009A (en) * 2017-03-09 2017-07-07 腾云天宇科技(北京)有限公司 One kind application arrangement method, device and computing device
CN108037989A (en) * 2017-12-15 2018-05-15 北京小米移动软件有限公司 SDK component identification methods and device
CN108667505A (en) * 2018-04-20 2018-10-16 广州亿航智能技术有限公司 The data processing method and computer readable storage medium of UAV Communication link
CN108809405A (en) * 2018-04-20 2018-11-13 广州亿航智能技术有限公司 For the communication means of unmanned plane, server, storage medium and computer equipment
CN110727716A (en) * 2019-10-24 2020-01-24 北京智游网安科技有限公司 Identification method for integrated SDK in application, intelligent terminal and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060012822A (en) * 2004-08-04 2006-02-09 에스케이 텔레콤주식회사 Method and system for restricting use of application program interface on wireless Internet platform
CN1848129A (en) * 2005-04-05 2006-10-18 株式会社Ntt都科摩 Application program verification system, application program verification method and computer program
US20070288897A1 (en) * 2006-05-25 2007-12-13 Branda Steven J Multiplatform API usage tool
US20100023926A1 (en) * 2008-07-23 2010-01-28 International Business Machines Corporation Call graph dependency extraction by static source code analysis
WO2011041175A1 (en) * 2009-09-30 2011-04-07 Zynga Game Network Inc. Apparatuses, methods and systems for an api call abstractor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060012822A (en) * 2004-08-04 2006-02-09 에스케이 텔레콤주식회사 Method and system for restricting use of application program interface on wireless Internet platform
CN1848129A (en) * 2005-04-05 2006-10-18 株式会社Ntt都科摩 Application program verification system, application program verification method and computer program
US20070288897A1 (en) * 2006-05-25 2007-12-13 Branda Steven J Multiplatform API usage tool
US20100023926A1 (en) * 2008-07-23 2010-01-28 International Business Machines Corporation Call graph dependency extraction by static source code analysis
WO2011041175A1 (en) * 2009-09-30 2011-04-07 Zynga Game Network Inc. Apparatuses, methods and systems for an api call abstractor

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106572126A (en) * 2015-10-08 2017-04-19 平安科技(深圳)有限公司 Method for calculating number of active devices, and server
CN106572126B (en) * 2015-10-08 2020-06-30 平安科技(深圳)有限公司 Active equipment number calculation method and server
CN106934009A (en) * 2017-03-09 2017-07-07 腾云天宇科技(北京)有限公司 One kind application arrangement method, device and computing device
CN106934009B (en) * 2017-03-09 2019-11-12 腾云天宇科技(北京)有限公司 A kind of application arrangement method, device and calculate equipment
CN108037989A (en) * 2017-12-15 2018-05-15 北京小米移动软件有限公司 SDK component identification methods and device
CN108037989B (en) * 2017-12-15 2021-11-30 北京小米移动软件有限公司 SDK component identification method and device
CN108667505A (en) * 2018-04-20 2018-10-16 广州亿航智能技术有限公司 The data processing method and computer readable storage medium of UAV Communication link
CN108809405A (en) * 2018-04-20 2018-11-13 广州亿航智能技术有限公司 For the communication means of unmanned plane, server, storage medium and computer equipment
CN108809405B (en) * 2018-04-20 2023-02-14 广州亿航智能技术有限公司 Communication method, server, storage medium and computer equipment for unmanned aerial vehicle
CN110727716A (en) * 2019-10-24 2020-01-24 北京智游网安科技有限公司 Identification method for integrated SDK in application, intelligent terminal and storage medium
CN110727716B (en) * 2019-10-24 2022-04-22 北京智游网安科技有限公司 Identification method for integrated SDK in application, intelligent terminal and storage medium

Also Published As

Publication number Publication date
CN103823665B (en) 2017-02-22

Similar Documents

Publication Publication Date Title
Qiu et al. Analyzing the analyzers: Flowdroid/iccta, amandroid, and droidsafe
CN103823665B (en) SDK (software development kit) activeness analyzing method, network server and system
CN108595329B (en) Application testing method and device and computer storage medium
Wu et al. Light-weight, inter-procedural and callback-aware resource leak detection for android apps
US7774757B1 (en) Dynamic verification of application portability
US9064055B2 (en) Software development assistant method and system
CN104077140A (en) Automatic compiling method and compiling device for continuous integration
CN105094783A (en) Method and device for testing Android application stability
Zhang et al. Ripple: Reflection analysis for android apps in incomplete information environments
Wu et al. Relda2: an effective static analysis tool for resource leak detection in Android apps
Zhang et al. Analyzing android taint analysis tools: FlowDroid, Amandroid, and DroidSafe
Mahmud et al. Api change impact analysis for android apps
Abdelfattah et al. End-to-end test coverage metrics in microservice systems: An automated approach
KR20140088963A (en) System and method for testing runtime error
Fu et al. Resurgence of regression test selection for c++
Nicolini et al. On the usage of new javascript features through transpilers: The babel case
Fatima et al. Detection and Correction of Android-specific Code Smells and Energy Bugs: An Android Lint Extension.
CN114936147A (en) Code test coverage rate statistical and analysis method and system based on Jacoco
CN112559019B (en) Incremental file updating method and device
Pauck et al. Android app merging for benchmark speed-up and analysis lift-up
CN113722233A (en) Code coverage rate determining method, system, storage medium and electronic equipment
Luo et al. Model Generation For Java Frameworks
JP4869581B2 (en) Coverage measurement system and program thereof
JP2009244969A (en) Program operation comparison device, method, and program
CN110109673B (en) Compiler detection device and method based on Beidou subnanosecond high-precision time service

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant