CN107291436A - Sdk包产生方法、装置及终端 - Google Patents

Sdk包产生方法、装置及终端 Download PDF

Info

Publication number
CN107291436A
CN107291436A CN201610227836.4A CN201610227836A CN107291436A CN 107291436 A CN107291436 A CN 107291436A CN 201610227836 A CN201610227836 A CN 201610227836A CN 107291436 A CN107291436 A CN 107291436A
Authority
CN
China
Prior art keywords
file
sdk
compiling
module nodes
source
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
CN201610227836.4A
Other languages
English (en)
Other versions
CN107291436B (zh
Inventor
赵文恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silead Inc
Original Assignee
Silead Inc
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 Silead Inc filed Critical Silead Inc
Priority to CN201610227836.4A priority Critical patent/CN107291436B/zh
Publication of CN107291436A publication Critical patent/CN107291436A/zh
Application granted granted Critical
Publication of CN107291436B publication Critical patent/CN107291436B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

一种SDK包产生方法、装置及终端,SDK包产生方法包括:对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件,所述节点编译规则文件包括在SDK编译规则文件中;确定所述多个模块节点的文件类型,每一模块节点的文件类型为开源或闭源;基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库;基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件以及所述内置库复制至SDK包输出目录,以形成SDK包的至少一部分;本发明技术方案提高了SDK包产生的效率和准确性。

Description

SDK包产生方法、装置及终端
技术领域
本发明涉及计算机领域,尤其涉及一种SDK包产生方法、装置及终端。
背景技术
软件开发工具包(Software Development Kit,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包产生装置还包括:第一检测单元,适于基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性。
可选的,所述预设SDK标准文件包括以下一种或多种:头文件、所述SDK编译规则文件、私有头文件、测试源文件和版本控制源文件。
可选的,所述初始单元之前还包括:第二检测单元,适于基于所述多个模块节点的原始编译规则文件触发所述多个模块节点的编译,以检测多个所述模块节点的编译完整性。
可选的,所述初始单元包括:输出初始子单元,适于将所述原始编译规则文件的目标文件输出目录替代为所述SDK包输出目录;格式初始子单元,适于将所述目标文件的输出格式修改为静态链接库文件;依赖初始子单元,适于在依赖文件中过滤所述文件类型为开源的所述模块节点的源文件,形成所述SDK包编译规则文件。
可选的,所述判定单元通过提取在所述多个模块节点中的预设变量,确定所述源文件的类型。
可选的,所述预设变量在所述模块节点的源文件的形成过程中进行配置。
为解决上述技术问题,本发明实施例还公开了一种终端,其特征在于,终端所述包括所述SDK包产生装置。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明技术方案对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件,使得在每个模块节点的普通编译的原始编译规则文件的基础上形成节点编译规则文件,保证了SDK包产生的环境和普通编译的适用环境一致,避免了由于SDK包编译的特殊性而产生发散,同时减少了软件开发工作量,节约了软件开发成本;然后确定所述多个模块节点的文件类型,每一模块节点的文件类型为开源或闭源;基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库,将所述文件类型为开源的所述模块节点的源文件以及所述内置库复制至SDK包输出目录,以形成SDK包的至少一部分,基于预先配置的模块节点的文件类型,对闭源和开源类型的模块节点分别进行处理,提高了SDK包产生的效率和准确性。
进一步,通过提取在所述多个模块节点中的预设变量,确定所述源文件的类型,所述预设变量在所述模块节点的源文件的形成过程中进行配置,从而使得SDK包产生过程只需找到预设变量就可以判定源文件的类型,无需根据具体模块节点进行逐一判断,进一步提高了SDK包产生的效率;同时,具体模块节点在形成过程中进行类型的配置,对SDK包的产生过程不构成影响,提高了SDK包后期的维护性能。
附图说明
图1是本发明实施例一种SDK包产生方法的流程图;
图2是本发明实施例另一种SDK包产生方法的流程图;
图3是本发明实施例一种SDK包产生装置的结构示意图;
图4是本发明实施例另一种SDK包产生装置的结构示意图。
具体实施方式
如背景技术中所述,现有技术的SDK包产生过程繁琐,容易出错,导致用户体验差。
本发明实施例所称编译规则文件(makefile)定义源文件的编译规则,例如可以是源文件的编译顺序、是否需要重新编译等,并可以基于编译规则文件触发源文件的编译过程。
本发明实施例所称模块节点可以指在软件系统中的目录,每个模块节点对应至少一个源文件。在软件系统中,按照源文件的类型或功能进行划分,并分别放在不同的目录中,以形成模块节点。模块节点与原始编译规则文件相对应,可以基于原始编译规则文件触发模块节点的编译。其中,原始编译规则文件通常可以是模块节点在开发或测试过程中用于普通编译的编译规则文件,而“普通编译”是相对于生成SDK包的编译过程而言的。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种SDK包产生方法的流程图。
请参照图1,SDK包产生方法包括:步骤S101,对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件。
本实施例中,所述节点编译规则文件包括在SDK编译规则文件中。SDK编译规则文件定义SDK包形成过程的编译规则,基于SDK编译规则文件可以触发对多个模块节点的编译,形成SDK包的至少一部分。
具体实施中,原始编译规则文件和节点编译规则文件均可以触发对模块节点的编译过程。原始编译规则文件触发的是普通编译,模块节点编译后形成的通常是模块节点的源文件对应的可执行文件;而节点编译规则文件触发的是SDK包的编译,模块节点编译后形成的是SDK包的一部分,即内置库。
具体实施中,由于闭源模块节点的源文件不能泄露给用户,故不能直接复制至SDK包,而为了不影响SDK包的使用,对闭源模块节点编译形成库文件放在SDK包里,节点编译规则文件则是用于触发闭源模块节点的编译。对所述多个模块节点对应的所述原始编译规则文件进行修改,以形成所述节点编译规则文件包括:将所述原始编译规则文件的目标文件输出目录替代为所述SDK包输出目录,由于普通编译和SDK包的编译的输出目录不同,故在对原始编译规则文件的修改时,首先修改输出目录;将所述目标文件的输出格式修改为静态链接库文件;在依赖文件中过滤所述文件类型为开源的所述模块节点的源文件,上述修改完成后,形成所述SDK包编译规则文件;SDK包的编译是对闭源模块节点的编译,编译后形成的库文件要包含在SDK包的执行文件里,所以闭源模块节点编译后的目标文件的输出格式为静态链接库文件,编译后形成的静态链接库为内置库。
本发明实施例在每个模块节点的普通编译的原始编译规则文件的基础上形成节点编译规则文件,保证了SDK包产生的环境和普通编译的适用环境一致,避免了由于SDK包编译的特殊性而产生发散;同时由于编译规则文件的复用性,减少了软件开发的工作量,节约了软件开发成本。
步骤S102,确定所述多个模块节点的文件类型。
本实施例中,每一模块节点的文件类型为开源或闭源。其中,在SDK包,用户可以获取开源模块节点的源文件,不能获取闭源模块节点的源文件。
具体实施中,通过提取在所述多个模块节点中的预设变量,确定所述模块节点的文件类型。所述预设变量在所述模块节点的源文件的形成过程中进行配置。
具体实施中,节点编译规则文件对应配置输入文件,例如在基于节点编译规则文件触发编译时,可以将配置输入文件作作为其中一个输入。所述配置输入文件可以为数据文本文件,可以控制模块节点如何编译以及对应的源文件。在模块节点的配置输入文件中输入预设变量,则模块节点的开源和闭源类型就可以确定。或者,模块节点的文件类型也可以设置在模块节点的源文件中。
可以理解的是,所述预设变量可以根据实际的应用环境做适应性的调整。
本发明实施例使得SDK包产生过程只需找到预设变量就可以判定源文件的类型,无需根据具体模块节点进行逐一判断,进一步提高了SDK包产生的效率;同时,具体模块节点在形成过程中进行类型的配置,对SDK包的产生过程不构成影响,SDK的产生过程也无需获取模块节点的具体功能,即SDK包的产生过程和模块节点的形成过程互不影响,提高了SDK包后期的维护性能。
步骤S103,基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库。
本实施例中,通过SDK编译规则文件内节点编译规则文件触发模块节点的编译,其中,节点编译规则文件触发闭源模块节点的编译过程。
具体实施中,基于节点编译规则文件的触发,对闭源模块节点进行编译,其中,在编译过程中,在依赖源文件中过滤开源源文件;并在SDK包输出目录形成静态链接库,即内置库。
本发明实施例编译得到内置库基于的是节点编译规则文件,SDK包的编译过程和普通编译过程使用的编译环境一致,得到的SDK包不易出错,可靠性更高。
步骤S104,基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录,以形成SDK包的至少一部分。
本实施例中,通过预设变量确定模块节点的文件类型,并将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录。内置库与开源模块节点对应的源文件构成了SDK包的一部分。
具体实施中,SDK包除了闭源模块节点形成的内置库与开源模块节点对应的源文件,还包括预设SDK标准文件。将预设SDK标准文件复制至所述SDK包输出目录,预设SDK标准文件与内置库、开源模块节点对应的源文件构成了SDK包。所述预设SDK标准文件可以包括以下一种或多种:头文件、所述SDK编译规则文件、私有头文件、测试源文件和版本控制源文件。
具体实施中,在SDK包形成后,基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性,在SDK包的编译通过时,则表示内置库、开源模块节点对应的源文件以及预设SDK标准文件可以编译形成执行文件,如果没有问题(bug),则可以进入下一步流程。
具体实施中,对多个模块节点对应的原始编译规则文件进行修改的过程为自动修改,是在不改变原始编译规则文件的前提下,通过动态变量控制形成可以编译SDK包的闭源源文件的编译规则文件、闭源源文件和开源源文件的编译规则文件。
本发明实施例采用面向对象编程(Object Oriented Programming,OOP)的设计理念,可以改变SDK产生过程中缺省的输入设置或者编译规则,而不会改变原始编译规则文件,提高了SDK包维护的便捷性;同时,SDK产生过程的控制和SDK的输入配置文本分离,使得SDK产生的动作和数据分离,使得在维护时,可以修改输入配置文本而不会影响SDK的产生控制过程,提高了SDK产生的准确性。
图2是本发明实施例另一种SDK包产生方法的流程图。
请参照图2,所述SDK包产生方法包括:步骤S201,基于所述多个模块节点的原始编译规则文件触发所述多个模块节点的编译,以检测多个所述模块节点的编译完整性。
本实施例中,在产生SDK包之前,基于多个模块节点的原始编译规则文件进行遍历编译,以检查多个模块节点形成的软件系统的编译完整性。编译通过则表示多个模块节点对应的源文件没有错误(bug),可以进行SDK包的生成过程。
步骤S202,对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件。
具体实施中,对所述多个模块节点对应的所述原始编译规则文件进行修改,以形成所述节点编译规则文件包括:将所述原始编译规则文件的目标文件输出目录替代为所述SDK包输出目录,由于普通编译和SDK包的编译的输出目录不同,故在对原始编译规则文件的修改时,首先修改输出目录;将所述目标文件的输出格式修改为静态链接库文件;在依赖文件中过滤所述文件类型为开源的所述模块节点的源文件,形成所述SDK包编译规则文件,由于闭源模块节点的源文件不能泄露给用户,故不能直接复制至SDK包,而为了不影响SDK包的使用,对闭源模块节点编译形成库文件放在SDK包里。节点编译规则文件则是用于触发闭源模块节点的编译过程的。
步骤S203,确定所述多个模块节点的文件类型。
具体实施中,节点编译规则文件对应配置输入文件,所述配置输入文件可以为数据文本文件,可以控制模块节点如何编译以及对应的源文件。在模块节点的配置输入文件中输入以下预设变量,则模块节点的开源和闭源类型就可以确定。
步骤S204,基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库。
本实施例中,SDK包的编译是对闭源模块节点的编译,编译后形成的库文件要包含在SDK包的执行文件里,所以闭源模块节点编译后的目标文件的输出格式为静态链接库文件,编译后形成的静态链接库为内置库。
步骤S205,基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录。
步骤S206,将预设SDK标准文件复制至所述SDK包输出目录,以形成所述SDK包。
具体实施中,SDK包除了闭源模块节点形成的内置库与开源模块节点对应的源文件,还包括预设SDK标准文件。将预设SDK标准文件复制至所述SDK包输出目录,预设SDK标准文件与内置库、开源模块节点对应的源文件构成了SDK包。所述预设SDK标准文件开源包括以下一种或多种:头文件、所述SDK编译规则文件、私有头文件、测试源文件和版本控制源文件。
步骤S206,基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性。
本实施例中,在SDK包形成后,基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性,在SDK包的编译通过时,则表示内置库、开源模块节点对应的源文件以及预设SDK标准文件可以编译形成执行文件,没有错误(bug),可以进入下一步流程。
本发明实施例的具体实施方式可参照前述相应实施例,此处不再赘述。
图3是本发明实施例一种SDK包产生装置的结构示意图。
请参照图3,SDK包产生装置包括:初始单元301、判定单元302、内置库形成单元303和复制单元304。
其中,初始单元301适于对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件,所述节点编译规则文件包括在SDK编译规则文件中。
判定单元302适于确定所述多个模块节点的文件类型,每一模块节点的文件类型为开源或闭源。所述判定单元302通过提取在所述多个模块节点中的预设变量,确定所述源文件的类型,所述预设变量在所述模块节点的源文件的形成过程中进行配置。
内置库形成单元303适于基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库。
复制单元304适于基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录,以形成SDK包的至少一部分。SDK包除了闭源模块节点形成的内置库与开源模块节点对应的源文件,还包括预设SDK标准文件。将预设SDK标准文件复制至所述SDK包输出目录,预设SDK标准文件与内置库、开源模块节点对应的源文件构成了SDK包。
本发明实施例的具体实施方式可参照前述相应实施例,此处不再赘述。
图4是本发明实施例另一种SDK包产生装置的结构示意图。
请参照图4,SDK包产生装置包括:第二检测单元401、初始单元402、输出初始子单元403、格式初始子单元404、依赖初始子单元405、判定单元406、内置库形成单元407、复制单元408和第一检测单元409。
其中,第二检测单元401适于基于所述多个模块节点的原始编译规则文件触发所述多个模块节点的编译,以检测多个所述模块节点的编译完整性。在编译检查通过后,初始单元402适于对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件,所述节点编译规则文件包括在SDK编译规则文件中。初始单元402包括输出初始子单元403、格式初始子单元404和依赖初始子单元405。输出初始子单元403将所述原始编译规则文件的目标文件输出目录替代为所述SDK包输出目录;格式初始子单元404将所述目标文件的输出格式修改为静态链接库文件;依赖初始子单元405在依赖文件中过滤所述文件类型为开源的所述模块节点的源文件,最终形成所述SDK包编译规则文件。
判定单元406适于确定所述多个模块节点的文件类型,每一模块节点的文件类型为开源或闭源。所述判定单元406通过提取在所述多个模块节点中的预设变量,确定所述源文件的类型,所述预设变量在所述模块节点的源文件的形成过程中进行配置。内置库形成单元407基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库。复制单元408基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录,以形成SDK包的至少一部分。SDK包除了闭源模块节点形成的内置库与开源模块节点对应的源文件,还包括预设SDK标准文件。将预设SDK标准文件复制至所述SDK包输出目录,预设SDK标准文件与内置库、开源模块节点对应的源文件构成了SDK包。所述预设SDK标准文件可以包括以下一种或多种:头文件、所述SDK编译规则文件、私有头文件、测试源文件和版本控制源文件。SDK包形成后,第一检测单元409基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性。
本发明实施例的具体实施方式可参照前述相应实施例,此处不再赘述。
本发明实施例还公开了一种终端,所述终端包括所述SDK包产生装置。所述终端可以是任意能够配置SDK包产生装置的计算机设备、平台等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (17)

1.一种SDK包产生方法,其特征在于,包括:
对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件,所述节点编译规则文件包括在SDK编译规则文件中;
确定所述多个模块节点的文件类型,每一模块节点的所述文件类型为开源或闭源;
基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,以形成所述模块节点的内置库;
基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录,以形成SDK包的至少一部分。
2.根据权利要求1所述的SDK包产生方法,其特征在于,还包括:
将预设SDK标准文件复制至所述SDK包输出目录,以形成所述SDK包。
3.根据权利要求2所述的SDK包产生方法,其特征在于,还包括:
基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性。
4.根据权利要求2所述的SDK包产生方法,其特征在于,所述预设SDK标准文件包括以下一种或多种:头文件、所述SDK编译规则文件、私有头文件、测试源文件和版本控制源文件。
5.根据权利要求1所述的SDK包产生方法,其特征在于,对所述多个模块节点对应的所述原始编译规则文件进行修改,以形成所述节点编译规则文件之前还包括:
基于所述多个模块节点的原始编译规则文件触发所述多个模块节点的编译,以检测多个所述模块节点的编译完整性。
6.根据权利要求1所述的SDK包产生方法,其特征在于,对所述多个模块节点对应的所述原始编译规则文件进行修改,以形成所述节点编译规则文件包括:
将所述原始编译规则文件的目标文件输出目录替代为所述SDK包输出目录;
将所述目标文件的输出格式修改为静态链接库文件;
在依赖文件中过滤所述文件类型为开源的所述模块节点的源文件,形成所述SDK包编译规则文件。
7.根据权利要求1所述的SDK包产生方法,其特征在于,确定所述多个模块节点的文件类型包括:
通过提取在所述多个模块节点中的预设变量,确定所述源文件的类型。
8.根据权利要求7所述的SDK包产生方法,其特征在于,所述预设变量在所述模块节点的源文件的形成过程中进行配置。
9.一种SDK包产生装置,其特征在于,包括:
初始单元,适于对多个模块节点对应的原始编译规则文件进行修改,以形成节点编译规则文件,所述节点编译规则文件包括在SDK编译规则文件中;
判定单元,适于确定所述多个模块节点的文件类型,每一模块节点的文件类型为开源或闭源;
内置库形成单元,适于基于所述SDK编译规则文件的触发,采用所述节点编译规则文件对所述文件类型为闭源的所述模块节点的源文件进行编译,
以形成所述模块节点的内置库;
复制单元,适于基于所述SDK编译规则文件的触发,将所述文件类型为开源的所述模块节点的源文件复制至SDK包输出目录,以形成SDK包的至少一部分。
10.根据权利要求9所述的SDK包产生装置,其特征在于,所述复制单元还将预设SDK标准文件复制至所述SDK包输出目录,以形成所述SDK包。
11.根据权利要求10所述的SDK包产生装置,其特征在于,还包括:
第一检测单元,适于基于所述SDK编译规则文件对所述SDK包进行编译,以检测所述SDK包的编译完整性。
12.根据权利要求10所述的SDK包产生装置,其特征在于,所述预设SDK标准文件包括以下一种或多种:头文件、所述SDK编译规则文件、私有头文件、测试源文件和版本控制源文件。
13.根据权利要求9所述的SDK包产生装置,其特征在于,还包括:
第二检测单元,适于基于所述多个模块节点的原始编译规则文件触发所述多个模块节点的编译,以检测多个所述模块节点的编译完整性。
14.根据权利要求9所述的SDK包产生装置,其特征在于,所述初始单元包括:
输出初始子单元,适于将所述原始编译规则文件的目标文件输出目录替代为所述SDK包输出目录;
格式初始子单元,适于将所述目标文件的输出格式修改为静态链接库文件;
依赖初始子单元,适于在依赖文件中过滤所述文件类型为开源的所述模块节点的源文件,形成所述SDK包编译规则文件。
15.根据权利要求9所述的SDK包产生装置,其特征在于,所述判定单元通过提取在所述多个模块节点中的预设变量,确定所述源文件的类型。
16.根据权利要求15所述的SDK包产生装置,其特征在于,所述预设变量在所述模块节点的源文件的形成过程中进行配置。
17.一种终端,其特征在于,包括如权利要求9至16任一项所述的SDK包产生装置。
CN201610227836.4A 2016-04-13 2016-04-13 Sdk包产生方法、装置及终端 Active CN107291436B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610227836.4A CN107291436B (zh) 2016-04-13 2016-04-13 Sdk包产生方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610227836.4A CN107291436B (zh) 2016-04-13 2016-04-13 Sdk包产生方法、装置及终端

Publications (2)

Publication Number Publication Date
CN107291436A true CN107291436A (zh) 2017-10-24
CN107291436B CN107291436B (zh) 2020-11-27

Family

ID=60095968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610227836.4A Active CN107291436B (zh) 2016-04-13 2016-04-13 Sdk包产生方法、装置及终端

Country Status (1)

Country Link
CN (1) CN107291436B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111562928A (zh) * 2020-04-28 2020-08-21 北京字节跳动网络技术有限公司 资源提供方法及装置、资源下载方法及装置
CN111580829A (zh) * 2020-05-09 2020-08-25 广东天波信息技术股份有限公司 一种适用多种红外热成像测温模组的sdk开发装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667134A (zh) * 2009-09-23 2010-03-10 中兴通讯股份有限公司 一种构建编译系统的方法、一种编译系统及其构建装置
CN101826014A (zh) * 2010-04-20 2010-09-08 北京邮电大学 一种软件工程源代码的分割方法
CN101859244A (zh) * 2009-04-10 2010-10-13 中兴通讯股份有限公司 多工具链工程构建方法及系统
CN102118500A (zh) * 2010-12-27 2011-07-06 清华大学 移动终端开源操作系统基于软件包的在线自动更新方法
CN102902544A (zh) * 2012-09-29 2013-01-30 福建升腾资讯有限公司 一种电话支付终端软件平台的实现方法
CN103838572A (zh) * 2013-12-20 2014-06-04 北京掌阔技术有限公司 一种安卓开发包的打包系统和方法
US20140372963A1 (en) * 2013-06-18 2014-12-18 Ciambella Ltd. Method and apparatus for customized software development kit (sdk) generation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859244A (zh) * 2009-04-10 2010-10-13 中兴通讯股份有限公司 多工具链工程构建方法及系统
CN101667134A (zh) * 2009-09-23 2010-03-10 中兴通讯股份有限公司 一种构建编译系统的方法、一种编译系统及其构建装置
CN101826014A (zh) * 2010-04-20 2010-09-08 北京邮电大学 一种软件工程源代码的分割方法
CN102118500A (zh) * 2010-12-27 2011-07-06 清华大学 移动终端开源操作系统基于软件包的在线自动更新方法
CN102902544A (zh) * 2012-09-29 2013-01-30 福建升腾资讯有限公司 一种电话支付终端软件平台的实现方法
US20140372963A1 (en) * 2013-06-18 2014-12-18 Ciambella Ltd. Method and apparatus for customized software development kit (sdk) generation
CN103838572A (zh) * 2013-12-20 2014-06-04 北京掌阔技术有限公司 一种安卓开发包的打包系统和方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111562928A (zh) * 2020-04-28 2020-08-21 北京字节跳动网络技术有限公司 资源提供方法及装置、资源下载方法及装置
CN111562928B (zh) * 2020-04-28 2023-05-05 北京字节跳动网络技术有限公司 资源提供方法及装置、资源下载方法及装置
CN111580829A (zh) * 2020-05-09 2020-08-25 广东天波信息技术股份有限公司 一种适用多种红外热成像测温模组的sdk开发装置

Also Published As

Publication number Publication date
CN107291436B (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN104133772B (zh) 一种自动生成测试数据的方法
CN104714788B (zh) 一种软件安装包自动生成的方法及装置
CN104156314B (zh) 一种应用于测试系统的代码重用方法
CN107506219A (zh) 一种基于Android系统的通用版本升级方法
Ryssel et al. Automatic variation-point identification in function-block-based models
CN107608677A (zh) 一种编译处理方法、装置及电子设备
CN106155651A (zh) 应用程序版本的自动化发布及更新的方法和系统
CN104268072A (zh) 图形化脚本编辑器及快速开发通信设备测试脚本的方法
CN107864052A (zh) 基于持续部署应用配置自动化升级的方法及其系统
CN104298594B (zh) 一种源代码中值计算错误的自动检测和定位方法
CN107015813A (zh) 代码修复的方法、装置及电子设备
CN101866315B (zh) 软件开发工具的测试方法及系统
CN103049363B (zh) 一种NAND Flash控制器的验证方法
WO2016026328A1 (zh) 一种信息处理方法、装置及计算机存储介质
CN103885770A (zh) 单片机从可执行文件找回汇编文件的实现方法
CN108021415A (zh) 自动打包方法、装置、计算机设备及存储介质
CN105335246A (zh) 一种基于问答网站分析的程序崩溃缺陷自动修复方法
CN107291436A (zh) Sdk包产生方法、装置及终端
CN104102581A (zh) 一种实现单元测试的方法及装置
CN115061772A (zh) 一种多领域仿真模型集成方法及系统
CN104991810A (zh) 自动添加apk到安卓系统中的方法及处理系统
CN114741360A (zh) 汽车零件文件重建方法、装置、终端设备及存储介质
Klinbua et al. Translating tosca into docker-compose yaml file using antlr
CN108170466B (zh) 一种基于程序合成的c/c++程序缺陷自动修复方法
CN104899042A (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
GR01 Patent grant
GR01 Patent grant