Android端APP增量升级技术实现方案.docx_第1页
Android端APP增量升级技术实现方案.docx_第2页
Android端APP增量升级技术实现方案.docx_第3页
Android端APP增量升级技术实现方案.docx_第4页
Android端APP增量升级技术实现方案.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android端APP增量升级技术实现方案文件状态: 草稿 正式发布 正在修改文件标识:Android端APP增量升级技术实现方案当前版本:1.0作 者:杨月峰完成日期:1. 文档简介本文档帮助读者对本文档建立基本印象,并为阅读后续内容扫清障碍。1.1文档目的本文档主要的读者包括:1、本系统的设计人员:包括模块设计人员(理解用户需求,在设计时把握用户需求)。2、本系统的系统开发人员:编码人员(了解用户需求,为编码提供模版)3、本系统的测试人员(了解用户需求,为测试提供参考)1.2文档范围概要架构设计文档的目的是描述本项目的技术架构和基础设施,以便项目组有足够的信息开始进行应用系统的详细设计。1.3定义、缩写词和缩略语文档中的定义、缩写词和缩略语。2.总体技术框架实现2.1增量升级原理首先将应用的旧版本Apk与新版本Apk做差分,得到更新的部分的补丁,例如旧版本的APK有5M,新版的有8M,更新的部分则可能只有3M左右(这里需要说明的是,得到的差分包大小并不是简单的相减,因为其实需要包含一些上下文相关的东西),使用差分升级的好处显而易见,那么你不需要下载完整的8M文件,只需要下载更新部分就可以,而更新部分可能只有3、4M,可以很大程度上减少流量的损失。在用户下载了差分包之后,需要在手机端将他们组合起来。如果不出意外的话,这个生成的apk和你之前做差分的apk是一致的。2.2增量升级优缺点优点:减少流量,下载更新更快。缺点: 1.增量升级是以两个应用版本之间的差异来生成补丁的,你无法保证用户每次的及时升级到最新,所以你必须对你所发布的每一个版本都和最新的版本作差分,以便使所有版本的用户都可以差分升级,这样操作相对于原来的整包升级较为繁琐例如: 你的apk已经发布了3个版,V1.0、V2.0、V3.0,这时候你要在后台发布V4.0,那么,当你在服务器上传最新的V4.0包时,服务器端就应该立即生成以下差分包:1)V1.0 V4.0的差分包;2)V2.0 V4.0的差分包;3)V3.0 V4.0的差分包;不过可以通过自动化的脚本批量生成。 2.增量升级成功的前提是,用户手机端必须有能够让你拷贝出来且与你服务器用于差分的版本一致的apk,这样就存在,例如,系统内置的apk无法获取到,无法进行增量升级;对于某些与你差分版本一致,但是内容有过修改的(比如破解版apk),这样也是无法进行增量升级的,为了防止合成补丁错误,最好在补丁合成前对旧版本的apk进行sha1sum校验,保证基础包的一致性。2.3增量升级主要流程图 2.4增量升级步骤及技术实现1、服务器端对新旧apk进行对比做差分,生成patch文件apk文件的差分、合成,可以通过开源的二进制比较工具 bsdiff来实现,又因为bsdiff依赖bzip2,所以我们还需要用到bzip2 开源的二进制比较工具地址: /bsdiff/bzip2地址:/downloads.htmlbsdiff中,bsdiff.c用于生成差分包,bspatch.c用于合成文件。以服务器代码编写语言为java为例,我们需要将下载的这些C文件,build输出为动态链接库,以供Java通过jni调用(Window环境下生成的文件名为*.dll,linux系统下为*.so。其他语言依此类推调用bsdiff.c中的main方法即可生成patch文件.2、终端合成patch生成新版本APK文件将上述bsdiff和bzip2中的C文件拷贝到自己的NDK项目中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论