CN107566472A - 一种apk自动维护实现方法 - Google Patents
一种apk自动维护实现方法 Download PDFInfo
- Publication number
- CN107566472A CN107566472A CN201710743484.2A CN201710743484A CN107566472A CN 107566472 A CN107566472 A CN 107566472A CN 201710743484 A CN201710743484 A CN 201710743484A CN 107566472 A CN107566472 A CN 107566472A
- Authority
- CN
- China
- Prior art keywords
- apk
- information
- xml
- upload
- file
- 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
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种APK自动维护实现方法,包括如下步骤:步骤1、利用FTP作为APK在上传文件服务器源地址;步骤2、通过xml管控每一个APK的详细信息;步骤3、通过定时任务实现APK上传过程和APK上传失败重新上传过程;步骤4、利用HTTP流式处理解决平台之间APK不兼容问题。本发明将APK维护过程自动化、程序化和批量化,极大缩短了维护时间,通过xml管控APK版本信息,过程中避免了人为管控出现的漏洞和错误,提高了下发效率。
Description
技术领域
本发明涉及一种APK信息维护的方法,具体涉及一种APK自动维护实现方法,属于网络应用管理技术领域。
背景技术
各大厂商竞争,需要不断软件产品版本的迭代,版本迭代需要APK升级,来满足用户的需求,增加产品的竞争力。在进行全国APK升级过程之前,需要对下发的APK进行管控和集中维护,人为方式维护易导致APK信息录入错误率上升,易导致该机器APK版本之间不兼容,大量的APK升级,用人为方式维护时间周期变长,效率低,易导致全国升级被延误,因此一种自动APK维护显得格外重要。
不直接将APK上传到文件服务器是因为每一个APK信息没有共享,上传到文件服务器只有所有者知道,而电视上APK不是单独,是互相关联,这种直接上传造成了彼此APK不兼容,单独上传效率低下;所以才有FTP作为上传过程中中转站:方便开发者利用工具可以将编译好的APK直接上传到FTP服务器,方便集中管理,避免版本兼容问题通过文件夹嵌套实现第一个维度对APK信息管理,可以表明apk所属的机芯和对应的版本和所属的是系统apk和应用apk这两种类型。嵌套层级为根目录、机芯、版本、xml和apk类型(Systemapp、Dataapp)、APK电视作用域、对应apk。
发明内容
本发明的目的在于克服现有技术中手动维护慢、易出错、难批量、版本不兼容的问题,提供了一种效率高的APK自动维护实现方法。
本发明是这样实现的:
一种APK自动维护实现方法,包括如下步骤:
步骤1、利用FTP作为APK在上传文件服务器源地址;
步骤2、通过xml管控每一个APK的详细信息;
步骤3、通过定时任务实现APK上传过程和APK上传失败重新上传过程;
步骤4、利用HTTP流式处理解决平台之间APK不兼容问题。
更进一步的方案是:
所述APK文件按照所属机芯、机芯版本用嵌套的文件夹名表示,文件夹下一层存放APK的名字、APK版本号、MD5、以及APK对应的存放文件夹目录的XML信息,同级目录下有存有系统APK和应用APK的文件夹。
更进一步的方案是:
步骤1中,在FTP服务器下载操作完成之后,给FTP服务器返回一个命令,激活21端口,重置超时时间、文件类型设置为二进制式。
更进一步的方案是:
通过xml管控每一个APK的详细信息,是XML包含机芯和版本对应的一系列的APK的名字,存放地址,包名,MD5值,自身版本名字,即XML相当于APK信息集中管理者和上传过程中APK信息依据。
更进一步的方案是:
APK上传过程和APK上传失败重新上传过程,具体为:
遍历根目录,获取到根目录的文件信息列表,依次遍历该列表,取得下一级文件信息列表,依次遍历该列表,下载XML,解析XML文件,遍历是否到结束标记,根据XML中信息,判断是否需要下载,如果在数据库中已经记录该APK信息,无需下载,否则下载,下载完成记录该APK的信息以及下载状态,下载成功的利用http表单请求方法将APK上传到文件服务器,上传完成则记录该APK信息的上传状态,根据返回信息成功失败和md5校验,判断该APK是否被篡改,成功是否都需记录状态,判断下载的数量是否等于上传的数量是否等于更新的数量,用以判断该机芯、机芯版本下APK上传是否成功;
定时查找上传失败的APK信息,重复上述过程:根据上传成功的数量和之前失败的数量进行对比,若相等则判断该过程成功,否则失败。
更进一步的方案是:
步骤4、利用HTTP流式处理解决平台之间APK不兼容问题,具体为:
FTP服务器到文件服务器,使用FTP的BINARY类型避免FTP到文件服务器APK不兼容问题;通过嵌套的文件名信息和XML记录的信息,首次校验APK信息,通过HTTP表单格式上传,文件服务器端进行签名验证,以及已成功签名的返回的MD5,第二次校验该APK是否唯一、信息是否正确,判断上传成功,整个过程通过非关系MongoDB数据记录,包含记录机芯、版本、对应APK的信息、APK总数、成功上传数量的记录表t_folder,以及记录APK信息包含存放地址、XML的名字、MD5、版本号;t_original_apk表则记录上传成功APK信息;通过两个表信息实现APK第三个维度信息管理。
更进一步的方案是:
所述t_original_apk表,数据结构如下:
t_original_apk表数据结构
属性 | 类型 | 长度 | 说明 |
apkname | String | 应用名 | |
pkgname | String | 包名 | |
size | long | 文件大小 | |
versionCode | String | 版本号 | |
versionName | String | 版本 | |
md5 | String | apk的md5值 | |
fileurl | String | apk在FTP的url | |
jixin | String | 机芯。 |
更进一步的方案是:
所述t_folder表,数据结构如下:
t_folder表数据结构
所述ApkRecord,数据结构如下:
本发明将APK维护过程自动化、程序化和批量化,极大缩短了维护时间,通过xml管控APK版本信息,过程中避免了人为管控出现的漏洞和错误,提高了下发效率。
附图说明
图1是apk自动同步处理流程流程图。
图2是apk同步过程中出现了失败处理流程图。
具体实施方式
(1)APK文件按照所属机芯、机芯版本用嵌套的文件夹名表示,下一层存放APK的名字、APK版本号、MD5、以及APK对应的存放文件夹目录的XML信息,同级目录下有存有系统APK和应用APK的文件夹;
(2)连接到FTP服务器,FTP服务器长时间下载或操作多个文件,导致超时断开连接。可以在下载操作完成之后,给服务器返回一个命令,激活21端口,重置超时时间、文件类型设置为二进制式。
(3)遍历根目录,获取到根目录的文件信息列表,依次遍历该列表,取得下一级文件信息列表,依次遍历该列表,下载XML,解析XML文件,遍历是否到结束标记,根据XML中信息,判断是否需要下载,如果在数据库中已经记录该APK信息,无需下载,否则下载,下载完成记录该APK的信息以及下载状态,下载成功的利用http表单请求方法将APK上传到文件服务器,上传完成则记录该APK信息的上传状态,根据返回信息成功失败和md5校验,判断该APK是否被篡改,成功是否都需记录状态,判断下载的数量是否等于上传的数量是否等于更新的数量,判断该机芯、机芯版本下APK上传是否成功,流程图1表示该过程;定时查找上传失败的APK信息,重复上述过程,根据上传成功的数量和之前失败的数量进行对比,若相等则判断该过程成功,否则失败,图2表示APK同步过程失败的处理机制。
(4)设计到表t_original_apk和t_folder,分别是APK原始信息记录表以及对应机芯和版本下APK上传过程表
t_original_apk表数据结构
属性 | 类型 | 长度 | 说明 |
apkname | String | 应用名 | |
pkgname | String | 包名 | |
size | long | 文件大小 | |
versionCode | String | 版本号 | |
versionName | String | 版本 | |
md5 | String | apk的md5值 | |
fileurl | String | apk在FTP的url | |
jixin | String | 机芯。 |
t_folder表数据结构
ApkRecord数据结构
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (9)
1.一种APK自动维护实现方法,其特征在于包括如下步骤:
步骤1、利用FTP作为APK在上传文件服务器源地址;
步骤2、通过xml管控每一个APK的详细信息;
步骤3、通过定时任务实现APK上传过程和APK上传失败重新上传过程;
步骤4、利用HTTP流式处理解决平台之间APK不兼容问题。
2.根据权利要求1所述APK自动维护实现方法,其特征在于:
所述APK文件按照所属机芯、机芯版本用嵌套的文件夹名表示,文件夹下一层存放APK的名字、APK版本号、MD5、以及APK对应的存放文件夹目录的XML信息,同级目录下有存有系统APK和应用APK的文件夹。
3.根据权利要求2所述APK自动维护实现方法,其特征在于:
步骤1中,在FTP服务器下载操作完成之后,给FTP服务器返回一个命令,激活21端口,重置超时时间、文件类型设置为二进制式。
4.根据权利要求2所述APK自动维护实现方法,其特征在于:
通过xml管控每一个APK的详细信息,是XML包含机芯和版本对应的一系列的APK的名字,存放地址,包名,MD5值,自身版本名字,即XML相当于APK信息集中管理者和上传过程中APK信息依据。
5.根据权利要求2所述APK自动维护实现方法,其特征在于:
APK上传过程和APK上传失败重新上传过程,具体为:
遍历根目录,获取到根目录的文件信息列表,依次遍历该列表,取得下一级文件信息列表,依次遍历该列表,下载XML,解析XML文件,遍历是否到结束标记,根据XML中信息,判断是否需要下载,如果在数据库中已经记录该APK信息,无需下载,否则下载,下载完成记录该APK的信息以及下载状态,下载成功的利用http表单请求方法将APK上传到文件服务器,上传完成则记录该APK信息的上传状态,根据返回信息成功失败和md5校验,判断该APK是否被篡改,成功是否都需记录状态,判断下载的数量是否等于上传的数量是否等于更新的数量,用以判断该机芯、机芯版本下APK上传是否成功;
定时查找上传失败的APK信息,重复上述过程:根据上传成功的数量和之前失败的数量进行对比,若相等则判断该过程成功,否则失败。
6.根据权利要求2所述APK自动维护实现方法,其特征在于:
步骤4、利用HTTP流式处理解决平台之间APK不兼容问题,具体为:
FTP服务器到文件服务器,使用FTP的BINARY类型避免FTP到文件服务器APK不兼容问题;通过嵌套的文件名信息和XML记录的信息,首次校验APK信息,通过HTTP表单格式上传,文件服务器端进行签名验证,以及已成功签名的返回的MD5,第二次校验该APK是否唯一、信息是否正确,判断上传成功,整个过程通过非关系MongoDB数据记录,包含记录机芯、版本、对应APK的信息、APK总数、成功上传数量的记录表t_folder,以及记录APK信息包含存放地址、XML的名字、MD5、版本号;t_original_apk表则记录上传成功APK信息;通过两个表信息实现APK第三个维度信息管理。
7.根据权利要求6所述APK自动维护实现方法,其特征在于:
所述t_original_apk表,数据结构如下:
t_original_apk表数据结构
8.根据权利要求6所述APK自动维护实现方法,其特征在于:
所述t_folder表,数据结构如下:
t_folder表数据结构
9.根据权利要求8所述APK自动维护实现方法,其特征在于:
所述ApkRecord,数据结构如下:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710743484.2A CN107566472B (zh) | 2017-08-25 | 2017-08-25 | 一种apk自动维护实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710743484.2A CN107566472B (zh) | 2017-08-25 | 2017-08-25 | 一种apk自动维护实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566472A true CN107566472A (zh) | 2018-01-09 |
CN107566472B CN107566472B (zh) | 2020-09-29 |
Family
ID=60977028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710743484.2A Active CN107566472B (zh) | 2017-08-25 | 2017-08-25 | 一种apk自动维护实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566472B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408076A (zh) * | 2018-10-22 | 2019-03-01 | 海南新软软件有限公司 | 一种app批量发版方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102196004A (zh) * | 2010-03-12 | 2011-09-21 | 新奥特(北京)视频技术有限公司 | 一种远程素材文件的管理方法和系统 |
CN103747338A (zh) * | 2013-12-24 | 2014-04-23 | 广东九联科技股份有限公司 | 一种基于android系统机顶盒的应用切换方法 |
US20150113040A1 (en) * | 2013-10-21 | 2015-04-23 | Openwave Mobility Inc. | Method, apparatus and computer program for modifying messages in a communications network |
CN105205074A (zh) * | 2014-06-25 | 2015-12-30 | 优视科技有限公司 | 文件增量升级方法及系统 |
CN105446873A (zh) * | 2014-09-01 | 2016-03-30 | 中国科学院深圳先进技术研究院 | 基于android平台的APK软件自动测试方法及系统 |
CN106843880A (zh) * | 2017-01-20 | 2017-06-13 | 广东欧珀移动通信有限公司 | Android安装包APK的定制方法、装置及服务器 |
-
2017
- 2017-08-25 CN CN201710743484.2A patent/CN107566472B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102196004A (zh) * | 2010-03-12 | 2011-09-21 | 新奥特(北京)视频技术有限公司 | 一种远程素材文件的管理方法和系统 |
US20150113040A1 (en) * | 2013-10-21 | 2015-04-23 | Openwave Mobility Inc. | Method, apparatus and computer program for modifying messages in a communications network |
CN103747338A (zh) * | 2013-12-24 | 2014-04-23 | 广东九联科技股份有限公司 | 一种基于android系统机顶盒的应用切换方法 |
CN105205074A (zh) * | 2014-06-25 | 2015-12-30 | 优视科技有限公司 | 文件增量升级方法及系统 |
CN105446873A (zh) * | 2014-09-01 | 2016-03-30 | 中国科学院深圳先进技术研究院 | 基于android平台的APK软件自动测试方法及系统 |
CN106843880A (zh) * | 2017-01-20 | 2017-06-13 | 广东欧珀移动通信有限公司 | Android安装包APK的定制方法、装置及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408076A (zh) * | 2018-10-22 | 2019-03-01 | 海南新软软件有限公司 | 一种app批量发版方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107566472B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105119973B (zh) | 用户信息处理方法和服务器 | |
CN105808274A (zh) | 软件升级方法、系统及对应的客户端与服务器 | |
CN105653329A (zh) | 一种应用管理的方法、装置及系统 | |
CN105808273B (zh) | 软件升级方法和软件升级装置 | |
CN109445837A (zh) | 一种应用程序的发布方法及设备 | |
CN103544030A (zh) | 软件升级方法、软件升级系统及智能终端 | |
CN110262820A (zh) | 基于mqtt协议实现ota升级的方法、装置、系统与存储介质 | |
CN102375744B (zh) | 一种网络电视升级方法 | |
CN109614131A (zh) | 一种广播设备升级控制系统 | |
CN108848418A (zh) | 机顶盒集中升级方法 | |
CN112817867A (zh) | 一种接口测试脚本生成方法、装置、计算机设备和介质 | |
CN110308923A (zh) | 一种ota升级的测试方法及其系统 | |
CN109977008A (zh) | 一种应用程序依赖的js代码与原生库兼容的方法及终端 | |
CN107404389A (zh) | 业务部署方法、装置和系统 | |
CN107566472A (zh) | 一种apk自动维护实现方法 | |
CN106850724A (zh) | 数据推送方法及装置 | |
CN117130941B (zh) | 基于浏览器插件的接口自动化方法、系统、设备及介质 | |
CN107066594A (zh) | 一种元数据同步的方法 | |
CN107798007A (zh) | 一种分布式数据库数据校验的方法、装置及相关装置 | |
CN107590064A (zh) | 一种应用升级测试方法、装置和系统 | |
CN104407897A (zh) | 一种程序智能升级的方法及系统 | |
CN110334513A (zh) | 一种基于Linux操作系统漏洞的修复方法 | |
CN106648441A (zh) | 设备分区信息传递方法及装置 | |
CN102946559B (zh) | 一种数字电视终端的升级方法、终端、服务器及其系统 | |
CN113259156B (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 |