CN109857455A - 安装包打包方法、系统、设备及存储介质 - Google Patents
安装包打包方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN109857455A CN109857455A CN201811654889.XA CN201811654889A CN109857455A CN 109857455 A CN109857455 A CN 109857455A CN 201811654889 A CN201811654889 A CN 201811654889A CN 109857455 A CN109857455 A CN 109857455A
- Authority
- CN
- China
- Prior art keywords
- product
- file
- installation kit
- stored
- resource
- 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
- 238000009434 installation Methods 0.000 title claims abstract description 127
- 238000003860 storage Methods 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 30
- 239000000284 extract Substances 0.000 claims description 5
- 239000000047 product Substances 0.000 description 165
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000012856 packing Methods 0.000 description 8
- 241000288049 Perdix perdix Species 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 239000006227 byproduct Substances 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种安装包打包方法、系统、设备及存储介质,本发明通过接收UI设置指示,基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,根据产品编译规则对增加的产品进行编译,获得编译脚本,根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,实现了根据不同需求打包对应的安装包,只将需要的资源文件打包进安装包,减小安装包体积,方便维护,节约了设备存储空间。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种安装包打包方法、系统、设备及存储介质。
背景技术
随着计算机技术特别是Android技术的广泛使用,不同的应用程序在安装时需要考虑适配不同分辨率、不同终端不同的UI(User Interface,用户界面)风格等需求,这就需要一种能对多分辨率及多UI风格兼容的安装包打包方法。
目前对Android多分辨率的兼容采取的方案多采用对各种分辨率进行适配,然后将所有资源文件打包进APK(Android Package,Android安装包),而对多套UI风格则无法做到兼容,只能采取拉分支情况处理,上述所提的方法打包出来的安装包体积大,占用内存多,同时如果拉取分支对开发来说非常不方便,不易于维护。
发明内容
本发明的主要目的在于提供一种安装包打包方法、系统、设备及存储介质,旨在解决现有技术中安装包打包时所占内存较大的技术问题。
为实现上述目的,本发明提供一种安装包打包方法,所述方法包括以下步骤:
接收UI设置指示;
基于所述UI设置指示及命名规则增加对应的待存储产品资源目录;
将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录;
根据产品编译规则对增加的产品进行编译,获得编译脚本;
根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
优选地,所述基于所述UI设置指示及命名规则增加对应的待存储产品源目录,具体包括:
从所述UI设置指示中获取待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格;
根据所述待存储终端品牌名、待存储分辨率、待存储UI风格及命名规则获得所述待增加产品的待存储产品名称;
根据所述待存储产品名称增加对应的待存储产品资源目录。
优选地,所述将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,具体包括:
获取所述UI设置指示对应的待存储资源文件;
从所述待存储资源文件中获取待存储图片文件及待存储布局文件;
将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录。
优选地,所述将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录,具体包括:
在所述待存储产品资源目录中建立图片子目录及布局子目录;
将所述待存储图片文件保存至所述图片子目录;
判断所述待存储布局文件是否与默认布局文件兼容;
在不兼容时,将所述待存储布局文件保存至所述布局子目录。
优选地,所述根据产品编译规则对增加的产品进行编译,获得编译脚本之前,所述方法还包括:
将所述待存储产品名称写入所述产品编译规则,以获得待增加产品对应的产品编译规则。
优选地,所述根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,具体包括:
接收用户输入的目标产品名称,并从所述目标产品名称中提取目标终端品牌名、目标分辨率及目标UI风格;
根据所述目标终端品牌名、目标分辨率及目标UI风格生成编译脚本的脚本参数;
根据所述脚本参数在对应的目标产品资源目录中查找目标布局文件及目标图片文件;
在查找成功时,通过所述编译脚本将所述目标布局文件及所述目标图片
文件打包进当前的安装包中。
优选地,所述根据所述输入参数在对应的产品资源目录中查找目标布局文件及目标图片文件之后,所述方法还包括:
在查找失败时,根据所述输入参数查找默认布局文件及目标图片文件;
通过所述编译脚本将所述默认布局文件及所述目标图片文件打包进当前的安装包中。
此外,为实现上述目的,本发明还提供一种安装包打包系统,所述安装包打包系统包括:
资源接收模块,用于接收UI设置指示;
目录建立模块,用于基于所述UI设置指示及命名规则增加对应的待存储产品资源目录;
资源存储模块,用于将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录;
产品编译模块,用于根据产品编译规则对增加的产品进行编译,获得编译脚本;
资源打包模块,用于根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
此外,为实现上述目的,本发明还提供一种安装包打包设备,所述安装包打包设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的安装包打包程序,所述安装包打包程序配置为实现所述的安装包打包方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,其特征在于,所述存储介质上存储有安装包打包程序,所述安装包打包程序被处理器执行时实现所述的安装包打包方法的步骤。
本发明通过接收UI设置指示,基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,根据产品编译规则对增加的产品进行编译,获得编译脚本,根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,实现了根据不同需求打包对应的安装包,只将需要的资源文件打包进安装包,减小安装包体积,方便维护,节约了设备存储空间。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的安装包打包设备结构示意图;
图2为本发明安装包打包方法第一实施例的流程示意图;
图3为本发明安装包打包系统第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的安装包打包设备结构示意图。
如图1所示,该安装包打包设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对安装包打包设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及安装包打包程序。
在图1所示的安装包打包设备中,网络接口1004主要用于与外部网络进行数据通信;用户接口1003主要用于接收用户的输入指令;所述安装包打包设备通过处理器1001调用存储器1005中存储的安装包打包程序,并执行以下操作:
接收UI设置指示;
基于所述UI设置指示及命名规则增加对应的待存储产品资源目录;
将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录;
根据产品编译规则对增加的产品进行编译,获得编译脚本;
根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
进一步地,处理器1001可以调用存储器1005中存储的安装包打包程序,还执行以下操作:
从所述UI设置指示中获取待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格;
根据所述待存储终端品牌名、待存储分辨率、待存储UI风格及命名规则获得所述待增加产品的待存储产品名称;
根据所述待存储产品名称增加对应的待存储产品资源目录。
进一步地,处理器1001可以调用存储器1005中存储的安装包打包程序,还执行以下操作:
获取所述UI设置指示对应的待存储资源文件;
从所述待存储资源文件中获取待存储图片文件及待存储布局文件;
将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录。
进一步地,处理器1001可以调用存储器1005中存储的安装包打包程序,还执行以下操作:
在所述待存储产品资源目录中建立图片子目录及布局子目录;
将所述待存储图片文件保存至所述图片子目录;
判断所述待存储布局文件是否与默认布局文件兼容;
在不兼容时,将所述待存储布局文件保存至所述布局子目录。
进一步地,处理器1001可以调用存储器1005中存储的安装包打包程序,还执行以下操作:
将所述待存储产品名称写入所述产品编译规则,以获得待增加产品对应的产品编译规则。
进一步地,处理器1001可以调用存储器1005中存储的安装包打包程序,还执行以下操作:
接收用户输入的目标产品名称,并从所述目标产品名称中提取目标终端品牌名、目标分辨率及目标UI风格;
根据所述目标终端品牌名、目标分辨率及目标UI风格生成编译脚本的脚本参数;
根据所述脚本参数在对应的目标产品资源目录中查找目标布局文件及目标图片文件;
在查找成功时,通过所述编译脚本将所述目标布局文件及所述目标图片文件打包进当前的安装包中。
进一步地,处理器1001可以调用存储器1005中存储的安装包打包程序,还执行以下操作:
在查找失败时,根据所述输入参数查找默认布局文件及目标图片文件;
通过所述编译脚本将所述默认布局文件及所述目标图片文件打包进当前的安装包中。
本发明通过接收UI设置指示,基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,根据产品编译规则对增加的产品进行编译,获得编译脚本,根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,实现了根据不同需求打包对应的安装包,只将需要的资源文件打包进安装包,减小安装包体积,方便维护,节约了设备存储空间。
基于上述硬件结构,提出本发明安装包打包方法实施例。
参照图2,图2为本发明安装包打包方法第一实施例的流程示意图。
在第一实施例中,所述安装包打包方法包括以下步骤:
S10:接收UI设置指示。
需要说明的是,为了对设计师提供的资源文件进行更规范的存储,所述设置指示中可以包括待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格。
其中,终端品牌名为待安装终端的品牌名,如TCL、雷鸟、东芝等,本实施例对此不加以限制。
分辨率为待安装终端兼容的分辨率,如720P,1080P等,本实施例对此不加以限制。
UI风格指红色直角焦点、红色圆角焦点、蓝色直角焦点等,本实施例对此不加以限制。
S20:基于所述UI设置指示及命名规则增加对应的待存储产品资源目录。
具体地,从所述UI设置指示中获取待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格;根据所述待存储终端品牌名、待存储分辨率、待存储UI风格及命名规则获得所述待增加产品的待存储产品名称;根据所述待存储产品名称增加对应的待存储产品资源目录。
应理解的是,命名规则为:“终端品牌名+分辨率+UI风格”,如TCL公司分辨率为1080P的UI3.X风格则命名为tcl_1080p_ui3x,具体如下表所示:
序号 | UI风格 | 示例 |
1 | TCL(1080P) | tcl_1080p |
2 | TCL(720P) | tcl_720p |
3 | TCL(720P)_UI3X | tcl_720p_ui3x |
4 | 雷鸟(1080P) | ffalcon_1080p |
5 | 雷鸟(720P) | ffalcon_720p |
6 | 东芝(1080P) | toshiba_1080p |
7 | 东芝(720P) | toshiba_720p |
在具体实现中,当获得设计师提供的UI坐标图和切图,如TCL产品1080P分辨率、UI3.X风格的坐标图和切图文件时,根据命名规则“终端品牌名+分辨率+UI风格”获得待存储产品名称,如tcl_1080p_ui3x,tcl_720p。
当获得待存储产品名称后,在源码文件/app/src/目录下新增对应的待存储产品资源目录,即源码文件/app/src/tcl_1080p_ui3x/目录,当然若待存储产品名称为tcl_720p,则新建的产品资源目录为源码文件/app/src/tcl_720/目录。
S30:将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录。
在具体实现中,需要获取所述UI设置指示对应的待存储资源文件;从所述待存储资源文件中获取待存储图片文件及待存储布局文件;将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录。
进一步地,在所述待存储产品资源目录中建立图片子目录及布局子目录;将所述待存储图片文件保存至所述图片子目录;判断所述待存储布局文件是否与默认布局文件兼容;在不兼容时,将所述待存储布局文件保存至所述布局子目录。
应理解的是,资源文件中的图片文件和布局文件需要分别存储,如在源码文件/app/src/tcl_1080p_ui3x/目录下新增layout目录和drawable-nodpi目录,源码文件/app/src/tcl_1080p_ui3x/layout/目录用于存放针对这套UI风格的与默认有差异的布局文件(即UI坐标图);同时源码文件/app/src/tcl_1080p_ui3x/drawable-nodpi目录用于存放该UI风格的图片文件(即切图)。在存储时,如果待存储布局文件与默认布局文件兼容,则不需要保存待存储布局文件,防止同一个安装包中同时存在两份布局文件,额外占用空间。
S40:根据产品编译规则对增加的产品进行编译,获得编译脚本。
需要说明的是,本实施例优选应用于Android系统,相应地,安装包为APK,APK的编译脚本可以通过gradle命令或者Android Studio进行编译,本实施例中优选地基于gradle构建,gradle是一个构建工具,它可以用来帮助构建App(Application,应用程序),构建包括编译、打包等过程。
当然,在编译前,还需要将所述待存储产品名称写入产品编译规则中,以获得待增加产品对应的产品编译规则。
在具体实现中,可以在App目录下的build.gradle文件中添加productFlavors,并将兼容的待存储产品名称添加至该选项,这样就可以告知gradle有哪些兼容的产品及需要编译多产品打包机制。具体示例如下:
需要说明的是,productFlavors顾名而思义,就是用于定义产品的特性,即每个产品不同的地方。有了它就可以用同一套代码创建不同的产品。这样在最终编译的时候(终端运行gradle build命令),就会编译出多个产品的APK出来。
S50:根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
具体地,接收用户输入的目标产品名称,并从所述目标产品名称中提取目标终端品牌名、目标分辨率及目标UI风格;根据所述目标终端品牌名、目标分辨率及目标UI风格生成编译脚本的脚本参数;根据所述脚本参数在对应的目标产品资源目录中查找目标布局文件及目标图片文件;在查找成功时,通过所述编译脚本将所述目标布局文件及所述目标图片文件打包进当前的安装包中。
在具体实现中,如果待安装终端是TCL产品,兼容720P分辨率,UI3.X风格的UI,此时若该待安装终端需要应用程序的APK时,只需要进入该工程Jenkins(一个开源软件项目)自动构建目录去编译构建APK即可,此时用户需要选择tcl_1080p_ui3x,对应成gradle编译脚本的脚本参数为gradle assemble Tcl_1080p_ui3x Release。
需要说明的是,产品资源目录存放了对应的资源文件,资源文件包括布局文件及图片文件,在编译APK之前,会为每个产品名称建立一个产品资源目录,将资源文件存放进去。在编译APK的时候需要先根据脚本参数gradle assemble Tcl_1080p_ui3x Release去tcl_1080p_ui3x目录找布局文件和图片文件打包进APK。
在具体实现中,如果在产品资源目录中找不到对应的资源文件,则可以根据所述脚本参数查找默认布局文件及目标图片文件,通过所述编译脚本将所述默认布局文件及所述目标图片文件打包,获得待安装终端的应用程序安装包。
资源文件打包好以后,最后会在app/build/output/apk/目录下生成一个app-tcl_1080p_ui3x-release.apk文件,该APK文件即为适配TCL产品1080P分辨率UI3.X风格的应用程序安装包。
需要说明的是,在安装包生成以后,可以将应用程序安装包重命名并复制至安装包发布目录。具体地,通过设置Jenkins构建计划对应用定时构建并将结果通知给开发和集成人员,把编译成功的APK发布出来,对应的会拷贝生成的app/build/output/apk/app-tcl-1080p_ui3x-release.apk到该待安装终端指定的APK发布目录。其他的也是类似。
进一步地,APK发布的流程为:服务器Android应用程序编译发布脚本修改,进入到Android应用程序源码根目录,通过gradle assemble Release编出所有待安装终端的APK,将编出的APK按产品规范重命名并拷贝至APK发布目录,由产品发布人员从指定目录中取出APK进行发布。
本实施例通过接收UI设置指示,基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,根据产品编译规则对增加的产品进行编译,获得编译脚本,根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,实现了根据不同需求打包对应的安装包,只将需要的资源文件打包进安装包,减小安装包体积,节约了设备存储空间,通过将资源文件按照命名规则进行命名和存储及按照产品编译规则进行编译,使得一套编译脚本兼容了不同UI风格和分辨率,便于维护和发布,也防止同一个安装包中有多份资源文件,避免了存储空间浪费以及图片绽放造成内存浪费,同时通过修改gradle编译脚本,使得一套代码能编译出多个安装包,简化了打包流程,便于维护。
本发明进一步提供一种安装包打包系统。
参照图3,图3为本发明安装包打包系统一实施例的功能模块图。
本实施例中,所述安装包打包系统包括:
资源接收模块10,用于接收UI设置指示。
需要说明的是,为了对设计师提供的资源文件进行更规范的存储,所述设置指示中可以包括待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格。
其中,终端品牌名为待安装终端的品牌名,如TCL、雷鸟、东芝等,本实施例对此不加以限制。
分辨率为待安装终端兼容的分辨率,如720P,1080P等,本实施例对此不加以限制。
UI风格指红色直角焦点、红色圆角焦点、蓝色直角焦点等,本实施例对此不加以限制。
目录建立模块20,用于基于所述UI设置指示及命名规则增加对应的待存储产品资源目录。
具体地,从所述UI设置指示中获取待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格;根据所述待存储终端品牌名、待存储分辨率、待存储UI风格及命名规则获得所述待增加产品的待存储产品名称;根据所述待存储产品名称增加对应的待存储产品资源目录。
应理解的是,命名规则为:“终端品牌名+分辨率+UI风格”,如TCL公司分辨率为1080P的UI3.X风格则命名为tcl_1080p_ui3x,具体如下表所示:
序号 | UI风格 | 示例 |
1 | TCL(1080P) | tcl_1080p |
2 | TCL(720P) | tcl_720p |
3 | TCL(720P)_UI3X | tcl_720p_ui3x |
4 | 雷鸟(1080P) | ffalcon_1080p |
5 | 雷鸟(720P) | ffalcon_720p |
6 | 东芝(1080P) | toshiba_1080p |
7 | 东芝(720P) | toshiba_720p |
在具体实现中,当获得设计师提供的UI坐标图和切图,如TCL产品1080P分辨率、UI3.X风格的坐标图和切图文件时,根据命名规则“终端品牌名+分辨率+UI风格”获得待存储产品名称,如tcl_1080p_ui3x,tcl_720p。
当获得待存储产品名称后,在源码文件/app/src/目录下新增对应的待存储产品资源目录,即源码文件/app/src/tcl_1080p_ui3x/目录,当然若待存储产品名称为tcl_720p,则新建的产品资源目录为源码文件/app/src/tcl_720/目录。
资源存储模块30,用于将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录。
在具体实现中,需要获取所述UI设置指示对应的待存储资源文件;从所述待存储资源文件中获取待存储图片文件及待存储布局文件;将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录。
进一步地,在所述待存储产品资源目录中建立图片子目录及布局子目录;将所述待存储图片文件保存至所述图片子目录;判断所述待存储布局文件是否与默认布局文件兼容;在不兼容时,将所述待存储布局文件保存至所述布局子目录。
应理解的是,资源文件中的图片文件和布局文件需要分别存储,如在源码文件/app/src/tcl_1080p_ui3x/目录下新增layout目录和drawable-nodpi目录,源码文件/app/src/tcl_1080p_ui3x/layout/目录用于存放针对这套UI风格的与默认有差异的布局文件(即UI坐标图);同时源码文件/app/src/tcl_1080p_ui3x/drawable-nodpi目录用于存放该UI风格的图片文件(即切图)。在存储时,如果待存储布局文件与默认布局文件兼容,则不需要保存待存储布局文件,防止同一个安装包中同时存在两份布局文件,额外占用空间。
产品编译模块40,用于根据产品编译规则对增加的产品进行编译,获得编译脚本。
需要说明的是,本实施例优选应用于Android系统,相应地,安装包为APK,APK的编译脚本可以通过gradle命令或者Android Studio进行编译,本实施例中优选地基于gradle构建,gradle是一个构建工具,它可以用来帮助构建App(Application,应用程序),构建包括编译、打包等过程。
当然,在编译前,还需要将所述待存储产品名称写入产品编译规则中,以获得待增加产品对应的产品编译规则。
在具体实现中,可以在App目录下的build.gradle文件中添加productFlavors,并将兼容的待存储产品名称添加至该选项,这样就可以告知gradle有哪些兼容的产品及需要编译多产品打包机制。具体示例如下:
需要说明的是,productFlavors顾名而思义,就是用于定义产品的特性,即每个产品不同的地方。有了它就可以用同一套代码创建不同的产品。这样在最终编译的时候(终端运行gradle build命令),就会编译出多个产品的APK出来。
资源打包模块50,用于根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。具体地,接收用户输入的目标产品名称,并从所述目标产品名称中提取目标终端品牌名、目标分辨率及目标UI风格;根据所述目标终端品牌名、目标分辨率及目标UI风格生成编译脚本的脚本参数;根据所述脚本参数在对应的目标产品资源目录中查找目标布局文件及目标图片文件;在查找成功时,通过所述编译脚本将所述目标布局文件及所述目标图片文件打包进当前的安装包中。
在具体实现中,如果待安装终端是TCL产品,兼容720P分辨率,UI3.X风格的UI,此时若该待安装终端需要应用程序的APK时,只需要进入该工程Jenkins(一个开源软件项目)自动构建目录去编译构建APK即可,此时用户需要选择tcl_1080p_ui3x,对应成gradle编译脚本的脚本参数为gradle assemble Tcl_1080p_ui3x Release。
需要说明的是,产品资源目录存放了对应的资源文件,资源文件包括布局文件及图片文件,在编译APK之前,会为每个产品名称建立一个产品资源目录,将资源文件存放进去。在编译APK的时候需要先根据脚本参数gradle assemble Tcl_1080p_ui3x Release去tcl_1080p_ui3x目录找布局文件和图片文件打包进APK。
在具体实现中,如果在产品资源目录中找不到对应的资源文件,则可以根据所述脚本参数查找默认布局文件及目标图片文件,通过所述编译脚本将所述默认布局文件及所述目标图片文件打包,获得待安装终端的应用程序安装包。
资源文件打包好以后,最后会在app/build/output/apk/目录下生成一个app-tcl_1080p_ui3x-release.apk文件,该APK文件即为适配TCL产品1080P分辨率UI3.X风格的应用程序安装包。
需要说明的是,在安装包生成以后,可以将应用程序安装包重命名并复制至安装包发布目录。具体地,通过设置Jenkins构建计划对应用定时构建并将结果通知给开发和集成人员,把编译成功的APK发布出来,对应的会拷贝生成的app/build/output/apk/app-tcl-1080p_ui3x-release.apk到该待安装终端指定的APK发布目录。其他的也是类似。
进一步地,APK发布的流程为:服务器Android应用程序编译发布脚本修改,进入到Android应用程序源码根目录,通过gradle assemble Release编出所有待安装终端的APK,将编出的APK按产品规范重命名并拷贝至APK发布目录,由产品发布人员从指定目录中取出APK进行发布。
本实施例通过接收UI设置指示,基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,根据产品编译规则对增加的产品进行编译,获得编译脚本,根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,实现了根据不同需求打包对应的安装包,只将需要的资源文件打包进安装包,减小安装包体积,节约了设备存储空间,通过将资源文件按照命名规则进行命名和存储及按照产品编译规则进行编译,使得一套编译脚本兼容了不同UI风格和分辨率,便于维护和发布,也防止同一个安装包中有多份资源文件,避免了存储空间浪费以及图片绽放造成内存浪费,同时通过修改gradle编译脚本,使得一套代码能编译出多个安装包,简化了打包流程,便于维护。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有安装包打包程序,所述安装包打包程序被处理器执行时实现如下操作:
接收UI设置指示;
基于所述UI设置指示及命名规则增加对应的待存储产品资源目录;
将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录;
根据产品编译规则对增加的产品进行编译,获得编译脚本;
根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
进一步地,所述安装包打包程序被处理器执行时还实现如下操作:
从所述UI设置指示中获取待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格;
根据所述待存储终端品牌名、待存储分辨率、待存储UI风格及命名规则获得所述待增加产品的待存储产品名称;
根据所述待存储产品名称增加对应的待存储产品资源目录。
进一步地,所述安装包打包程序被处理器执行时还实现如下操作:
获取所述UI设置指示对应的待存储资源文件;
从所述待存储资源文件中获取待存储图片文件及待存储布局文件;
将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录。
进一步地,所述安装包打包程序被处理器执行时还实现如下操作:
在所述待存储产品资源目录中建立图片子目录及布局子目录;
将所述待存储图片文件保存至所述图片子目录;
判断所述待存储布局文件是否与默认布局文件兼容;
在不兼容时,将所述待存储布局文件保存至所述布局子目录。
进一步地,所述安装包打包程序被处理器执行时还实现如下操作:
将所述待存储产品名称写入所述产品编译规则,以获得待增加产品对应的产品编译规则。
进一步地,所述安装包打包程序被处理器执行时还实现如下操作:
接收用户输入的目标产品名称,并从所述目标产品名称中提取目标终端品牌名、目标分辨率及目标UI风格;
根据所述目标终端品牌名、目标分辨率及目标UI风格生成编译脚本的脚本参数;
根据所述脚本参数在对应的目标产品资源目录中查找目标布局文件及目标图片文件;
在查找成功时,通过所述编译脚本将所述目标布局文件及所述目标图片文件打包进当前的安装包中。
进一步地,所述安装包打包程序被处理器执行时还实现如下操作:
在查找失败时,根据所述输入参数查找默认布局文件及目标图片文件;
通过所述编译脚本将所述默认布局文件及所述目标图片文件打包进当前的安装包中。
本实施例通过接收UI设置指示,基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,根据产品编译规则对增加的产品进行编译,获得编译脚本,根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,实现了根据不同需求打包对应的安装包,只将需要的资源文件打包进安装包,减小安装包体积,节约了设备存储空间,通过将资源文件按照命名规则进行命名和存储及按照产品编译规则进行编译,使得一套编译脚本兼容了不同UI风格和分辨率,便于维护和发布,也防止同一个安装包中有多份资源文件,避免了存储空间浪费以及图片绽放造成内存浪费,同时通过修改gradle编译脚本,使得一套代码能编译出多个安装包,简化了打包流程,便于维护。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种安装包打包方法,其特征在于,所述安装包打包方法包括以下步骤:
接收UI设置指示;
基于所述UI设置指示及命名规则增加对应的待存储产品资源目录;
将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录;
根据产品编译规则对增加的产品进行编译,获得编译脚本;
根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
2.如权利要求1所述的安装包打包方法,其特征在于,所述基于所述UI设置指示及命名规则增加对应的待存储产品资源目录,具体包括:
从所述UI设置指示中获取待增加产品的待存储终端品牌名、待存储分辨率及待存储UI风格;
根据所述待存储终端品牌名、待存储分辨率、待存储UI风格及命名规则获得所述待增加产品的待存储产品名称;
根据所述待存储产品名称增加对应的待存储产品资源目录。
3.如权利要求2所述的安装包打包方法,其特征在于,所述将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录,具体包括:
获取所述UI设置指示对应的待存储资源文件;
从所述待存储资源文件中获取待存储图片文件及待存储布局文件;
将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录。
4.如权利要求3所述的安装包打包方法,其特征在于,所述将所述待存储图片文件及待存储布局文件保存至所述待存储产品资源目录,具体包括:
在所述待存储产品资源目录中建立图片子目录及布局子目录;
将所述待存储图片文件保存至所述图片子目录;
判断所述待存储布局文件是否与默认布局文件兼容;
在不兼容时,将所述待存储布局文件保存至所述布局子目录。
5.如权利要求4所述的安装包打包方法,其特征在于,所述根据产品编译规则对增加的产品进行编译,获得编译脚本之前,所述方法还包括:
将所述待存储产品名称写入所述产品编译规则,以获得待增加产品对应的产品编译规则。
6.如权利要求5所述的安装包打包方法,其特征在于,所述根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中,具体包括:
接收用户输入的目标产品名称,并从所述目标产品名称中提取目标终端品牌名、目标分辨率及目标UI风格;
根据所述目标终端品牌名、目标分辨率及目标UI风格生成编译脚本的脚本参数;
根据所述脚本参数在对应的目标产品资源目录中查找目标布局文件及目标图片文件;
在查找成功时,通过所述编译脚本将所述目标布局文件及所述目标图片文件打包进当前的安装包中。
7.如权利要求6所述的安装包打包方法,其特征在于,所述根据所述输入参数在对应的产品资源目录中查找目标布局文件及目标图片文件之后,所述方法还包括:
在查找失败时,根据所述输入参数查找默认布局文件及目标图片文件;
通过所述编译脚本将所述默认布局文件及所述目标图片文件打包进当前的安装包中。
8.一种安装包打包系统,其特征在于,所述安装包打包系统包括:
资源接收模块,用于接收UI设置指示;
目录建立模块,用于基于所述UI设置指示及命名规则增加对应的待存储产品资源目录;
资源存储模块,用于将所述UI设置指示对应的待存储资源文件保存至所述待存储产品资源目录;
产品编译模块,用于根据产品编译规则对增加的产品进行编译,获得编译脚本;
资源打包模块,用于根据用户的输入参数基于所述编译脚本将目标资源文件打包进当前的安装包中。
9.一种安装包打包设备,其特征在于,所述安装包打包设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的安装包打包程序,所述安装包打包程序配置为实现如权利要求1至7中任一项所述的安装包打包方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有安装包打包程序,所述安装包打包程序被处理器执行时实现如权利要求1至7中任一项所述的安装包打包方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811654889.XA CN109857455A (zh) | 2018-12-29 | 2018-12-29 | 安装包打包方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811654889.XA CN109857455A (zh) | 2018-12-29 | 2018-12-29 | 安装包打包方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857455A true CN109857455A (zh) | 2019-06-07 |
Family
ID=66893765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811654889.XA Pending CN109857455A (zh) | 2018-12-29 | 2018-12-29 | 安装包打包方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857455A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475142A (zh) * | 2020-04-03 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 一种小程序文件包的生成方法、装置及设备 |
CN112463155A (zh) * | 2020-11-24 | 2021-03-09 | 歌尔科技有限公司 | 应用程序包的打包方法、打包终端和计算机可读存储介质 |
CN112711426A (zh) * | 2019-10-24 | 2021-04-27 | 北京车和家信息技术有限公司 | 嵌入式系统安装包生成方法、装置及服务器 |
CN113094121A (zh) * | 2021-04-30 | 2021-07-09 | 腾讯科技(成都)有限公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
CN112463155B (zh) * | 2020-11-24 | 2024-07-30 | 歌尔科技有限公司 | 应用程序包的打包方法、打包终端和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068853A (zh) * | 2015-07-16 | 2015-11-18 | 贵阳语玩科技有限公司 | 渠道包的输出方法及装置 |
US20160357536A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Capability attributes based application packaging |
CN106598678A (zh) * | 2016-12-20 | 2017-04-26 | 北京小米移动软件有限公司 | 向终端设备提供应用程序安装包的方法及装置 |
CN107957896A (zh) * | 2017-11-23 | 2018-04-24 | 上海博泰悦臻电子设备制造有限公司 | 不同项目自适应布局方法及系统、存储介质及车载终端 |
CN108519886A (zh) * | 2018-03-28 | 2018-09-11 | 努比亚技术有限公司 | 一种apk应用安装包配置方法、服务器、系统及存储介质 |
-
2018
- 2018-12-29 CN CN201811654889.XA patent/CN109857455A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160357536A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Capability attributes based application packaging |
CN105068853A (zh) * | 2015-07-16 | 2015-11-18 | 贵阳语玩科技有限公司 | 渠道包的输出方法及装置 |
CN106598678A (zh) * | 2016-12-20 | 2017-04-26 | 北京小米移动软件有限公司 | 向终端设备提供应用程序安装包的方法及装置 |
CN107957896A (zh) * | 2017-11-23 | 2018-04-24 | 上海博泰悦臻电子设备制造有限公司 | 不同项目自适应布局方法及系统、存储介质及车载终端 |
CN108519886A (zh) * | 2018-03-28 | 2018-09-11 | 努比亚技术有限公司 | 一种apk应用安装包配置方法、服务器、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
南朝小木瓜: "安卓productFlavors多渠道多版本管理", 《HTTPS://WWW.JIANSHU.COM/P/4677EFEE7214》 * |
阴小猿: "Gradle配置及同一应用不同版本配置不同资源文件,不同签名,包名进行打包", 《HTTPS://BLOG.CSDN.NET/QQ_33463102/ARTICLE/DETAILS/72550816》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711426A (zh) * | 2019-10-24 | 2021-04-27 | 北京车和家信息技术有限公司 | 嵌入式系统安装包生成方法、装置及服务器 |
CN112711426B (zh) * | 2019-10-24 | 2023-12-26 | 北京车和家信息技术有限公司 | 嵌入式系统安装包生成方法、装置及服务器 |
CN111475142A (zh) * | 2020-04-03 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 一种小程序文件包的生成方法、装置及设备 |
CN111475142B (zh) * | 2020-04-03 | 2023-04-28 | 支付宝(杭州)信息技术有限公司 | 一种小程序文件包的生成方法、装置及设备 |
CN112463155A (zh) * | 2020-11-24 | 2021-03-09 | 歌尔科技有限公司 | 应用程序包的打包方法、打包终端和计算机可读存储介质 |
CN112463155B (zh) * | 2020-11-24 | 2024-07-30 | 歌尔科技有限公司 | 应用程序包的打包方法、打包终端和计算机可读存储介质 |
CN113094121A (zh) * | 2021-04-30 | 2021-07-09 | 腾讯科技(成都)有限公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
CN113094121B (zh) * | 2021-04-30 | 2023-03-10 | 腾讯科技(成都)有限公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7216133B2 (en) | Synchronizing logical views independent of physical storage representations | |
CN109857455A (zh) | 安装包打包方法、系统、设备及存储介质 | |
US8266588B2 (en) | Creating projects in a rational application developer workspace | |
US20200359094A1 (en) | Screen parameter configuration system | |
CN103425468B (zh) | 插件式软件集成方法及装置 | |
US10585655B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
CN104731589A (zh) | 用户界面的自动生成方法及自动生成装置 | |
CN103189851A (zh) | 用于将网络驱动程序注入目标映像的设备和方法 | |
TW200842627A (en) | Techniques to cross-synchronize data | |
CN104615462B (zh) | 跨平台的移动应用生成服务端及系统 | |
CN101887464B (zh) | 显示数据库中的数据的方法、装置 | |
CN107038519B (zh) | 用于系统之间的双向数据同步的方法和系统 | |
CN112364049B (zh) | 数据同步脚本生成方法、系统、终端及存储介质 | |
CN113448562B (zh) | 一种逻辑代码自动生成方法、装置和电子设备 | |
CN107608663A (zh) | 一种移动应用插件及移动应用的开发方法及装置 | |
CN106776266A (zh) | 测试工具的配置方法及终端设备 | |
CN114461209A (zh) | 页面配置与切换方法、装置、设备及存储介质 | |
US20090037484A1 (en) | Programming system for occasionally-connected mobile business applications | |
CN102541544A (zh) | 树形控件的处理方法、装置及系统 | |
CN105824654A (zh) | 一种对智能终端进行app软件预装的方法及装置 | |
CN116400914A (zh) | 一种基于数据模型快速构建web应用的方法 | |
CN109542437A (zh) | 一种基于Linux嵌入式浏览器的HMI开发方法 | |
CN115167941A (zh) | 前端组件处理方法、装置、终端及存储介质 | |
CN101446895B (zh) | 基于语法重构的代码级构件组装方法 | |
JP2006309697A (ja) | コンピュータシステム、コンピュータシステム用プログラム、及びこれらのプログラムのうち表計算プログラムに基づくアプリケーションプログラムを生成するプログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |