一种基于Android应用软件的增量升级方法技术

技术编号:7865506 阅读:1536 留言:0更新日期:2012-10-15 00:39
本发明专利技术涉及一种基于Android应用软件的增量升级方法,包括以下步骤:?1)比较当前版本和服务器最新版本;?2)由版本差异下载相应的增量升级插件包;?3)安装并运行增量升级插件包;?4)由包内设定的增量升级方式,修改应用程序包;其中,对应用程序包的修改包括对包内的功能文件修改及对包内资源文件的修改。本发明专利技术将增量升级的内容,分为了两种不同的文件对象,一为功能文件,二为资源文件。这能够让增量升级插件包内尽量只包含更改过的升级文件。藉此,Android应用程序能够进行一些功能和资源上能增量升级,也减少了用户等待和流量耗费,更为高效快捷。

【技术实现步骤摘要】

本专利技术涉及一种软件的升级方法,尤其涉及,属于通信领域。
技术介绍
Android是谷歌公司开发的基于Linux的开源操作系统,由于其开源的性质,其受欢迎程度很高,随之而来的便是Android系统的的电子终端及其用户群的广泛增长,用户群的增长也令该平台上的应用软件与日俱增。同时,Android上的应用软件产品也日臻完善,有些软件的大小甚至达到几十兆,且随着科技的发展,软件推陈出新的速度也愈发加快,现有的应用软件更新方式大多都为完整更新,即重新下载一个完整的APK进行覆盖安装的模式。然而,有的时候软件的更新仅仅是功能上的一种小改动,而选择完整更新方式将 造成用户更多的等待和流量的耗费,虽然同样能在实际功能上完成升级,但就一些小改动要做出如此大的牺牲,显然是没必要的。
技术实现思路
专利技术目的鉴于上述的缺陷不足,本专利技术的目的在于提供一种Android系统上应用软件的增量升级方法,能够使得应用软件就一些功能和资源上能增量升级,同时升级更为高效快捷。技术方案本专利技术通过如下技术手段加以实现—种基于Android应用软件的增量升级方法,包括以下步骤I)比较当前版本和服务器最新版本;2)由版本差异下载相应的增量升级插件包;3)安装并运行增量升级插件包;4)由包内设定的增量升级方式,修改应用程序包;其中,对应用程序包的修改包括对包内的功能文件修改及对包内资源文件的修改。对更新后的应用程序包重新进行签名。所述的增量升级插件包定义了 Insert、Update、Delete三种方式组合支持升级。所述的功能文件为assets目录下加密的dex文件,所述的资源文件为res目录下的工程资源文件。对包内功能文件的升级包括以下步骤I)读取包内原加密的功能文件;2)将解密后的功能文件写在终端内置的存储空间上;3)动态加载功能文件类;4)执行功能;5)删除解密后的文件。所述步骤3中利用Dalvik虚拟机对功能文件进行动态加载。有益效果本专利技术将增量升级的内容,分为了两种不同的文件对象,一为功能文件,二为资源文件。这能够让增量升级插件包内尽量只包含更改过的升级文件。藉此,Android应用程序能够进行一些功能和资源上能增量升级,也减少了用户等待和流量耗费,更为高效快捷。附图说明图I是本专利技术的增量升级流程图。图2是本专利技术的升级插件工作流程图。 图3是本专利技术的功能文件升级流程图。具体实施例方式下面结合说明书附图对本
技术实现思路
进行进一步详述应用开发者开发的Android应用程序,最后会被编译打包成一个单独的后缀为.apk的文件发布。其中包含了应用程序的签名信息、二进制代码、资源文件、配置文件等。APK文件其实是zip格式的,在Android上安装时会被存放到系统的app目录下。发布应用程序的APK文件,主要包含了以下部分I. META-INF目录用于存放签名信息。以保证apk的完整性和系统安全。2. assets目录用于存放资源文件。以原格式保存,不会经过编译修改。3. res目录用于存放资源文件。包括图片,字符串等等。4. AndroidManifest. xml :描述应用程序的名字、版本、权限等等的信息。5. classes, dex Java编译后删除的java字节码文件。6. resources, arse :编译后的二进制资源文件。一般而言,软件升级主要是改变前3个目录,因此升级时只需要按需要升级前3个文件的相应内容即可。本专利技术提供了一种基于Android应用软件增量升级的方法,具体而言,由如下步骤组成I)比较当前版本和服务器最新版本;2)由版本差异下载相应的增量升级插件包;3)安装并运行增量升级插件包;4)由包内设定的增量升级方式,修改应用程序包;其中,对应用程序包的修改包括对包内的功能文件修改及对包内资源文件的修改。具体而言,在服务器端提供功能文件升级插件包与资源文件插件升级插件包,并公开其版本号,安装有应用软件的终端读取应用软件中AndroidManifest. xml里的版本号,而后与服务器上的对应文件的版本号进行比对,如果版本号一致,则不进行下载;如果功能文件的版本号低于服务器上的版本号,则对功能文件进行下载;若资源文件版本号低于服务器上的版本号,则下载资源文件;若均低于服务器上的版本号,则两个均进行下载。下载完毕后,利用升级包内的文件对应用程序进行相应修改。在软件升级结束后,更新后的应用程序包重新进行签名,具体的说,是改变META-INF目录下的文件,以保证下次更新的顺利进行。本专利技术中,所述的增量升级插件包定义了 Insert、Update、Delete三种方式组合支持升级。所述的功能文件为assets目录下加密的dex文件,所述的资源文件为res目录下的工程资源文件。对包内资源文件的升级采用完全替换方式,即利用升级包内的新的数据对res目录下的工程资源文件进行替换即可,而对包内功能文件的升级需要进行如下步骤I)读取包内原加密的dex文件; 2)将解密后的dex文件写在终端内置的存储空间上;3)动态加载功能文件类;4)执行功能;5)删除解密后的文件。上述步骤中,加密在于保证功能文件的安全性;使用dex文件则是用于Dalvik虚拟机进行动态加载。但是在assets目录下,解压后可被直接看到源码。若直接在Java层进行解密,dex反编译后很容易被找到解密过程,因此建议在Native层进行解密,更保障安全性。当然,dex文件存放在其他位置也行,只要能够读取到。dex文件也可以不进行加密,上述步骤中,将解密后的dex文件写在终端内置的存储空间上是由于之后的动态加载步骤必须传路径给Dalvik虚拟机内核,将解密后的文件删除是为了避免功能文件类被直接看到而利用。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Android应用软件的增量升级方法,其特征在于包括以下步骤 1)比较当前版本和服务器最新版本; 2)由版本差异下载相应的增量升级插件包; 3)安装并运行增量升级插件包; 4)由包内设定的增量升级方式,修改应用程序包; 其中,对应用程序包的修改包括对包内的功能文件修改及对包内资源文件的修改。2.根据权利要求I所述的一种基于Android应用软件的增量升级方法,其特征在于对更新后的应用程序包重新进行签名。3.根据权利要求I所述的一种基于Android应用软件的增量升级方法,其特征在于所述的增量升级插件包定义了 Insert、Update、Delete三种方式组合支...

【专利技术属性】
技术研发人员:吴少刚张福新赵勇张斌张珩唐科
申请(专利权)人:江苏中科梦兰电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1