CN109814912A - 应用程序打包方法及系统 - Google Patents
应用程序打包方法及系统 Download PDFInfo
- Publication number
- CN109814912A CN109814912A CN201811537502.2A CN201811537502A CN109814912A CN 109814912 A CN109814912 A CN 109814912A CN 201811537502 A CN201811537502 A CN 201811537502A CN 109814912 A CN109814912 A CN 109814912A
- Authority
- CN
- China
- Prior art keywords
- installation kit
- file
- androidmanifest
- initial
- initial installation
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种应用程序打包方法,包括:打包服务器生成应用程序的初始安装包,生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;所述调度服务器根据所述下载地址从所述打包服务器下载所述初始安装包,将下载的所述初始安装包上传至加固服务器;所述加固服务器对上传的所述初始安装包进行加固,得到加固安装包;所述调度服务器从所述加固服务器下载所述加固安装包,显示下载的所述加固安装包。本发明还提供一种应用程序打包系统。本发明可以提高应用程序打包的效率。
Description
技术领域
本发明计算机软件技术领域,具体涉及一种应用程序打包方法及系统。
背景技术
目前,应用程序越来越多,应用程序的版本迭代频繁,每次版本更新都需要对应用程序重新打包。因此,亟需一种高效率的打包方法,能够快速生成应用程序的安装包,以供调试人员下载调试或供用户下载使用。
发明内容
鉴于以上内容,有必要提出一种应用程序打包方法及系统,其可以快速生成应用程序的安装包。
本申请的第一方面提供一种应用程序打包方法,所述方法包括:
打包服务器生成应用程序的初始安装包;
打包服务器生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;
所述调度服务器根据所述下载地址从所述打包服务器下载所述初始安装包;
所述调度服务器将下载的所述初始安装包上传至加固服务器;
所述加固服务器对上传的所述初始安装包进行加固,得到加固安装包;
所述调度服务器从所述加固服务器下载所述加固安装包;
所述调度服务器显示下载的所述加固安装包。
另一种可能的实现方式中,所述生成应用程序的初始安装包包括:
打包所述应用程序的资源文件,生成R.java文件;
对所述应用程序的源码文件、aidl文件生成对应的java文件;
编译所述R.java文件、所述源码文件对应的java文件、所述aidl文件对应的java文件与所述应用程序的库文件,生成对应的class文件;
将所述class文件转化为Davik VM支持的dex文件;
将所述R.java文件、所述dex文件、所述应用程序的libs文件打包,生成apk文件。
另一种可能的实现方式中,所述生成应用程序的初始安装包还包括:
在所述初始安装包的assets目录下创建渠道信息文件,在所述渠道信息文件中写入所述应用程序的渠道信息;和/或
对所述apk文件进行签名;和/或
对所述apk文件进行对齐处理。
另一种可能的实现方式中,所述生成所述初始安装包的下载地址包括:
确定所述应用程序的类型;
根据所述应用程序的类型生成所述下载地址。
另一种可能的实现方式中,所述对上传的所述初始安装包进行加固包括:
确定所述初始安装包的优先级;
根据所述初始安装包的优先级对上传的所述初始安装包进行加固。
另一种可能的实现方式中,所述对上传的所述初始安装包进行加固包括:
解压所述初始安装包,提取所述初始安装包中初始的AndroidManifest.xml文件;
对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件;
对所述修改后的AndroidManifest.xml文件进行加密,得到加密后的AndroidManifest.xml文件;
将所述加密后的AndroidManifest.xml文件与所述初始安装包中所述初始的AndroidManifest.xml文件以外的其他文件打包。
另一种可能的实现方式中,所述对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件包括:
在所述初始的AndroidManifest.xml文件的预设位置加入第一预设代码,得到所述修改后的AndroidManifest.xml文件;或者
搜索所述初始的AndroidManifest.xml文件中的第二预设代码,将所述AndroidManifest.xml文件中的所述第二预设代码替换为指定代码,得到所述修改后的AndroidManifest.xml文件;或者
删除所述初始的AndroidManifest.xml文件中的第三预设代码,得到所述修改后的AndroidManifest.xml文件。
本申请的第二方面提供一种应用程序打包系统,所述系统包括打包服务器、调度服务器及加固服务器,其中:
所述打包服务器,用于生成应用程序的初始安装包以及生成所述初始安装包的下载地址,将所述下载地址发送给所述调度服务器;
所述调度服务器,用于根据所述下载地址从所述打包服务器下载所述初始安装包;
所述调度服务器,还用于将下载的所述初始安装包上传至所述加固服务器;
所述加固服务器,用于对上传的所述初始安装包进行加固,得到加固安装包;
所述调度服务器,还用于从所述加固服务器下载所述加固安装包,并显示下载的所述加固安装包。
另一种可能的实现方式中,所述加固服务器具体用于:
解压所述初始安装包,提取所述初始安装包中初始的AndroidManifest.xml文件;
对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件;
对所述修改后的AndroidManifest.xml文件进行加密,得到加密后的AndroidManifest.xml文件;
将所述加密后的AndroidManifest.xml文件与所述初始安装包中所述初始的AndroidManifest.xml文件以外的其他文件打包。
另一种可能的实现方式中,所述对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件包括:
在所述初始的AndroidManifest.xml文件的预设位置加入第一预设代码,得到所述修改后的AndroidManifest.xml文件;或者
搜索所述初始的AndroidManifest.xml文件中的第二预设代码,将所述AndroidManifest.xml文件中的所述第二预设代码替换为指定代码,得到所述修改后的AndroidManifest.xml文件;或者
删除所述初始的AndroidManifest.xml文件中的第三预设代码,得到所述修改后的AndroidManifest.xml文件。
本发明中,打包服务器生成应用程序的初始安装包,生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;所述调度服务器根据所述下载地址从所述打包服务器下载所述初始安装包,将下载的所述初始安装包上传至加固服务器;所述加固服务器对上传的所述初始安装包进行加固,得到加固安装包;所述调度服务器从所述加固服务器下载所述加固安装包,显示下载的所述加固安装包。本发明可以提高应用程序打包的效率。
附图说明
图1是本发明实施例提供的应用程序打包系统的结构图。
图2是本发明实施例提供的应用程序打包方法的流程图。
图3是本发明实施例提供的计算机装置的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的应用程序打包方法应用在多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(DigitalSignal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
实施例一
图1是本发明实施例一提供的应用程序打包系统的结构图。如图1所示,所述应用程序打包系统100包括打包服务器1、调度服务器2、加固服务器3。所述调度服务器2与所述打包服务器1和所述加固服务3通信连接。
所述打包服务器1包括生成单元10。所述调度服务器2包括第一下载单元20、上传单元21、第二下载单元22、显示单元23。所述加固服务器3包括加固单元30。
生成单元10,用于生成应用程序的初始安装包。
生成单元10可以在接收到应用程序打包指令后,对应用程序进行打包,生成应用程序的初始安装包。
在本实施例中,所述应用程序为Android应用程序,生成单元10生成应用程序的初始安装包可以包括以下步骤:
第一步:打包应用程序的资源文件,生成R.java文件。此步骤中,可以利用安卓组件打包工具(Android Asset Packaging Tool,AAPT)对应用程序的Resource文件、AndroidManifest.xml文件、Android基础类库(Android.jar文件)等资源文件进行打包。
第二步:对应用程序的源码文件、aidl文件(包括framework.aidl文件)生成对应的java文件。此步骤中,可以利用Android接口定义语言(Android Interface DefinitionLanguage,AIDL)对应用程序的源码文件、aidl文件生成对应的java文件。
第三步:编译所述R.java文件、所述源码文件对应的java文件、所述aidl文件对应的java文件与所述应用程序的库文件,生成对应的class文件。此步骤中,可以利用javac工具将各个java文件(包括R.java文件以及源码文件对应的java文件、aidl文件对应的java文件)、库文件(jar文件)分别编译为class文件。
第四步:将所述class文件转化为Davik VM支持的dex文件。此步骤中的class文件包括由R.java文件生成的class文件、由源码文件对应的java文件生成的class文件、由aidl文件对应的java文件生成的class文件、由库文件生成的class文件。
第五步:将所述R.java文件、所述dex文件、所述应用程序的libs文件打包,生成apk文件。此步骤中,可以利用apkbuilder工具将R.java文件、dex文件、libs文件打包成apk文件。所述apk文件即得到的所述初始安装包。
生成单元10按照上述步骤生成的初始安装包不带有任何的渠道信息,是根据应用程序的源代码编译得到的原始安装包。
初始安装包通常是压缩文件的形式。
在本实施例中,生成单元10生成应用程序的初始安装包还可以包括:在初始安装包的assets目录下创建一个渠道信息文件,在该渠道信息文件中写入所述应用程序的渠道信息,使得生成的初始安装包包含渠道信息。
在本实施例中,生成单元10生成应用程序的初始安装包还可以包括:对所述apk文件进行签名。此步骤中,可以使用jarsigner对apk文件进行签名,得到签名后的apk文件。签名就是对初始安装包进行加密,签名操作可以提高初始安装包的安全性。
在本实施例中,生成单元10生成应用程序的初始安装包还可以包括:对所述apk文件进行对齐处理。可以对签名后的apk文件进行对齐处理。此步骤中,可以使用zipalign工具对apk文件进行对齐处理。对齐处理是对apk文件的字节码进行优化,以提高应用程序的运行速度。
生成单元10,还用于生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器2。
生成单元10可以在生成初始安装包之前生成初始安装包的下载地址,并把初始安装包的下载地址发送给调度服务器2。也就是说,调度服务器2收到初始安装包的下载地址时,所述初始安装包可能正在生成,所述初始安装包尚未生成成功。
生成单元10也可以在生成初始安装包之后生成初始安装包的下载地址,并把初始安装包的下载地址发送给调度服务器2。也就是说,调度服务器2收到初始安装包的下载地址时,所述初始安装包已经生成成功。
所述下载地址可以用URL(Uniform Resource Locator,统一资源定位符)表示。可以确定所述应用程序的类型,根据所述应用程序的类型生成初始安装包的下载地址。例如,应用程序可以分为多媒体、游戏、办公等类型,每个类型对应一个下载路径,例如多媒体类型的应用程序的初始安装包的下载地址为https://abcdef.com.cn/download/media/xxx(xxx表示初始安装包的文件名),游戏类型的应用程序的初始安装包的下载地址为https://abcdef.com.cn/download/game/xxx,办公类型的应用程序的初始安装包的下载地址为https://abcdef.com.cn/download/office/xxx。
第一下载单元20,用于根据所述下载地址从所述打包服务器1下载所述初始安装包。
例如,第一下载单元20根据下载地址https://abcdef.com.cn/download/media/xxx从打包服务器1下载初始安装包。
在一个实施例中,打包服务器1在生成初始安装包之前生成初始安装包的下载地址,并把初始安装包发送给调度服务器2。这种情况下,第一下载单元20可以按照预设频率(例如一分钟一次)检测初始安装包是否生成成功,若初始安装包生成成功,则按照所述下载地址从打包服务器1下载初始安装包,从而保证可以快速下载初始安装包。
在另一实施例中,打包服务器1在生成初始安装包之后生成初始安装包的下载地址,并把初始安装包的下载地址发送给调度服务器2。这种情况下,第一下载单元20可以检测是否接收到所述下载地址,若接收到所述下载地址,则执行从打包服务器1下载初始安装包的操作。
上传单元21,用于将下载的所述初始安装包上传至加固服务器3。
上传单元21可以对下载的初始安装包设置优先级,将携带优先级信息的初始安装包上传至加固服务器3,使加固服务器3根据初始安装包的优先级进行加固。
上传单元21可以根据初始安装包对应的应用程序的类型、初始安装包的大小、初始安装包的来源等设置初始安装包的优先级。例如,可以设定办公类型的应用程序的初始安装包的优先级高于多媒体类型的应用程序的初始安装包,多媒体类型的应用程序的初始安装包的优先级高于游戏类型的应用程序的初始安装包。可以设定大的初始安装包的优先级高于小的初始安装包。可以根据初始安装包产出部门的重要性设置初始安装包的优先级,重要部门产出的初始安装包的优先级高于非重要部分产出的初始安装包。可以对不同条件(例如初始安装包对应的应用程序的类型、初始安装包的大小、初始安装包的来源等)设定权重,结合多个不同条件计算初始安装包的优先级。
加固单元30,用于对上传的初始安装包进行加固,得到加固安装包。
在一实施例中,加固单元30可以通过下述方法对上传的初始安装包进行加固:
(1)解压初始安装包,提取初始安装包中的初始的AndroidManifest.xml文件。
(2)对初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件。例如,在初始的AndroidManifest.xml文件的预设位置(例如文件的结尾)加入第一预设代码,得到修改后的AndroidManifest.xml文件。或者,搜索初始的AndroidManifest.xml文件中的第二预设代码,将初始的AndroidManifest.xml文件中的第二预设代码替换为指定代码,得到修改后的AndroidManifest.xml文件。或者,删除初始的AndroidManifest.xml文件中的第三预设代码,得到修改后的AndroidManifest.xml文件。
(3)对修改后的AndroidManifest.xml文件进行加密,得到加密后的AndroidManifest.xml文件。可以按照预设加密算法(例如密钥对非对称加密算法)对修改后的AndroidManifest.xml文件进行加密。
(4)将加密后的AndroidManifest.xml文件与所述初始安装包中初始的AndroidManifest.xml文件以外的其他文件打包,生成加固安装包。
加固单元30可以确定初始安装包的优先级,根据初始安装包的优先级对上传的初始安装包进行加固。也就是说,加固单元30可以优先加固高优先级的初始安装包。
第二下载单元22,用于从所述加固服务器3下载加固安装包。
第二下载单元22可以检测初始安装包是否加固成功,若初始安装包加固成功,则从所述加固服务器3下载加固安装包。第二下载单元22可以按照预设频率(例如一分钟一次)检测初始安装包是否加固成功。
在一实施例中,加固服务器3监控初始安装包的加固进度,若初始安装包加固完成,则发送加固成功的消息给调度服务器2。第二下载单元22检测是否接收到初始安装包加固成功的消息,若接收到初始安装包加固成功的消息,则确认所述初始安装包加固成功。
或者,第二下载单元22可以按照预设频率(例如三分钟一次)向加固服务器3发送初始安装包下载请求。若初始安装包加固成功,则加固服务器3返回加固安装包。
显示单元23,用于显示下载的所述加固安装包。
显示单元23可以生成安装包下载界面,在安装包下载界面中显示下载的所述加固安装包,以供调试人员下载所述加固安装包进行调试,或供用户下载所述加固安装包进行安装使用。例如,可以在安装包下载界面显示所述加固安装包的图标。或者,可以在安装包下载界面显示所述加固安装包的信息(例如名称、简介等)以及下载按钮。
实施例一的应用程序打包系统100包括打包服务器1、调度服务器2、加固服务器3,打包服务器1生成应用程序的初始安装包;打包服务器1生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器2;所述调度服务器2根据所述下载地址从所述打包服务器1下载所述初始安装包;所述调度服务器2将下载的所述初始安装包上传至加固服务器3;所述加固服务器3对上传的所述初始安装包进行加固,得到加固安装包;所述调度服务器2从所述加固服务器3下载所述加固安装包;所述调度服务器2显示下载的所述加固安装包。该方法提高了应用程序打包的效率,便于测试人员直接获取加固安装包进行测试或用户下载所述加固安装包进行安装使用。
在一些实施例中,所述调度服务器2还可以包括:发送单元,用于将应用程序的源代码和应用程序打包指令发送给打包服务器1,以控制所述打包服务器1对所述源代码进行处理,生成应用程序的初始安装包。
在一些实施例中,所述调度服务器2还可以包括:返回单元,用于接收安装包下载指令,根据所述安装包下载指令返回所述加固安装包。例如,终端上显示安装包下载界面,当检测到用户点击安装包下载界面上的安装包下载按钮时,终端生成所述安装包下载指令并发送给调度服务器2,调度服务器2接收到所述安装包下载指令后,将所述加固安装包返回给终端。
实施例二
图2是本发明实施例二提供的应用程序打包方法的流程图。如图2所示,所述应用程序打包方法具体包括以下步骤:
步骤201,打包服务器生成应用程序的初始安装包。
打包服务器可以在接收到应用程序打包指令后,对应用程序进行打包,生成应用程序的初始安装包。
在本实施例中,所述应用程序为Android应用程序,生成应用程序的初始安装包可以包括以下步骤:
第一步:打包应用程序的资源文件,生成R.java文件。此步骤中,可以利用安卓组件打包工具(Android Asset Packaging Tool,AAPT)对应用程序的Resource文件、AndroidManifest.xml文件、Android基础类库(Android.jar文件)等资源文件进行打包。
第二步:对应用程序的源码文件、aidl文件(包括framework.aidl文件)生成对应的java文件。此步骤中,可以利用Android接口定义语言(Android Interface DefinitionLanguage,AIDL)对应用程序的源码文件、aidl文件生成对应的java文件。
第三步:编译所述R.java文件、所述源码文件对应的java文件、所述aidl文件对应的java文件与所述应用程序的库文件,生成对应的class文件。此步骤中,可以利用javac工具将各个java文件(包括R.java文件以及源码文件对应的java文件、aidl文件对应的java文件)、库文件(jar文件)分别编译为class文件。
第四步:将所述class文件转化为Davik VM支持的dex文件。此步骤中的class文件包括由R.java文件生成的class文件、由源码文件对应的java文件生成的class文件、由aidl文件对应的java文件生成的class文件、由库文件生成的class文件。
第五步:将所述R.java文件、所述dex文件、所述应用程序的libs文件打包,生成apk文件。此步骤中,可以利用apkbuilder工具将R.java文件、dex文件、libs文件打包成apk文件。所述apk文件即得到的所述初始安装包。
上述步骤生成的初始安装包不带有任何的渠道信息,是根据应用程序的源代码编译得到的原始安装包。
初始安装包通常是压缩文件的形式。
在本实施例中,生成应用程序的初始安装包还可以包括:在初始安装包的assets目录下创建一个渠道信息文件,在该渠道信息文件中写入所述应用程序的渠道信息,使得生成的初始安装包包含渠道信息。
在本实施例中,生成应用程序的初始安装包还可以包括:对所述apk文件进行签名。此步骤中,可以使用jarsigner对apk文件进行签名,得到签名后的apk文件。签名就是对初始安装包进行加密,签名操作可以提高初始安装包的安全性。
在本实施例中,生成应用程序的初始安装包还可以包括:对所述apk文件进行对齐处理。可以对签名后的apk文件进行对齐处理。此步骤中,可以使用zipalign工具对apk文件进行对齐处理。对齐处理是对apk文件的字节码进行优化,以提高应用程序的运行速度。
步骤202,打包服务器生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器。
打包服务器可以在生成初始安装包之前生成初始安装包的下载地址,并把初始安装包的下载地址发送给调度服务器。也就是说,调度服务器收到初始安装包的下载地址时,所述初始安装包可能正在生成,所述初始安装包尚未生成成功。
打包服务器也可以在生成初始安装包之后生成初始安装包的下载地址,并把初始安装包的下载地址发送给调度服务器。也就是说,调度服务器收到初始安装包的下载地址时,所述初始安装包已经生成成功。
所述下载地址可以用URL(Uniform Resource Locator,统一资源定位符)表示。可以确定所述应用程序的类型,根据所述应用程序的类型生成初始安装包的下载地址。例如,应用程序可以分为多媒体、游戏、办公等类型,每个类型对应一个下载路径,例如多媒体类型的应用程序的初始安装包的下载地址为https://abcdef.com.cn/download/media/xxx(xxx表示初始安装包的文件名),游戏类型的应用程序的初始安装包的下载地址为https://abcdef.com.cn/download/game/xxx,办公类型的应用程序的初始安装包的下载地址为https://abcdef.com.cn/download/office/xxx。
步骤203,所述调度服务器根据所述下载地址从所述打包服务器下载所述初始安装包。
例如,调度服务器根据下载地址https://abcdef.com.cn/download/media/xxx从打包服务器下载初始安装包。
在一个实施例中,打包服务器在生成初始安装包之前生成初始安装包的下载地址,并把初始安装包发送给调度服务器。这种情况下,调度服务器可以按照预设频率(例如一分钟一次)检测初始安装包是否生成成功,若初始安装包生成成功,则按照所述下载地址从打包服务器下载初始安装包,从而保证可以快速下载初始安装包。
在另一实施例中,打包服务器在生成初始安装包之后生成初始安装包的下载地址,并把初始安装包的下载地址发送给调度服务器。这种情况下,调度服务器可以检测是否接收到所述下载地址,若接收到所述下载地址,则执行从打包服务器下载初始安装包的操作。
步骤204,所述调度服务器将下载的所述初始安装包上传至加固服务器。
调度服务器可以对下载的初始安装包设置优先级,将携带优先级信息的初始安装包上传至加固服务器,使加固服务器根据初始安装包的优先级进行加固。
调度服务器可以根据初始安装包对应的应用程序的类型、初始安装包的大小、初始安装包的来源等设置初始安装包的优先级。例如,可以设定办公类型的应用程序的初始安装包的优先级高于多媒体类型的应用程序的初始安装包,多媒体类型的应用程序的初始安装包的优先级高于游戏类型的应用程序的初始安装包。可以设定大的初始安装包的优先级高于小的初始安装包。可以根据初始安装包产出部门的重要性设置初始安装包的优先级,重要部门产出的初始安装包的优先级高于非重要部分产出的初始安装包。可以对不同条件(例如初始安装包对应的应用程序的类型、初始安装包的大小、初始安装包的来源等)设定权重,结合多个不同条件计算初始安装包的优先级。
步骤205,所述加固服务器对上传的初始安装包进行加固,得到加固安装包。
在一实施例中,加固服务器可以通过下述方法对上传的初始安装包进行加固:
(1)解压初始安装包,提取初始安装包中的初始的AndroidManifest.xml文件。
(2)对初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件。例如,在初始的AndroidManifest.xml文件的预设位置(例如文件的结尾)加入第一预设代码,得到修改后的AndroidManifest.xml文件。或者,搜索初始的AndroidManifest.xml文件中的第二预设代码,将初始的AndroidManifest.xml文件中的第二预设代码替换为指定代码,得到修改后的AndroidManifest.xml文件。或者,删除初始的AndroidManifest.xml文件中的第三预设代码,得到修改后的AndroidManifest.xml文件。
(3)对修改后的AndroidManifest.xml文件进行加密,得到加密后的AndroidManifest.xml文件。可以按照预设加密算法(例如密钥对非对称加密算法)对修改后的AndroidManifest.xml文件进行加密。
(4)将加密后的AndroidManifest.xml文件与所述初始安装包中初始的AndroidManifest.xml文件以外的其他文件打包,生成加固安装包。
加固服务器可以确定初始安装包的优先级,根据初始安装包的优先级对上传的初始安装包进行加固。也就是说,加固服务器可以优先加固高优先级的初始安装包。
步骤206,所述调度服务器从所述加固服务器下载加固安装包。
调度服务器可以检测初始安装包是否加固成功,若初始安装包加固成功,则从所述加固服务器下载加固安装包。调度服务器可以按照预设频率(例如一分钟一次)检测初始安装包是否加固成功。
在一实施例中,加固服务器监控初始安装包的加固进度,若初始安装包加固完成,则发送加固成功的消息给调度服务器。调度服务器检测是否接收到初始安装包加固成功的消息,若接收到初始安装包加固成功的消息,则确认所述初始安装包加固成功。
或者,调度服务器可以按照预设频率(例如三分钟一次)向加固服务器发送初始安装包下载请求。若初始安装包加固成功,则加固服务器返回加固安装包。
步骤207,所述调度服务器显示下载的所述加固安装包。
调度服务器可以生成安装包下载界面,在安装包下载界面中显示下载的所述加固安装包,以供调试人员下载所述加固安装包进行调试,或供用户下载所述加固安装包进行安装使用。例如,可以在安装包下载界面显示下载的加固安装包的图标。或者,可以在安装包下载界面显示所述下载的加固安装包的信息(例如名称、简介等)以及下载按钮。
实施例二的应用程序打包方法中,打包服务器生成应用程序的初始安装包;打包服务器生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;所述调度服务器根据所述下载地址从所述打包服务器下载所述初始安装包;所述调度服务器将下载的所述初始安装包上传至加固服务器;所述加固服务器对上传的所述初始安装包进行加固,得到加固安装包;所述调度服务器从所述加固服务器下载所述加固安装包;所述调度服务器显示下载的所述加固安装包。该方法提高了应用程序打包的效率,便于测试人员直接获取加固安装包进行测试或用户下载所述加固安装包进行安装使用。
在一些实施例中,在步骤201之前,所述应用程序打包方法还可以包括:调度服务器将应用程序的源代码和应用程序打包指令发送给打包服务器,以控制所述打包服务器对所述源代码进行处理,生成应用程序的初始安装包。
在一些实施例中,在步骤206之后,所述应用程序打包方法还可以包括:调度服务器接收安装包下载指令,根据所述安装包下载指令返回所述加固安装包。例如,终端上显示安装包下载界面,当检测到用户点击安装包下载界面上的安装包下载按钮时,终端生成所述安装包下载指令并发送给调度服务器,调度服务器接收到所述安装包下载指令后,将所述加固安装包返回给终端。
实施例三
本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述系统实施例中各模块/单元的功能,例如图1中的生成单元10、第一下载单元20、上传单元21、第二下载单元22、显示单元23、加固单元30:
生成单元10,用于生成应用程序的初始安装包,以及生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;
第一下载单元20,用于根据所述下载地址从打包服务器下载所述初始安装包;
上传单元21,用于将下载的所述初始安装包上传至加固服务器;
加固单元30,用于对上传的初始安装包进行加固,得到加固安装包;
第二下载单元22,用于从加固服务器下载所述加固安装包;
显示单元23,用于显示下载的所述加固安装包。
或者,该计算机程序被处理器执行时实现上述应用程序打包方法实施例中的步骤,例如图2所示的步骤201-207:
步骤201,生成应用程序的初始安装包;
步骤202,生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;
步骤203,根据所述下载地址从打包服务器下载所述初始安装包;
步骤204,将下载的所述初始安装包上传至加固服务器;
步骤205,对上传的所述初始安装包进行加固,得到加固安装包;
步骤206,从加固服务器下载所述加固安装包;
步骤207,显示下载的所述加固安装包。
实施例四
图3为本发明实施例四提供的计算机装置的示意图。所述计算机装置4可以包括多个,例如包括图1中的打包服务器1、调度服务器2、加固服务器3。所述计算机装置4包括存储器40、处理器41以及存储在所述存储器40中并可在所述处理器41上运行的计算机程序42,例如应用程序打包程序。所述处理器41执行所述计算机程序42时实现上述系统实施例中各模块/单元的功能,例如图1中的生成单元10、第一下载单元20、上传单元21、第二下载单元22、显示单元23、加固单元30:
生成单元10,用于生成应用程序的初始安装包,以及生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;
第一下载单元20,用于根据所述下载地址从打包服务器下载所述初始安装包;
上传单元21,用于将下载的所述初始安装包上传至加固服务器;
加固单元30,用于对上传的初始安装包进行加固,得到加固安装包;
第二下载单元22,用于从加固服务器下载所述加固安装包;
显示单元23,用于显示下载的所述加固安装包。
或者,所述处理器41执行所述计算机程序42时实现上述应用程序打包方法实施例中的步骤,例如图2所示的步骤201-207:
步骤201,生成应用程序的初始安装包;
步骤202,生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;
步骤203,根据所述下载地址从打包服务器下载所述初始安装包;
步骤204,将下载的所述初始安装包上传至加固服务器;
步骤205,对上传的所述初始安装包进行加固,得到加固安装包;
步骤206,从加固服务器下载所述加固安装包;
步骤207,显示下载的所述加固安装包。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器40中,并由所述处理器41执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述计算机装置41中的执行过程。例如,所述计算机程序42可以被分割成图1中的生成单元10、第一下载单元20、上传单元21、第二下载单元22、显示单元23、加固单元30,各单元具体功能参见实施例一。
所述计算机装置4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是计算机装置4的示例,并不构成对计算机装置4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置4还可以包括输入输出设备、网络接入设备、总线等。
所称处理器41可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器41也可以是任何常规的处理器等,所述处理器41是所述计算机装置4的控制中心,利用各种接口和线路连接整个计算机装置4的各个部分。
所述存储器40可用于存储所述计算机程序42和/或模块/单元,所述处理器41通过运行或执行存储在所述存储器40内的计算机程序和/或模块/单元,以及调用存储在存储器40内的数据,实现所述计算机装置4的各种功能。所述存储器40可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置4的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器40可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置4集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种应用程序打包方法,其特征在于,所述方法包括:
打包服务器生成应用程序的初始安装包;
打包服务器生成所述初始安装包的下载地址,将所述下载地址发送给调度服务器;
所述调度服务器根据所述下载地址从所述打包服务器下载所述初始安装包;
所述调度服务器将下载的所述初始安装包上传至加固服务器;
所述加固服务器对上传的所述初始安装包进行加固,得到加固安装包;
所述调度服务器从所述加固服务器下载所述加固安装包;
所述调度服务器显示下载的所述加固安装包。
2.如权利要求1所述的方法,其特征在于,所述生成应用程序的初始安装包包括:
打包所述应用程序的资源文件,生成R.java文件;
对所述应用程序的源码文件、aidl文件生成对应的java文件;
编译所述R.java文件、所述源码文件对应的java文件、所述aidl文件对应的java文件与所述应用程序的库文件,生成对应的class文件;
将所述class文件转化为Davik VM支持的dex文件;
将所述R.java文件、所述dex文件、所述应用程序的libs文件打包,生成apk文件。
3.如权利要求2所述的方法,其特征在于,所述生成应用程序的初始安装包还包括:
在所述初始安装包的assets目录下创建渠道信息文件,在所述渠道信息文件中写入所述应用程序的渠道信息;和/或
对所述apk文件进行签名;和/或
对所述apk文件进行对齐处理。
4.如权利要求1所述的方法,其特征在于,所述生成所述初始安装包的下载地址包括:
确定所述应用程序的类型;
根据所述应用程序的类型生成所述下载地址。
5.如权利要求1所述的方法,其特征在于,所述对上传的所述初始安装包进行加固包括:
确定所述初始安装包的优先级;
根据所述初始安装包的优先级对上传的所述初始安装包进行加固。
6.如权利要求1所述的方法,其特征在于,所述对上传的所述初始安装包进行加固包括:
解压所述初始安装包,提取所述初始安装包中初始的AndroidManifest.xml文件;
对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件;
对所述修改后的AndroidManifest.xml文件进行加密,得到加密后的AndroidManifest.xml文件;
将所述加密后的AndroidManifest.xml文件与所述初始安装包中所述初始的AndroidManifest.xml文件以外的其他文件打包。
7.如权利要求6所述的方法,其特征在于,所述对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件包括:
在所述初始的AndroidManifest.xml文件的预设位置加入第一预设代码,得到所述修改后的AndroidManifest.xml文件;或者
搜索所述初始的AndroidManifest.xml文件中的第二预设代码,将所述AndroidManifest.xml文件中的所述第二预设代码替换为指定代码,得到所述修改后的AndroidManifest.xml文件;或者
删除所述初始的AndroidManifest.xml文件中的第三预设代码,得到所述修改后的AndroidManifest.xml文件。
8.一种应用程序打包系统,其特征在于,所述系统包括打包服务器、调度服务器及加固服务器,其中:
所述打包服务器,用于生成应用程序的初始安装包以及生成所述初始安装包的下载地址,将所述下载地址发送给所述调度服务器;
所述调度服务器,用于根据所述下载地址从所述打包服务器下载所述初始安装包,将下载的所述初始安装包上传至所述加固服务器;
所述加固服务器,用于对上传的所述初始安装包进行加固,得到加固安装包;
所述调度服务器,还用于从所述加固服务器下载所述加固安装包,并显示下载的所述加固安装包。
9.如权利要求8所述的系统,其特征在于,所述加固服务器具体用于:
解压所述初始安装包,提取所述初始安装包中初始的AndroidManifest.xml文件;
对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件;
对所述修改后的AndroidManifest.xml文件进行加密,得到加密后的AndroidManifest.xml文件;
将所述加密后的AndroidManifest.xml文件与所述初始安装包中所述初始的AndroidManifest.xml文件以外的其他文件打包。
10.如权利要求9所述的系统,其特征在于,所述对所述初始的AndroidManifest.xml文件进行修改,得到修改后的AndroidManifest.xml文件包括:
在所述初始的AndroidManifest.xml文件的预设位置加入第一预设代码,得到所述修改后的AndroidManifest.xml文件;或者
搜索所述初始的AndroidManifest.xml文件中的第二预设代码,将所述AndroidManifest.xml文件中的所述第二预设代码替换为指定代码,得到所述修改后的AndroidManifest.xml文件;或者
删除所述初始的AndroidManifest.xml文件中的第三预设代码,得到所述修改后的AndroidManifest.xml文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811537502.2A CN109814912A (zh) | 2018-12-15 | 2018-12-15 | 应用程序打包方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811537502.2A CN109814912A (zh) | 2018-12-15 | 2018-12-15 | 应用程序打包方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109814912A true CN109814912A (zh) | 2019-05-28 |
Family
ID=66601678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811537502.2A Pending CN109814912A (zh) | 2018-12-15 | 2018-12-15 | 应用程序打包方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814912A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736841A (zh) * | 2020-05-25 | 2020-10-02 | 广东职业技术学院 | 一种基于移动互联网的应用集成开发方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087605A (zh) * | 2011-01-28 | 2011-06-08 | 宇龙计算机通信科技(深圳)有限公司 | 一种基于android平台应用安装控制方法及系统 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
CN104021321A (zh) * | 2014-06-17 | 2014-09-03 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
WO2016058291A1 (zh) * | 2014-10-15 | 2016-04-21 | 中兴通讯股份有限公司 | 移动应用打包的方法及系统 |
CN105718764A (zh) * | 2016-01-19 | 2016-06-29 | 北京鼎源科技有限公司 | 一种基于Android系统陷阱指令的软件加固方法 |
WO2016201853A1 (zh) * | 2015-06-15 | 2016-12-22 | 中兴通讯股份有限公司 | 加解密功能的实现方法、装置及服务器 |
-
2018
- 2018-12-15 CN CN201811537502.2A patent/CN109814912A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087605A (zh) * | 2011-01-28 | 2011-06-08 | 宇龙计算机通信科技(深圳)有限公司 | 一种基于android平台应用安装控制方法及系统 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
CN104021321A (zh) * | 2014-06-17 | 2014-09-03 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
WO2016058291A1 (zh) * | 2014-10-15 | 2016-04-21 | 中兴通讯股份有限公司 | 移动应用打包的方法及系统 |
WO2016201853A1 (zh) * | 2015-06-15 | 2016-12-22 | 中兴通讯股份有限公司 | 加解密功能的实现方法、装置及服务器 |
CN105718764A (zh) * | 2016-01-19 | 2016-06-29 | 北京鼎源科技有限公司 | 一种基于Android系统陷阱指令的软件加固方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736841A (zh) * | 2020-05-25 | 2020-10-02 | 广东职业技术学院 | 一种基于移动互联网的应用集成开发方法及系统 |
CN111736841B (zh) * | 2020-05-25 | 2023-07-04 | 广东职业技术学院 | 一种基于移动互联网的应用集成开发方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168742B (zh) | 基于定制安卓平台的应用快速部署方法 | |
CN108897562B (zh) | 安装包更新方法、装置、介质以及设备 | |
CN109542459A (zh) | 应用程序打包方法及装置、计算机装置及计算机存储介质 | |
CN107896244B (zh) | 一种版本文件的分发方法、客户端及服务器 | |
KR102281052B1 (ko) | 이동 단말 애플리케이션 업데이트 방법 및 장치 | |
KR102003850B1 (ko) | 단말의 애플리케이션 제공 방법 및 그 단말 | |
EP2712449A2 (en) | Hybrid web container for cross-platform mobile applications | |
CN107168749A (zh) | 一种编译方法、装置、设备和计算机可读存储介质 | |
WO2020015191A1 (zh) | 业务规则的发布管理方法、电子装置及可读存储介质 | |
US20140365436A1 (en) | Automated synchronization of client-side database with server-side database over a communications network | |
CN106598678A (zh) | 向终端设备提供应用程序安装包的方法及装置 | |
CN104426924A (zh) | 一种更新应用软件的方法、装置、客户端、服务器及系统 | |
CN113064630B (zh) | 移动端app自动打包方法、系统、电子设备及存储介质 | |
CN114036439A (zh) | 网站搭建方法、装置、介质及电子设备 | |
CN113986256A (zh) | 一种发布应用程序的方法、装置、电子设备及存储介质 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
US20200117443A1 (en) | Selective application updates based on usage analytics | |
CN113535220B (zh) | 一种代码包管理方法和装置 | |
CN109814912A (zh) | 应用程序打包方法及系统 | |
CN110780894B (zh) | 热升级处理方法、装置及电子设备 | |
CN111176912A (zh) | 一种继电保护装置硬件配置信息管理系统和方法 | |
CN113515269B (zh) | 应用包的处理方法、装置、计算机设备和存储介质 | |
US9059992B2 (en) | Distributed mobile enterprise application platform | |
CN104539697A (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 |