CN115640005A - 混合应用的生成方法及装置 - Google Patents
混合应用的生成方法及装置 Download PDFInfo
- Publication number
- CN115640005A CN115640005A CN202211312136.7A CN202211312136A CN115640005A CN 115640005 A CN115640005 A CN 115640005A CN 202211312136 A CN202211312136 A CN 202211312136A CN 115640005 A CN115640005 A CN 115640005A
- Authority
- CN
- China
- Prior art keywords
- file
- application
- target
- resource
- information
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请适用于计算机技术领域,提供了一种混合应用的生成方法及装置,方法包括:接收用户针对于目标混合应用输入的第一信息;获取模板文件,模板文件包括脚本文件、必要文件和版本文件;接收用户针对于目标混合应用输入的第二信息和应用资源;在运行脚本文件的过程中,根据第一信息修改必要文件,根据第二信息修改版本文件,并对修改后的必要文件、修改后的版本文件和应用资源进行编译和打包,得到目标混合应用的安装包。从而,可实现混合应用的生成。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种混合应用(hybrid application)的生成方法及装置。
背景技术
混合应用由于轻量化、跨平台等优势,被频繁使用。随着业务需求的不断变化和业务功能的不断增长,开发人员常常需要通过更新混合应用内部的超文本标记语言5(hypertext markup language 5,H5)资源包或H5链接,来更新混合应用。
相关的更新方案中,开发人员可利用分布式版本控制系统(git)仓库,对混合应用的源代码中与H5资源包或H5链接相关的代码进行修改,并将修改后的源代码存储到回调地址对应的空间中。继而,开发人员可利用jenkins平台,根据回调地址从git仓库中获取修改后的源代码,并对修改后的源代码进行编译打包,得到混合应用的安装包,如Android应用程序包(Android application package,apk)。
然而,上述更新方案采用人工方式来修改H5资源包或H5链接对应的代码,过程复杂且自动化程度低,不适用于快速更新的业务场景。
发明内容
本申请实施例提供了一种混合应用的生成方法及装置,可以实现自动更新混合应用中的H5资源包或H5链接,自动化程度较高,可适用于快速更新的业务场景。
第一方面,本申请实施例提供了一种混合应用的生成方法,方法包括:
接收用户针对于目标混合应用输入的第一信息,第一信息包括目标混合应用的应用名称、应用图标和应用包名;
获取模板文件,模板文件包括脚本文件、必要文件和版本文件;
接收用户针对于目标混合应用输入的第二信息和应用资源,第二信息包括目标混合应用的版本名称、版本号和加载资源方式;
在运行脚本文件的过程中,根据第一信息对必要文件进行修改,根据第二信息对版本文件进行修改,并对修改后的必要文件、修改后的版本文件和应用资源进行编译和打包,得到目标混合应用的安装包。
在一种可能的实现方式中,应用资源为目标H5资源包或目标H5链接,目标H5链接对应的资源包为目标H5资源包。
在一种可能的实现方式中,模板文件还包括基础H5资源包和基础H5链接;对修改后的必要文件、修改后的版本文件和应用资源进行编译和打包,包括:
在加载资源方式表示应用资源为目标H5资源包时,将基础H5资源包替换为目标H5资源包,将基础H5链接替换为目标H5资源包的链接,对修改后的必要文件、修改后的版本文件和目标H5资源包进行编译和打包;
或者,在加载资源方式表示应用资源为目标H5链接时,将基础H5链接替换为目标H5链接,对修改后的必要文件、修改后的版本文件和目标H5链接进行编译和打包。
在一种可能的实现方式中,模板文件为针对于不同的混合应用均相同的模板文件;或者,模板文件为与任意一个版本的目标混合应用对应的模板文件。
在一种可能的实现方式中,在根据第一信息对必要文件进行修改,根据第二信息对版本文件进行修改之后,该方法还包括:
存储新的模板文件,新的模板文件包括脚本文件、修改后的必要文件、修改后的版本文件、目标H5资源包和目标H5链接。
在一种可能的实现方式中,模板文件的存储地址与新的模板文件的存储地址不同。
在一种可能的实现方式中,根据第二信息对版本文件进行修改,包括:
将第二信息转换为JSON格式的信息;
根据JSON格式的信息对版本文件进行修改。
本申请实施例通过根据用户针对于目标混合应用输入的第一信息,对必要文件进行自动修改。根据用户针对于目标混合应用输入的第二信息,对版本文件进行自动修改。在运行脚本文件的过程中,对修改后的必要文件、修改后的版本文件和用户针对于目标混合应用输入的应用资源进行自动编译和打包操作的技术手段,解决了现有更新混合应用的方案需要人工修改代码,过程复杂且自动化程度较低的技术问题,达到了可快速更新应用资源,并自动化生成目标混合应用的技术效果。
第二方面,本申请实施例提供了一种混合应用的生成装置,该装置用于执行上述第一方面或第一方面的任一可能的实现方式中的方法。具体地,该装置可以包括用于执行第一方面或第一方面的任一可能的实现方式中混合应用的生成方法的模块。
第三方面,本申请实施例提供了一种服务器,该服务器包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序。该处理器执行该计算机程序时,使得该服务器执行第一方面或第一方面的任一可能的实现方式中混合应用的生成方法。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中混合应用的生成方法。
第五方面,提供一种包含指令的计算机程序产品,当该指令在服务器上运行时,使得服务器执行第一方面或第一方面的任一可能的实现方式中混合应用的生成方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种混合应用的生成方法的流程示意图;
图2是本申请实施例提供的服务器的一种显示界面示意图;
图3是本申请实施例提供的服务器的另一种显示界面示意图;
图4是本申请实施例提供的一种混合应用的生成方法的流程示意图;
图5本申请实施例提供的一种混合应用的生成装置的结构示意框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
请参阅图1,图1示出了本申请实施例提供的一种混合应用的生成方法的流程示意图。如图1所示,本申请的混合应用的生成方法应用于服务器或服务器中的软件模块。本申请的混合应用的生成方法可以包括:
S101、接收用户针对于目标混合应用输入的第一信息,第一信息包括目标混合应用的应用名称、应用图标和应用包名。
用户可在服务器的第一界面A中输入第一信息。
其中,第一界面A是服务器的一个显示界面。第一界面A可用于显示与第一信息对应的相关控件。
其中,第一信息是服务器生成目标混合应用所需的相关信息。第一信息可以包括目标混合应用的应用名称、应用图标和应用包名。
其中,目标混合应用是一个待生成的混合应用。混合应用是使用原生安卓开发,内嵌一个网页视图(webview)控件加载H5资源包或H5链接的应用程序。例如,目标混合应用可以是一个新的应用程序。或者,目标混合应用还可以是一个已存在且需要更新H5资源包或H5链接的应用程序。
如图2所示,第一界面A具体用于显示应用名称控件、应用图标控件和应用包名控件等不同的控件。从而,使得用户通过对各个控件进行触发操作,输入与每个控件对应的第一信息。
用户通过对应用名称控件进行触发操作,可输入目标混合应用的应用名称。应用名称是用户根据目标混合应用的业务功能进行命名的名称。通常,应用名称采用中文命名。
用户通过对应用图标控件进行触发操作,可输入目标混合应用的应用图标。应用图标是用户根据业务需求设计的图案、字符等标识。
用户通过对应用包名控件进行触发操作,可输入目标混合应用的应用包名。应用包名是服务器生成的目标混合应用的安装包的名称。
在用户输入目标混合应用的应用名称、应用图标和应用包名之后,用户可对第一界面A中的确定控件进行触发操作。
其中,第一界面A中的确定控件用于触发服务器接收第一信息。
服务器响应于用户对第一界面A中的确定控件进行的触发操作,可接收到目标混合应用的应用名称、应用图标和应用包名。
综上,服务器可接收到用户针对于目标混合应用输入的第一信息。
另外,第一信息还可包括:目标混合应用的项目名称、git仓库地址、关联用户等。
其中,项目名称是服务器中目标混合应用的源代码存放的文件的名称。通常,项目名称采用英文命名。
git仓库地址是目标混合应用的源代码在git仓库中的存储地址。git仓库是对代码进行托管的软件。
关联用户用于指示目标混合应用开发过程中的一个或多个用户。关联用户可通过关键词进行搜索、查询。其中,本申请提及的用户可以包括H5前端开发人员和Android开发人员等。
如图2所示,第一界面A还用于显示项目名称控件、git仓库地址控件和关联用户控件等。
在第一界面A中,目标混合应用的项目名称、git仓库地址、关联用户等的输入过程与上文应用名称等的输入过程一致,此处不再赘述。
S102、获取模板文件,模板文件包括脚本文件、必要文件和版本文件。
在接收到第一信息后,服务器响应于第一信息,可获取模板文件。
其中,模板文件可以用于生成任意一个混合应用。
在一些实施例中,模板文件是Android开发人员在开发混合应用时,创建的一个用于存放对应的混合应用的源代码的文件目录,即Android项目。
针对于不同的混合应用,不同的混合应用的模板文件都是基于不同的混合应用对应的第一信息对同一份模板文件进行修改后得到的。因此,每个混合应用的模板文件在内容上有所区别,但总体结构一致。
其中,模板文件可以包括脚本文件、必要文件和版本文件。
脚本文件用于触发模板文件的自动修改参数、自动编译和打包的操作。在混合应用的开发过程中,脚本文件不发生改变。例如,脚本文件可采用gradle脚本文件。
通常,gradle脚本文件中的gradle脚本具有自定义扩展补充的功能。Android开发人员利用自定义扩展补充的功能,可将gradle脚本的占位符的功能、自动编译和打包的功能以代码的形式添加至gradle脚本文件中。从而,使得gradle脚本文件具有自动修改参数、自动编译和打包的功能。
其中,占位符是一个可以被替换的临时标记,因此,Android开发人员利用占位符的功能,可使得gradle脚本文件能够触发模板文件的自动修改参数的操作。Android开发人员利用自动编译和打包的功能,可使得gradle脚本文件能够触发模板文件的自动编译和打包的操作。
必要文件用于配置模板文件运行所必须的组件、权限和相关信息等。必要文件可包括:android manifest.xml文件、build.gradle文件、main activity.java文件等。
其中,android manifest.xml文件是混合应用的全局配置文件。androidmanifest.xml文件可用于定义混合应用中包含的页面组件、权限信息、应用名称和版本名称等信息,其中,应用名称和版本名称等信息均采用占位符进行填写。因此,在编译和打包的过程中,应用名称和版本名称等信息才可在gradle脚本文件运行时完成替换。
gradle脚本文件可以包括:build.gradle文件,除了gradle脚本具有的占位符功能和自动化编译和打包的功能之外,build.gradle文件还包含任意一个Android项目使用到的所有java平台依赖库,以及定义了任意一个Android项目所支持的最小Android系统版本。
main activity.java文件是混合应用的主页面文件。main activity.java文件可用于布局混合应用的目的、功能以及各种实现混合应用的功能的方法等,如设置混合应用打开后加载的页面地址等。
版本文件用于配置混合应用对应的版本信息,版本文件是一个轻量级数据交换格式(java script object notation,JSON)文件。
在一些实施例中,模板文件存储在git仓库中。其中,git仓库用于实现对代码的存储和管理。git仓库可以包括:gitlab、gitee、github等。gitlab、gitee、github等均是基于git实现的在线代码托管软件。
因此,服务器可执行访问git仓库的操作。例如,服务器可通过jgit工具类库访问git仓库。其中,jgit工具类库是一个轻量级纯java语言的类库。
从而,服务器可通过访问git仓库中模板文件的存储地址,获取模板文件。
另外,模板文件可由Android开发人员在服务器或其他设备中进行创建,并通过服务器将模板文件上传到git仓库中进行存储。
S103、接收用户针对于目标混合应用输入的第二信息和应用资源,第二信息包括目标混合应用的版本名称、版本号和加载资源方式。
在接收到第一信息后,服务器响应于第一信息,可接收第二信息和应用资源。在一些实施例中,在用户输入第一信息,且对第一界面A中的确定控件进行触发操作之后,服务器响应于用户对第一界面A中的确定控件进行的触发操作,可从显示第一界面A跳转为显示第二界面B。从而,用户可在第二界面B中输入第二信息和应用资源。
其中,第二界面B是服务器的一个显示界面。第二界面B可用于显示与第二信息对应的相关控件。
其中,第二信息是服务器生成对应版本的目标混合应用所需的相关信息。第二信息可以包括目标混合应用的版本名称、版本号和加载资源方式。
其中,应用资源是服务器生成任意一个版本的目标混合应用所需的相关资源。目标混合应用对应的应用资源可为目标H5资源包和/或目标H5链接,目标H5链接对应的资源包为目标H5资源包。
其中,加载资源方式可包括:H5资源包加载方式、H5链接加载方式等。
在用户输入的加载资源方式为H5资源包加载方式时,用户输入的应用资源为目标H5资源包。
其中,目标H5资源包是H5前端开发人员根据业务需求修改H5代码资源,并对修改后的H5代码资源进行编译和打包得到的一个压缩包。
在用户输入的加载资源方式为H5链接加载方式时,用户输入的应用资源为目标H5链接。
其中,目标H5链接是H5前端开发人员根据业务需求修改H5资源,对修改后的H5资源进行编译和打包得到的一个压缩包,并对压缩包进行部署后得到的一个链接。
如图3所示,第二界面B具体用于显示版本名称控件、版本号控件、加载资源方式控件等不同的控件。从而,使得用户通过对各个控件进行触发操作,输入与每个控件对应的第二信息。
用户通过对版本名称控件进行触发操作,可输入目标混合应用的版本名称。版本名称是用户根据目标混合应用的不同版本的开发顺序进行命名的名称。例如,版本名称命名为1.0.0。
用户通过对版本号控件进行触发操作,可输入目标混合应用的版本号。版本号是用户根据目标混合应用的不同版本的开发顺序设置的编号。例如,版本号设置为1。
用户通过对加载资源方式控件进行触发操作,可选择目标混合应用的加载资源方式。加载资源方式是应用资源的不同加载方式。应用资源的加载方式可由用户根据实际情况选择。
在用户输入版本名称、版本号、以及与用户选择的加载资源方式对应的应用资源之后,用户可对第二界面B中的确定控件进行触发操作。
其中,第二界面B中的确定控件用于触发服务器接收第二信息和应用资源。
服务器响应于用户对第二界面B中的确定控件进行的触发操作,可接收到目标混合应用的版本名称、版本号和应用资源。
综上,服务器可接收到用户针对于目标混合应用输入的第二信息和应用资源。
应理解,在第二界面B中输入与第一界面A中相同的应用名称,可使得用户在输入第一信息的基础上,继续输入与第一信息对应的目标混合应用的第二信息。
在一些实施例中,在用户输入第二信息,且对第二界面B中的确定控件进行触发操作之后,服务器响应于用户对第二界面B中的确定控件进行的触发操作,可从显示第二界面B跳转为显示第三界面。
其中,第三界面是服务器的一个显示界面。第三界面可用于显示编译控件。
其中,编译控件用于提供用户检查或修改第一信息和第二信息的接口。
用户可对第三界面中的编译控件进行触发操作。
服务器响应于用户对编译控件的触发操作,可对模板文件进行编译和打包。
应理解,S102和S103之间没有时序上的先后顺序,且S102和S103可以同时执行,也可以顺序执行。
基于上述描述,服务器可运行脚本文件。在运行脚本文件的过程中,服务器可完成对模板文件的修改、编译和打包的操作。对应的,服务器可执行S104-S106。
S104、根据第一信息对必要文件进行修改。
服务器在运行脚本文件的过程中,可接收第一信息。服务器可根据接收到的第一信息对必要文件中的相关内容进行修改。
在一些实施例中,服务器可根据应用名称、应用图标和应用包名,修改必要文件中对应的应用名称、应用图标和应用包名。
例如,服务器可根据应用名称、应用图标和应用包名,修改android manifest.xml文件中对应的应用名称、应用图标和应用包名。服务器可根据应用包名,修改build.gradle文件中对应的应用包名。服务器可根据应用包名,修改main activity.java文件中对应的应用包名。
从而,服务器可得到修改后的必要文件。
S105、根据第二信息对版本文件进行修改。
服务器在运行脚本文件的过程中,可接收第二信息。服务器可根据接收到的第二信息对版本文件中的相关内容进行修改。
在一些实施例中,服务器可根据版本名称和版本号,修改版本文件中对应的版本名称和版本号。
例如,由于JSON格式便于阅读和修改,服务器可将版本名称和版本号转换为JSON格式的信息。服务器可根据JSON格式的信息对JSON文件进行修改。
从而,服务器可得到修改后的版本文件。
应理解,S104和S105之间没有时序上的先后顺序,且S104和S105可以同时执行,也可以顺序执行。
上述方案中对必要文件和版本文件进行修改,均是为了确保服务器可成功生成目标混合应用。
S106、对修改后的必要文件、修改后的版本文件和应用资源进行编译和打包,得到目标混合应用的安装包。
服务器可获取到修改后的必要文件、修改后的版本文件和应用资源。从而,服务器可对修改后的必要文件、修改后的版本文件和应用资源进行编译和打包。
在一些实施例中,在用户对第三界面中的编译控件进行触发操作之后,服务器响应于用户对编译控件进行的触发操作,可执行window系统的cmd命令,触发脚本文件对修改后的必要文件、应用资源和修改后的版本文件进行自动编译和打包。其中,cmd命令为gradlew assemble release。
在编译和打包成功之后,服务器可得到编译产物。其中,编译产物可以包括目标混合应用的安装包和/或目标混合应用的安装包的下载地址。例如,目标混合应用的安装包可为apk文件。目标混合应用的安装包的下载地址可为apk文件路径。
另外,服务器还可从显示第三界面跳转为显示第四界面。
其中,第四界面是服务器的一个显示界面。第四界面可用于显示下载控件。下载控件用于提供用户下载目标混合应用的安装包的接口。
用户可对第四界面中的下载控件进行触发操作。
服务器响应于用户对下载控件进行的触发操作,可通过访问数据库中存储的目标混合应用的安装包的下载地址,下载目标混合应用的安装包。
综上,服务器可得到目标混合应用的安装包。
应理解,除了上述第一界面A、第二界面B、第三界面和第四界面之外,服务器中还可设置有其他显示界面。其他显示界面中可用于显示版本查询列表、编译状态、执行编译命令期间产生的日志等控件,使得用户可通过其他显示界面查阅及排查服务器运行过程中的问题。
本申请提供的混合应用的生成方法,通过接收用户针对于目标混合应用输入的第一信息。响应于第一信息,获取模板文件,并接收用户针对于目标混合应用输入的第二信息和应用资源。在运行模板文件中的脚本文件的过程中,可根据第一信息对模板文件中的必要文件进行自动修改,可根据第二信息对模板文件中的版本文件进行自动修改,并可对修改后的必要文件、修改后的版本文件和应用资源进行自动编译和打包,得到目标混合应用的安装包。从而,使得服务器可利用模板文件中的脚本文件,对模板文件中的必要文件和版本文件以及符合定制化的业务需求和业务功能的应用资源进行自动修改、编译和打包,实现了目标混合应用的自动生成,该过程的自动化程度高,能够适用于需要快速更新应用资源的业务场景。
在一些实施例中,模板文件中还包括基础资源。
其中,基础资源包括基础H5资源包和/或基础H5链接。
如果模板文件是针对于不同的混合应用均相同的模板文件,那么基础H5资源包是Android开发人员创建的H5资源示例文件夹。H5资源示例文件夹中包括示例页面的图片、文字等资源。基础H5链接是H5前端开发人员部署成功的H5资源示例地址。H5资源示例地址用于触发示例页面。
如果模板文件是与任意一个版本的目标混合应用对应的模板文件,那么基础H5资源包是任意一个版本的目标混合应用对应的资源包。任意一个版本的目标混合应用对应的资源包中包括任意一个版本的目标混合应用对应的页面的图片、文字等资源。基础H5链接是任意一个版本的目标混合应用对应的链接。任意一个版本的目标混合应用对应的链接用于触发任意一个版本的目标混合应用对应的页面。
从而,服务器可将模板文件中的基础资源替换为应用资源,能够及符合定制化的业务需求和业务功能。
请参阅图4,图4示出了本申请实施例提供的一种混合应用的生成方法的流程示意图。
如图4所示,本申请的混合应用的生成方法还可以包括:
S201、接收用户针对于目标混合应用输入的第一信息,第一信息包括目标混合应用的应用名称、应用图标和应用包名。
S202、获取模板文件,模板文件包括脚本文件、必要文件和版本文件。
S203、接收用户针对于目标混合应用输入的第二信息和应用资源,第二信息包括目标混合应用的版本名称、版本号和加载资源方式。
S204、根据第一信息对必要文件进行修改。
S205、根据第二信息对版本文件进行修改。
S201-S205的具体实现方式可参见S101-S105,此处不再赘述。
S206、在加载资源方式表示应用资源为目标H5资源包时,将基础H5资源包替换为目标H5资源包,将基础H5链接替换为目标H5资源包的链接。
在第二信息中的加载资源方式为H5资源包加载方式时,服务器可确定应用资源为目标H5资源包。
从而,服务器可将模板文件中的基础H5资源包替换为目标H5资源包,将基础H5链接替换为目标H5资源包对应的链接。目标H5资源包是H5前端开发人员对H5页面代码进行编译和打包后得到的压缩包,目标H5资源包中包含了H5页面的静态资源,替换过程中,只需要把原来存在的基础H5资源包进行删除,并将新得到的目标H5资源包进行解压,即可完成替换操作。
S207、对修改后的必要文件、修改后的版本文件和目标H5资源包进行编译和打包。
由于目标H5资源包存在一个对应的链接。服务器执行S206时,不仅需要替换模板文件中的基础H5资源包,还需要替换基础H5链接。因此,服务器执行S207时,还会对目标H5资源包对应的链接进行编译和打包,来确保服务器可成功生成目标混合应用。
S208、在加载资源方式表示应用资源为目标H5链接时,将基础H5链接替换为目标H5链接。
在第二信息中的加载资源方式为H5链接加载方式时,服务器可确定应用资源为目标H5链接。
从而,服务器可将模板文件中的基础H5链接替换为目标H5链接,来确保目标混合应用中可成功加载与目标H5链接对应的H5页面地址。例如,服务器可通过java中的文件流自动替换模板文件的主程序(main activity)中的基础H5链接。
S209、对修改后的必要文件、修改后的版本文件和目标H5链接进行编译和打包。
服务器执行S208替换的仅是模板文件中的基础H5链接,模板文件中还包含有基础H5资源包。虽然模板文件中包含基础H5资源包,编译的时候也会将此H5资源一起打包,但实际上,mainactvity.java文件中的加载地址,即基础H5链接已经发生了变更,所以打包后的模板文件不会加载基础H5资源包所对应的H5页面的静态资源。
应理解,S204、S205、S206和S208之间没有时序上的先后顺序,且S204、S205、S206和S208可以同时执行,也可以顺序执行。
综上,服务器可实现自动生成目标混合应用。
在一些实施例中,服务器可通过一个固定的git仓库地址来获取模板文件,之后根据第一信息,对模板文件进行修改,从而得到修改后的新的模板文件。其中,固定的git仓库地址是Android开发人员提前将模板文件上传到git仓库所得到的存储地址。
其中,新的模板文件可以包括修改后的必要文件、修改后的版本文件和应用资源以及脚本文件。
在一些实施例中,服务器需要通过jgit工具类库对git仓库进行初始化操作和提交操作,实现将新的模板文件上传至git仓库中存储。并且,新的模板文件的存储地址和模板文件的存储地址不同。
故,第一信息中的git仓库地址只能为新的模板文件的存储地址。从而,Android开发人员可通过新的模板文件的存储地址访问git仓库中存储的新的模板文件,使得Android开发人员继续开发不同版本的目标混合应用。
此外,服务器还可对第一信息、第二信息、应用资源、新的模板文件以及目标混合应用的安装包的下载地址等进行存储。
例如,服务器可将第一信息、第二信息、应用资源、新的模板文件以及目标混合应用的安装包的下载地址等存储至服务器的硬盘中。
又如,服务器可将第一信息、第二信息、应用资源、新的模板文件以及目标混合应用的安装包的下载地址等上传至数据库中存储。从而,保证服务器的正常运行。
在一些实施例中,本申请实施例的混合应用的生成方法除了可以通过服务器实现之外,还可以通过服务器中的软件模块实现。例如,软件模块是以代码形式创建的后台编译系统。
用户在服务器中创建后台编译系统之前,需要在服务器中安装软件开发工具包,并基于软件开发工具包构建后台编译系统。
其中,软件开发工具包用于提供后台编译系统正常运行所需的环境。软件开发工具包可包括:面向对象编程开发工具包(java development kit,JDK)、项目对象模型(maven)、安卓软件开发工具包(android software development kit,Android SDK)等。
用户可在java web的spring boot框架下,基于jgit工具类库和gradle脚本创建后台编译系统,即通过代码实现后台编译系统的创建。从而,后台编译系统具有自动编译和打包的功能。
其中,spring boot框架是java平台上的一种开源web应用框架。
综上,用户可通过登录后台编译系统,并在后台编译系统的多个显示界面中,对各个显示界面的相关信息进行输入、修改、查询等操作。
下面,基于图1至图3的描述,举例说明本申请的混合应用的生成方法的具体实现过程。
假设服务器上创建有后台编译系统,需要生成的目标混合应用为京东应用程序。
采用数据库进行相关信息的存储,可避免占用服务器的硬盘的存储空间。
采用的模板文件中包含基础H5资源包。
采用的加载资源方式为H5资源包加载方式,输入的应用资源为目标H5资源包。目标H5资源包中包含京东应用程序的页面控件、图标、组件等资源。
本申请的混合应用的生成方法的具体实现过程如下:
步骤11、用户登录后台编译系统。
步骤12、后台编译系统响应于用户的登录操作,后台系统可显示图2所示的第一界面A。
步骤13、用户在第一界面A中输入第一信息。第一信息可以包括应用名称为京东、应用图标为狗、应用包名为com.my.jd。
步骤14、用户输入完第一信息之后,可对第一界面A中的确定控件进行触发操作。从而,后台编译系统执行S101的操作,具体可参见上文S101的描述,此处不再赘述。
步骤15、后台编译系统响应于用户对第一界面A中的确定控件的触发操作,可将第一信息上传至数据库中存储。
步骤16、后台编译系统响应于第一信息,可通过jgit工具类库访问git仓库,获取git仓库中存储的模板文件,并将获取到的模板文件存储至服务器的硬盘中。步骤16的具体实现方式可参见上文S102的描述,此处不再赘述。
步骤17、用户对第一界面A中的确定控件进行触发操作之后,后台系统从显示第一界面A跳转为显示如图3所示的第二界面B。
步骤18、用户在第二界面B中输入第二信息。第二信息可以包括应用名称为京东、版本名称为1.0.0、版本号为1。
步骤19、用户通过选择第二信息的加载资源方式为H5资源包加载方式,以文件上传的方式输入目标H5资源包的应用资源。
步骤20、用户输入完第二信息和应用资源之后,可对第二界面B中的确定控件进行触发操作。从而,后台编译系统执行S103的操作,具体可参见上文S103的描述,此处不再赘述。
步骤21、后台编译系统响应于用户对第二界面B中的确定控件的触发操作,可将第二信息和应用资源上传至数据库中存储。
步骤22、用户对第二界面B中的确定控件进行触发操作之后,后台系统从显示第二界面B跳转为显示第三界面。
步骤23、用户通过对第三界面中的编译控件进行触发操作。
步骤24、后台编译系统响应于用户对第三界面中的编译控件的触发操作,可执行gradlew assemble release的cmd命令,触发编译和打包操作。
步骤25、后台编译系统执行编译和打包操作时,运行脚本文件。
步骤26、后台编译系统在运行脚本文件的过程中,可从数据库中获取第一信息,并根据第一信息修改必要文件。步骤26的具体实现方式可参见上文S104的描述,此处不再赘述。
步骤27、后台编译系统在运行脚本文件的过程中,可从数据库中获取目标H5资源包,将基础H5资源包替换为目标H5资源包,并将基础H5链接替换为目标H5资源包对应的链接。步骤26的具体实现方式可参见上文S201的描述,此处不再赘述。
步骤28、后台编译系统在运行脚本文件的过程中,可从数据库中获取第二信息,并将第二信息转换为JSON格式的信息,根据JSON格式的信息对版本文件进行修改。步骤28的具体实现方式可参见上文S105的描述,此处不再赘述。
步骤29、后台编译系统可对修改后的必要文件、应用资源和修改后的版本文件进行编译和打包,生成jd.apk文件,即京东应用程序的安装包。步骤29的具体实现方式可参见上文S106的描述,此处不再赘述。
另外,在后台编译系统对修改后的必要文件、应用资源和修改后的版本文件进行编译和打包之前,后台编译系统可将修改后的必要文件、应用资源和修改后的版本文件以及脚本文件作为新的模板文件上传至git仓库中存储。
在实际应用中,通常将git仓库设置在与后台编译系统不同的服务器中,来确保在后台编译系统对模板文件进行修改时,git仓库中存储的原始的模板文件不会丢失。
在用户需要生成版本名称为2.0.0的京东时,后台编译系统可从git仓库中获取模板文件或,并对模板文件中的必要文件、2.0.0的京东对应的应用资源、版本文件进行修改,对修改后的必要文件、2.0.0的京东对应的应用资源、版本文件进行编译和打包之后,可得到2.0.0的京东的安装包。
另外,在不同的使用场景中,例如,双十一等节日,H5前端开发人员完成了对应的H5页面的开发工作,可得到一个新版本的混合应用对应的目标H5资源包,需要进行测试工作或发布版本的操作。此时,目标H5资源包中包括双十一节日所对应的资源。
用户仅需登录后台编译系统,在后台编译系统的界面B中,输入目标H5资源包。后台编译系统将1.0.0的京东中的H5资源包替换为目标H5资源包,并执行编译和打包操作之后,可完成对1.0.0的京东中的应用资源的更新过程,得到一个新的2.0.0版本的京东的安装包,用户可以自行安装进行测试或者将该安装包发布到应用市场。
综上,本申请实施例的混合应用的生成方法,针对用户频繁的更新需求,可快速更新混合应用中的应用资源,操作简便,提高了用户的工作效率,更方便用户根据对混合应用的定制化业务需求,更改模板文件中的基础资源,生成与定制化业务需求对应的混合应用。
请参阅图5,图5示出了本申请实施例提供的一种混合应用的生成装置的结构示意框图。如图5所示,本申请的混合应用的生成装置300可以包括:
接收模块301,用于接收用户针对于目标混合应用输入的第一信息,第一信息可包括目标混合应用的应用名称、应用图标和应用包名;
获取模块302,用于获取模板文件,模板文件可包括脚本文件、必要文件和版本文件;
接收模块301,还用于接收用户针对于目标混合应用输入的第二信息和应用资源,第二信息可以包括目标混合应用的版本名称、版本号和加载资源方式;
处理模块303,用于在运行脚本文件的过程中,根据第一信息对必要文件进行修改,根据第二信息对版本文件进行修改,并对修改后的必要文件、修改后的版本文件和应用资源进行编译和打包,得到目标混合应用的安装包。
本申请实施例的混合应用的生成装置,为不熟悉混合应用开发的用户,如H5前端开发人员提供了可自动获得编译产物apk文件的装置,操作简单,可以避免每次编译和打包均需要依赖Android开发人员修改混合应用代码的流程,提高了工作效率。
在一些实施例中,应用资源为目标H5资源包或目标H5链接,目标H5链接对应的资源包为目标H5资源包。模板文件还包括基础H5资源包和基础H5链接。
在一些实施例中,处理模块303,具体用于在加载资源方式表示应用资源为目标H5资源包时,将基础H5资源包替换为目标H5资源包,将基础H5链接替换为目标H5资源包的链接,对修改后的必要文件、修改后的版本文件和目标H5资源包进行编译和打包;或者,在加载资源方式表示应用资源为目标H5链接时,将基础H5链接替换为目标H5链接,对修改后的必要文件、修改后的版本文件和目标H5链接进行编译和打包。
在一些实施例中,模板文件为针对于不同的混合应用均相同的模板文件;或者,模板文件为与任意一个版本的目标混合应用对应的模板文件。
在一些实施例中,处理模块303,具体用于在根据第一信息对必要文件进行修改,根据第二信息对版本文件进行修改之后,还包括:存储新的模板文件,新的模板文件包括脚本文件、修改后的必要文件、修改后的版本文件、目标H5资源包和目标H5链接。
在一些实施例中,模板文件的存储地址与新的模板文件的存储地址不同。
在一些实施例中,第一信息还包括新的模板文件的存储地址。
在一些实施例中,处理模块303,具体用于将第二信息转换为JSON格式的信息;根据所述JSON格式的信息对版本文件进行修改。
本申请实施例还提供了一种服务器,该服务器包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序。该处理器执行该计算机程序时,使得该服务器执行上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在服务器上运行时,使得服务器执行上述各个方法实施例中的步骤。
本申请实施例还提供了一种芯片,包括:接口电路和逻辑电路,接口电路用于接收来自于芯片之外的其他芯片的信号并传输至逻辑电路,或者将来自逻辑电路的信号发送给芯片之外的其他芯片,逻辑电路用于实施前文实施例中的混合应用的生成方法。
本申请实施例还提供了一种芯片系统,芯片系统应用于包括存储器和传感器的服务器;芯片系统包括:处理器;当处理器执行存储器中存储的计算机指令时,服务器执行前文实施例中的混合应用的生成方法。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种混合应用的生成方法,其特征在于,应用于服务器;所述方法包括:
接收用户针对于目标混合应用输入的第一信息,所述第一信息包括所述目标混合应用的应用名称、应用图标和应用包名;
获取模板文件,所述模板文件包括脚本文件、必要文件和版本文件;
接收用户针对于所述目标混合应用输入的第二信息和应用资源,所述第二信息包括所述目标混合应用的版本名称、版本号和加载资源方式;
在运行所述脚本文件的过程中,根据所述第一信息对所述必要文件进行修改,根据所述第二信息对所述版本文件进行修改,并对修改后的必要文件、修改后的版本文件和所述应用资源进行编译和打包,得到所述目标混合应用的安装包。
2.根据权利要求1所述的方法,其特征在于,所述应用资源为目标H5资源包或目标H5链接,所述目标H5链接对应的资源包为所述目标H5资源包。
3.根据权利要求2所述的方法,其特征在于,所述模板文件还包括基础H5资源包和基础H5链接;
所述对修改后的必要文件、修改后的版本文件和所述应用资源进行编译和打包,包括:
在所述加载资源方式表示所述应用资源为所述目标H5资源包时,将所述基础H5资源包替换为所述目标H5资源包,将所述基础H5链接替换为所述目标H5资源包的链接,对所述修改后的必要文件、所述修改后的版本文件和所述目标H5资源包进行编译和打包;
或者,在所述加载资源方式表示所述应用资源为所述目标H5链接时,将所述基础H5链接替换为所述目标H5链接,对所述修改后的必要文件、所述修改后的版本文件和所述目标H5链接进行编译和打包。
4.根据权利要求3所述的方法,其特征在于,所述模板文件为针对于不同的混合应用均相同的模板文件;或者,所述模板文件为与任意一个版本的目标混合应用对应的模板文件。
5.根据权利要求2-4任一项所述的方法,其特征在于,在根据所述第一信息对所述必要文件进行修改,根据所述第二信息对所述版本文件进行修改之后,所述方法还包括:
存储新的模板文件,所述新的模板文件包括所述脚本文件、所述修改后的必要文件、所述修改后的版本文件、所述目标H5资源包和所述目标H5链接。
6.根据权利要求5所述的方法,其特征在于,所述模板文件的存储地址与所述新的模板文件的存储地址不同。
7.根据权利要求5所述的方法,其特征在于,所述第一信息还包括所述新的模板文件的存储地址。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述第二信息对所述版本文件进行修改,包括:
将所述第二信息转换为JSON格式的信息;
根据所述JSON格式的信息对所述版本文件进行修改。
9.一种混合应用的生成装置,其特征在于,包括:用于实现如权利要求1至8任一项所述方法的模块。
10.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211312136.7A CN115640005A (zh) | 2022-10-25 | 2022-10-25 | 混合应用的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211312136.7A CN115640005A (zh) | 2022-10-25 | 2022-10-25 | 混合应用的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115640005A true CN115640005A (zh) | 2023-01-24 |
Family
ID=84946941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211312136.7A Pending CN115640005A (zh) | 2022-10-25 | 2022-10-25 | 混合应用的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115640005A (zh) |
-
2022
- 2022-10-25 CN CN202211312136.7A patent/CN115640005A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101470621B (zh) | 虚拟机配置系统 | |
CN1781077B (zh) | 选择性地加载用于在Java微型设备中调试Java应用程序的远程类或资源的系统和方法 | |
US7155381B2 (en) | Module for developing wireless device applications using an integrated emulator | |
US7908580B2 (en) | Connecting an integrated development environment with an application instance | |
CN110727440B (zh) | 一种软件封装方法 | |
KR20010006997A (ko) | 자바환경의 관리용이성과 유용성을 향상시키는 시스템 및방법 | |
US20080127055A1 (en) | Application proxy | |
CN112286504B (zh) | 移动APP中基于ReactNative实现小程序开发并加载的方法 | |
CN112306474B (zh) | 一种基于组件化模板的vue项目平滑升级方法 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN113553035A (zh) | 一种通用的前端ui组件库的设计和构建方法 | |
CN111176722A (zh) | 第三方库的文件版本检测方法、装置及存储介质 | |
US20080141219A1 (en) | Multiple inheritance facility for java script language | |
CN113312046A (zh) | 子应用页面处理方法、装置和计算机设备 | |
CN114185786A (zh) | 端到端系统的测试方法、装置、计算机设备和存储介质 | |
CN108228266B (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
CN115794214B (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN116243923A (zh) | 一种小程序处理方法、装置及电子设备 | |
CN115640005A (zh) | 混合应用的生成方法及装置 | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
Jaber et al. | A high-level modeling language for the efficient design, implementation, and testing of Android applications | |
CN114816475A (zh) | 一种嵌入式操作系统的更新方法、装置、设备和介质 | |
CN114816418A (zh) | 一种嵌入式操作系统的搭建方法、装置、设备和介质 | |
CN113254040A (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 |