CN112148303B - 文件生成方法、装置、终端及存储介质 - Google Patents
文件生成方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112148303B CN112148303B CN202011045364.3A CN202011045364A CN112148303B CN 112148303 B CN112148303 B CN 112148303B CN 202011045364 A CN202011045364 A CN 202011045364A CN 112148303 B CN112148303 B CN 112148303B
- Authority
- CN
- China
- Prior art keywords
- file
- module
- compiling
- maven
- mode
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004590 computer program Methods 0.000 claims description 18
- 230000001419 dependent effect Effects 0.000 claims description 13
- 230000007547 defect Effects 0.000 abstract description 6
- 230000007812 deficiency Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 21
- 238000011161 development Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 239000011651 chromium Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种文件生成方法,该方法包括:调用第一模块运用第一编译方式编译生成第一文件;调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;根据所述第一文件和所述第二文件生成目标文件。本申请还公开了一种提供了文件生成装置、终端和计算机可读存储介质。本申请避免文件编译在某一依赖上的缺陷和不足,编译工作无法完成问题的出现,提高了编译支持的广度,进而提高了编译文件支持的完整性和准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件生成方法、装置、终端及存储介质。
背景技术
现在的chromium内核(网页浏览器引擎)基于gn+ninja编译,先由gn工具根据各个模块的.gn配置文件,再由ninja工具产生最终的目标文件,比如静态库、动态库、exe可执行文件或者是apk文件(Android application package,Android应用程序包)等等。
现有的编译方式主要缺点:无法支持maven(项目对象模型)依赖,当内核代码需要依赖maven仓库的组件时,导致编译工作无法完成。
发明内容
本申请实施例通过提供一种文件生成方法、装置终端及存储介质,旨在解决现有的编译方式无法支持maven依赖,当内核代码需要依赖maven仓库的组件时,导致编译工作无法完成的技术问题。
为实现上述目的,本申请一方面提供了一种文件生成方法,所述文件生成方法包括:
调用第一模块运用第一编译方式编译生成第一文件;
调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
根据所述第一文件和所述第二文件生成目标文件。
为实现上述目的,本申请另一方面还提出一种文件生成装置,所述装置包括:
所述控制模块,用于调用第一模块运用第一编译方式编译生成第一文件;
所述控制模块,还用于调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
所述生成模块,用于根据所述第一文件和所述第二文件生成目标文件。
为实现上述目的,本申请另一方面还提出一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件;
调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
根据所述第一文件和所述第二文件生成目标文件。
为实现上述目的,本申请另一方面还提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件;
调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
根据所述第一文件和所述第二文件生成目标文件。
本申请的通过增加第二模块的方式,增加Maven依赖的支持,使得开发过程的编译支持所有依赖的文件,避免文件编译在某一依赖上的缺陷和不足,编译工作无法完成问题的出现,提高了编译支持的广度,进而提高了编译文件支持的完整性和准确性。
附图说明
图1为实现本申请各个实施例的终端的硬件结构示意图;
图2为本申请文件生成方法一实施例的操作流程示意图;
图3为本申请一实施例中根据所述第一文件和所述第二文件生成目标文件的操作流程示意图;
图4为本申请文件生成方法另一实施例的操作流程示意图;
图5为本申请文件生成方法一实施例中调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖的操作流程示意图;
图6为本申请文件生成方法又一实施例的操作流程示意图;
图7为本申请文件生成方法一实施例中编译过程的类图的示意图;
图8为本申请文件生成方法一实施例中插件工作时序的示意图;
图9为本申请一实施例中文件生成装置的架构示意图;
图10为本申请另一实施例中文件生成装置的架构示意图;
图11为本申请又一实施例中文件生成装置的架构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请的实施方案是:调用第一模块运用第一编译方式编译生成第一文件;调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;根据所述第一文件和所述第二文件生成目标文件。
本申请所述的终端可以各种形式来实施。例如,终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端。当然也可以是广义的终端设备,例如,加载了处理器的设备,例如,笔记本、手机等,所述终端可以包括支持文件生成的设备。
参照图1,图1是本申请实施例方法涉及的硬件运行环境的设备结构示意图
如图1所示,以移动终端为例,该移动终端可以包括:处理器1001,例如CPU,存储器1003,通信总线1004,用户输入单元1002,显示单元1005。其中,通信总线1004用于实现处理器1001和存储器1003之间的连接通信。存储器1003可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1003可选的还可以是独立于前述处理器1001的存储装置。
可选地,移动终端还包括至少一种传感器,比如光传感器、运动传感器以及其他传感器。加速计传感器作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用 (比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、 湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
可选地,显示单元1005用于显示由用户输入的消息或提供给用户的消息。显示单元1005可包括显示面板,可以采用液晶显示器(Liquid Crystal Display,LCD、有机发光二极管 (OrganicLight-Emitting Diode,OLED)等形式来配置显示面板。
可选地,用户输入单元1002可用于接收输入的数字或字符消息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元1002可包括触控面板以及其他输入设备。触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程式驱动相应的连接装置。除了触控面板,用户输入单元1002还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
可选地,处理器1001是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器1003内的软件程序和/或模块,以及调用存储在存储器1003内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器1001可包括一个或多个处理单元;可选的,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要 处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。
可选地,存储器1003可用于存储软件程序以及各种数据。存储器1003可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1003可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域技术人员可以理解,图1中示出的移动终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的移动终端中,处理器1001用于执行存储器1003中文件生成应用程序,实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件;
调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
根据所述第一文件和所述第二文件生成目标文件。
参考图2,图2为本申请文件生成方法的操作流程示意图;所述文件生成方法包括:
步骤S10,调用第一模块运用第一编译方式编译生成第一文件;
终端开发布局了第一模块,所述第一模块使用gn+ninja编译方式,即,第一编译方式为gn+ninja编译方式。通过第一编译方式,即通过gn+ninja编译方式编译生成第一文件,所述gn+ninja的编译方式生成的文件过程包括:先由gn工具根据各个模块的.gn配置文件,再由ninja工具产生最终的第一文件。
在一实施例中,所述第一模块为主模块,所述主模块运行有主代码逻辑,通过主代码逻辑在gn+ninja的编译方式下编译生成第一文件。
步骤S20,调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
终端开发布局了第二模块,所述第二模块使用gradle编译,即,所述第二编译方式为gradle编译。通过第二编译方式,即通过gradle编译生成第二文件,所述第二编译方式支持Maven依赖。第一编译方式是与第二编译方式不同的编译方式,第一编译方式不支持Maven依赖,而第二编译方式支持Maven依赖。
在一实施例中,所述第二模块为插件模块,所述插件模块接入主模块的代码逻辑。可选地,在主模块中定义功能接口,并提供插件***逻辑,使用原有gn+ninja方式编译;在插件模块中实现功能接口,并将插件模块***到主代码逻辑中,插件模块使用gradle编译,gradle编译支持Maven依赖。通过第一模块-主模块和第二模块(插件模块),采用不同的编译方式来完成文件的编译,生成各自编译方式下支持的依赖资源的文件,提供支持Maven依赖的插件模块,在开发过程中,提供编译下支持Maven仓库的组件的文件。
步骤S30,根据所述第一文件和所述第二文件生成目标文件。
在通过第一模块和第二模块分别生成了第一文件和第二文件后,要根据第一文件和第二文件生成最终的目标文件,通过目标文件完成网页浏览器内部的编译过程,生成开发的浏览器内核编译文件,提供给开发项目,支持网页浏览器的内核需求。
在一实施例中,参考图3,所述根据所述第一文件和所述第二文件生成目标文件的步骤包括:
步骤S31,合并所述第一文件和所述第二文件,将合并后的文件作为目标文件。
开发布局了主模块和插件模块,由主模块和插件模块共同完成浏览器内核文件的编译过程,在分别通过主模块和插件模块完成各自的编译事项形成第一文件和第二文件后,将生成的第一文件和第二文件合并生成最终的目标文件。生成的目标文件为完整内核aar包,包含了内核so、jar、资源文件。通过不同的模块实现完整内核aar包不同依赖支持的部分的编译工作,通过设置的不同的模块,引入插件模块,实现Maven依赖的支持。所述第一文件部分可为无需Maven支持的部分的编译文件,而第二文件部分可为需要Maven支持的部分的编译文件。
在一实施例中,为了资源分配合理,加快编译过程,快速形成内核文件。在确定需要编译内核文件,完成开发过程时,根据内核文件的编译需求,确定对应需要支持部分的依赖资源;根据支持部分的依赖资源不同,选择不同的模块来完成编译工作,将编译工作选择相应的模块来支持。
可以理解的是,在启动第二模块,即启动插件模块之前,可以执行如下过程:所述调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖的步骤之前,还包括:
判断文件生成是否需要支持Maven依赖;
若需要支持Maven依赖,则执行调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖的步骤。如果不需要Maven依赖的支持,在开发过程中,形成内核文件时,无需启用第二模块来完成编译工作。
本实施例通过增加第二模块的方式,增加Maven依赖的支持,使得开发过程的编译支持所有依赖的文件,避免文件编译在某一依赖上的缺陷和不足,编译工作无法完成问题的出现,提高了编译支持的广度,进而提高了编译文件支持的完整性和准确性。
在本申请的一实施例中,参考图4,所述根据所述第一文件和所述第二文件生成目标文件的步骤之后,还包括:
步骤S40,确定目标文件所需支持的组件信息;
步骤S50,在所述目标文件中添加Maven依赖的组件的声明信息。
在生成了目标文件后,根据使用第一模块和第二模块编译的情况,确定目标文件所需支持的组件信息,例如,支持的Maven仓库组件的信息,在需要支持Maven仓库的组件时,在所述目标文件中添加Maven依赖的组件的声明信息。可以理解的是编译操作后最终输出完整内核aar包,包含了内核so、jar、资源文件,依赖的组件代码不会直接包含在输出包中;输出的aar上传到maven仓库时声明需要依赖的组件。
本实施例在输出目标文件时只声明需要依赖的组件,而不包含依赖的组件代码;接入内核的应用本身如果也有同样的依赖,不会造成冲突。
在一实施例中,参考图5,所述调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖的步骤包括:
步骤S21,确定文件生成的源码数据,根据所述源码数据确定文档参数;
步骤S22,基于所述文档参数和第二编译方式调用Maven组件执行编译操作生成第二文件。
开发的过程中,会维护一个开发文档,例如,JavaDoc文档,目标接口的源码数据是对接口进行编写的数据。可选地,通过JavaDoc插件读取目标接口的源码数据,包括通过JavaDoc插件提供的Doclet接口对目标源码数据进行读取。而JavaDoc从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签做注释,在程序编写完成后,通过JavaDoc就可以同时形成程序的开发文档了。JavaDoc命令是用来生成自己API文档的,使用方式:使用命令行在目标文件所在目录输入JavaDoc+文件名.java。在通过JavaDoc插件读取目标接口的源码数据之后,根据源码数据确定目标接口的文档参数。
所述目标接口的文档参数包括:请求方式、请求路径、入参和返回值。其中,请求方式和请求路径通过检测来确定,入参和返回值可以包括入参本身和入参的参数类型。
在确定了文档参数后,基于所述文档参数和第二编译方式调用Maven组件执行编译操作生成第二文件。通过第二编译方式和文档参数,即编码的需求,和编译方式来调用Maven组件来完成第二文件的编译工作,编译形成准确的负荷内核需求的文件。
可选地,参考图6,根据源码数据,确定目标接口的文档参数的过程可以包括:
步骤S01,确定文件生成对应的目标接口的接口参数;
步骤S02,根据所述接口参数确定对应的Java类;
步骤S03,根据与所述java类匹配相应的文档参数。
所述目标接口可选为REST接口,则所述目标接口的Java类为Controller;若所述目标接口为RPC接口,则所述目标接口的Java类为Interface。
接口参数为接口类型,接口类型包括REST和RPC两种类别,其中REST接口对应的接口参数为Controller,RPC接口对应的接口参数为Interface。实现过程中JavaDoc主要针对Controller和Interface两个类进行分析处理,可以快速并准确的对各种类别的目标接口的文档参数进行描述。在读取了API接口参数后,在Maven工程中,执行Maven指令来使用Maven插件,以获取到其中的文档参数,生成第二文件。
本实施例通过接口的不同确定不同的接口参数,依据接口参数来确定文档参数,根据文档参数和第二模块的第二编译方式,完成第二文件的编译,使得文件的编译的参数更加准确,提高文件编译的准确性。
在一实施例中,为了更好的描述本实施例的方案,参考图7和图8,图7为编译过程的类图示意图;图8为插件工作时序图。
而本实施例的内核文件编译过程包括:
本方案通过插件方式处理maven依赖,将项目拆分成主模块和各个插件模块,主模块使用原有gn+ninja编译方式,插件模块使用gradle编译,gradle可以很好地处理maven依赖。
在主模块中定义功能接口,并提供插件***逻辑,使用原有gn+ninja方式编译;在插件模块中实现功能接口,并将自己***到主代码逻辑中,插件模块使用gradle编译;最后将主模块和各插件模块一起生成目标文件。
本实施例的内核文件编译带来的好处包括:
接入maven依赖很方便,能完整支持各种类型的依赖,不需要额外的开发适配;
输出的包只声明需要依赖的组件,而不包含依赖的组件代码;接入内核的应用本身如果也有同样的依赖,不会造成冲突。
本申请还提出一种文件生成装置,参考图9,所述文件生成装置包括:控制模块10和生成模块20,
所述控制模块10,用于调用第一模块运用第一编译方式编译生成第一文件;
所述控制模块10,还用于调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
所述生成模块20,用于根据所述第一文件和所述第二文件生成目标文件。
进一步地,所述第一模块为主模块,所述第二模块为插件模块,所述插件模块接入主模块的代码逻辑。
进一步地,所述生成模块20,用于合并所述第一文件和所述第二文件,将合并后的文件作为目标文件。
进一步地,参考图10,所述装置还包括:确定模块30和添加模块40,
所述确定模块30,用于确定目标文件所需支持的组件信息;
所述添加模块40,用于在所述目标文件中添加Maven依赖的组件的声明信息。
进一步地,参考图11,所述装置还包括:判断模块50,
所述判断模块50,用于判断文件生成是否需要支持Maven依赖;
所述控制模块10,还用于若需要支持Maven依赖,则执行调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖的步骤。
进一步地,所述生成模块20,还用于确定文件生成的源码数据,根据所述源码数据确定文档参数;基于所述文档参数和第二编译方式调用Maven组件执行编译操作生成第二文件。
进一步地,所述确定模块30,还用于确定文件生成对应的目标接口的接口参数;根据所述接口参数确定对应的Java类;根据与所述java类匹配相应的文档参数。
本申请还提出一种终端,所述终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件;
调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
根据所述第一文件和所述第二文件生成目标文件。
所述终端设置有处理器以及与所述处理器连接的主模块以及与主模块和处理器连接的插件模块,所述处理器通过连接的主模块和插件模块来完成浏览器内核文件的编译工作,形成目标文件。所述目标文件为完整内核aar包,包括但不限于内核so、jar、资源文件。本申请的内核文件编译工作需要增加第二模块,即,在之前的编译模块的基础上,文件编译项目需要分为主模块和插件模块,通过主模块和插件模块覆盖所有的依赖,例如,Maven依赖。
本申请的终端通过增加第二模块的方式,增加Maven依赖的支持,使得开发过程的编译支持所有依赖的文件,避免文件编译在某一依赖上的缺陷和不足,编译工作无法完成问题的出现,提高了编译支持的广度,进而提高了编译文件支持的完整性和准确性。
本申请还提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件;
调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖;
根据所述第一文件和所述第二文件生成目标文件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (7)
1.一种文件生成方法,其特征在于,所述文件生成方法包括:
调用第一模块运用第一编译方式编译生成第一文件,所述第一编译方式为gn+ninja编译方式;
判断文件生成是否需要支持Maven依赖;
若需要支持Maven依赖,则调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式为gradle编译且支持Maven依赖;
合并所述第一文件和所述第二文件,将合并后的文件作为目标文件,其中,生成的所述目标文件为完整内核aar包,包括内核so、jar、资源文件;
其中,所述第一模块为主模块,所述第二模块为插件模块,所述插件模块接入主模块的代码逻辑。
2.根据权利要求1所述的文件生成方法,其特征在于,所述根据所述第一文件和所述第二文件生成目标文件的步骤之后,还包括:
确定目标文件所需支持的组件信息;
在所述目标文件中添加Maven依赖的组件的声明信息。
3.根据权利要求1所述的文件生成方法,其特征在于,所述调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式支持Maven依赖的步骤包括:
确定文件生成的源码数据,根据所述源码数据确定文档参数;
基于所述文档参数和第二编译方式调用Maven组件执行编译操作生成第二文件。
4.根据权利要求3所述的文件生成方法,其特征在于,所述方法,还包括:
确定文件生成对应的目标接口的接口参数;
根据所述接口参数确定对应的Java类;
根据与所述Java类匹配相应的文档参数。
5.一种文件生成装置,其特征在于,所述装置包括:控制模块、判断模块和生成模块,
所述控制模块,用于调用第一模块运用第一编译方式编译生成第一文件,所述第一编译方式为gn+ninja编译方式;
所述判断模块,还用于判断文件生成是否需要支持Maven依赖;
所述控制模块,还用于若需要支持Maven依赖,则调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式为gradle编译且支持Maven依赖;
所述生成模块,用于合并所述第一文件和所述第二文件,将合并后的文件作为目标文件,其中,生成的所述目标文件为完整内核aar包,包括内核so、jar、资源文件;
其中,所述第一模块为主模块,所述第二模块为插件模块,所述插件模块接入主模块的代码逻辑。
6.一种终端,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件,所述第一编译方式为gn+ninja编译方式;
判断文件生成是否需要支持Maven依赖;
若需要支持Maven依赖,则调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式为gradle编译且支持Maven依赖;
合并所述第一文件和所述第二文件,将合并后的文件作为目标文件,其中,生成的所述目标文件为完整内核aar包,包括内核so、jar、资源文件;
其中,所述第一模块为主模块,所述第二模块为插件模块,所述插件模块接入主模块的代码逻辑。
7.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现以下步骤:
调用第一模块运用第一编译方式编译生成第一文件,所述第一编译方式为gn+ninja编译方式;
判断文件生成是否需要支持Maven依赖;
若需要支持Maven依赖,则调用第二模块运用第二编译方式编译生成第二文件,所述第二编译方式为gradle编译且支持Maven依赖;
合并所述第一文件和所述第二文件,将合并后的文件作为目标文件,其中,生成的所述目标文件为完整内核aar包,包括内核so、jar、资源文件;
其中,所述第一模块为主模块,所述第二模块为插件模块,所述插件模块接入主模块的代码逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011045364.3A CN112148303B (zh) | 2020-09-28 | 2020-09-28 | 文件生成方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011045364.3A CN112148303B (zh) | 2020-09-28 | 2020-09-28 | 文件生成方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148303A CN112148303A (zh) | 2020-12-29 |
CN112148303B true CN112148303B (zh) | 2024-05-28 |
Family
ID=73895173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011045364.3A Active CN112148303B (zh) | 2020-09-28 | 2020-09-28 | 文件生成方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148303B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748927A (zh) * | 2020-12-30 | 2021-05-04 | 上海微盟企业发展有限公司 | 一种项目接口解析方法及相关装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963915A (zh) * | 2010-09-25 | 2011-02-02 | 中兴通讯股份有限公司 | 一种编译的构建方法及*** |
CN104778033A (zh) * | 2014-01-09 | 2015-07-15 | 大唐电信科技股份有限公司 | 一种积木式软件的构建方法和装置 |
CN106569869A (zh) * | 2016-11-14 | 2017-04-19 | 平安科技(深圳)有限公司 | 插件化打包方法及装置 |
CN107908407A (zh) * | 2017-12-11 | 2018-04-13 | 北京奇虎科技有限公司 | 编译方法、装置及终端设备 |
CN109086048A (zh) * | 2018-07-05 | 2018-12-25 | 杭州涂鸦信息技术有限公司 | 一种Android客户端项目下多个模块单独发布AAR的实现方法 |
CN110554876A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 用于编译安卓工程的方法和装置 |
CN110825365A (zh) * | 2019-11-14 | 2020-02-21 | 福州汇思博信息技术有限公司 | 一种定制webview特性的方法、装置、设备和介质 |
CN111124420A (zh) * | 2019-12-19 | 2020-05-08 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111258563A (zh) * | 2020-01-16 | 2020-06-09 | 江苏满运软件科技有限公司 | 一种接口文档的生成方法、装置、存储介质及电子设备 |
CN111273943A (zh) * | 2018-12-04 | 2020-06-12 | 北京嘀嘀无限科技发展有限公司 | 应用文件的生成方法、装置及电子设备 |
CN111399840A (zh) * | 2020-03-04 | 2020-07-10 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种模块开发方法及装置 |
CN111443921A (zh) * | 2020-03-27 | 2020-07-24 | 中国平安财产保险股份有限公司 | web前端项目的分包部署方法、***和计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10963230B2 (en) * | 2019-02-14 | 2021-03-30 | International Business Machines Corporation | Single page application continuous integration, build, and deployment |
-
2020
- 2020-09-28 CN CN202011045364.3A patent/CN112148303B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963915A (zh) * | 2010-09-25 | 2011-02-02 | 中兴通讯股份有限公司 | 一种编译的构建方法及*** |
CN104778033A (zh) * | 2014-01-09 | 2015-07-15 | 大唐电信科技股份有限公司 | 一种积木式软件的构建方法和装置 |
CN106569869A (zh) * | 2016-11-14 | 2017-04-19 | 平安科技(深圳)有限公司 | 插件化打包方法及装置 |
CN107908407A (zh) * | 2017-12-11 | 2018-04-13 | 北京奇虎科技有限公司 | 编译方法、装置及终端设备 |
CN110554876A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 用于编译安卓工程的方法和装置 |
CN109086048A (zh) * | 2018-07-05 | 2018-12-25 | 杭州涂鸦信息技术有限公司 | 一种Android客户端项目下多个模块单独发布AAR的实现方法 |
CN111273943A (zh) * | 2018-12-04 | 2020-06-12 | 北京嘀嘀无限科技发展有限公司 | 应用文件的生成方法、装置及电子设备 |
CN110825365A (zh) * | 2019-11-14 | 2020-02-21 | 福州汇思博信息技术有限公司 | 一种定制webview特性的方法、装置、设备和介质 |
CN111124420A (zh) * | 2019-12-19 | 2020-05-08 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111258563A (zh) * | 2020-01-16 | 2020-06-09 | 江苏满运软件科技有限公司 | 一种接口文档的生成方法、装置、存储介质及电子设备 |
CN111399840A (zh) * | 2020-03-04 | 2020-07-10 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种模块开发方法及装置 |
CN111443921A (zh) * | 2020-03-27 | 2020-07-24 | 中国平安财产保险股份有限公司 | web前端项目的分包部署方法、***和计算机设备 |
Non-Patent Citations (4)
Title |
---|
CBNG-THE NEW BUILD TOOL USED TO BUILD MILLIONS OF LINES OF JAVA CODE AT CERN;V. Baggiolini等;《16th Int. Conf. on Accelerator and Large Experimental Control Systems》;20171231;789-793 * |
Detecting Incorrect Build Rules;Na´ndor Licker等;《2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)》;20190826;1234-1244 * |
基于Jenkins的项目持续集成方案研究与实现;张力文;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170715;I138-164 * |
基于Ninja的分布式编译***;张朝滨;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160615;I138-483 * |
Also Published As
Publication number | Publication date |
---|---|
CN112148303A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027722B (zh) | 在编译和部署中动态更新应用 | |
US10152309B2 (en) | Cross-library framework architecture feature sets | |
US9389890B2 (en) | Hierarchical directives-based management of runtime behaviors | |
US9442707B2 (en) | Incremental whole program compilation of code | |
US10175964B2 (en) | Compiler caching for runtime routine redundancy tracking | |
US9436449B1 (en) | Scenario-based code trimming and code reduction | |
EP3123315B1 (en) | Hierarchical directives-based management of runtime behaviors | |
US9772925B2 (en) | Storage access debugging with disassembly and symbol entries | |
US7818730B1 (en) | Automatic minimal build dependency determination and building an executable with source code | |
US20200264866A1 (en) | Caching build graphs | |
US9817643B2 (en) | Incremental interprocedural dataflow analysis during compilation | |
MX2015002906A (es) | Generacion de codigo nativo a partir de un codigo de lenguaje intermediario para una aplicacion. | |
CN109597621B (zh) | 封装Dagger的方法、装置、终端设备及存储介质 | |
US11789913B2 (en) | Integration of model execution engine containers with a model development environment | |
CN112148303B (zh) | 文件生成方法、装置、终端及存储介质 | |
CN114579452A (zh) | 接口影响检测方法及相关设备 | |
KR20140050323A (ko) | 라이선스 검증 방법 및 그 장치 | |
CN113407186A (zh) | 控制执行方法、控制执行装置、终端及可读存储介质 | |
CN112698867A (zh) | 注解信息的动态修改方法、装置、电子设备及介质 | |
CN107077365B (zh) | 有选择地加载预编译的头部和/或其部分 | |
Liu et al. | Exploring sensor usage behaviors of android applications based on data flow analysis | |
CN110908882A (zh) | 一种应用程序的性能分析方法、装置、终端设备及介质 | |
CN109426546B (zh) | 应用启动方法及装置、计算机存储介质及设备 | |
CN112685095B (zh) | 一种虚拟设备的加载方法、装置、设备及存储介质 | |
CN110727423A (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 |