首页> 中国专利> 基于Android的应用程序升级方法、系统及应用开发平台

基于Android的应用程序升级方法、系统及应用开发平台

摘要

本发明适用于通信技术领域,提供了一种基于Android的应用程序升级方法、系统及应用开发平台,所述方法包括:根据不同属性终端发布对应的差分包;终端下载并安装与本终端的属性匹配的差分包。本发明在对应用程序进行升级时,可迅速将应用程序对应不同属性终端的差分包子以发布,即可满足同一应用程序适应不同属性的终端,而不必进行不同版本的整个应用开发和发布。另一方面,终端只需下载并安装该差分包,即可实现对已安装的应用程序的升级,而无需下载和安装相关版本的整个应用程序。借此,本发明能够使Android应用程序的升级更为高效、便捷和低成本。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-31

    授权

    授权

  • 2011-07-20

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20101217

    实质审查的生效

  • 2011-06-01

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,尤其涉及一种基于Android的应用程序升级方法、系统及应用开发平台。

背景技术

Android平台是谷歌公司开发的基于Linux的开源终端操作系统。由于谷歌将Android平台免费提供给多家终端厂商,因此市面上存在若干款不同的Android兼容终端。随着Android平台的快速发展,终端之间的差异化会越来越大,而每一款终端都有着各自不同的属性,这些属性可以包括屏幕尺寸、内存容量、处理器速度、多语言支持以及屏幕分辨率等。

现有应用开发者在开发某款应用程序时,一般只会考虑硬件设备通用配置情况,并不会考虑不同终端的不同属性。而等应用程序发布之后,由于被使用不同属性的Android终端的用户广泛下载,容易发生该应用程序在很多终端不能运行或者运行效果差的问题,例如会出现窗口布局混乱、图片显示模糊等;从而造成用户的时间和流量浪费。于是为了迎合市场需求,应用开发者还得对应用程序进行相应升级,即为不同属性的终端开发不同版本的同一个应用程序,但这样会大大增加应用开发者的成本和负担。

综上可知,现有Android的应用程序升级技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。

发明内容

针对上述的缺陷,本发明的目的在于提供一种基于Android的应用程序升级方法、系统及应用开发平台,其能够使Android应用程序的升级更为高效、便捷和低成本。

为了实现上述目的,本发明提供一种基于Android的应用程序升级方法,所述方法包括如下步骤:

根据不同属性终端发布对应的差分包;

终端下载并安装与本终端的属性匹配的所述差分包。

根据本发明的应用程序升级方法,所述根据不同属性终端发布对应的差分包的步骤包括:

通过一差分包获取插件获取应用程序对应不同属性的终端的资源数据,根据所述资源数据生成对应不同属性终端的所述差分包;

发布所述差分包。

根据本发明的应用程序升级方法,所述发布差分包的步骤还包括:发布与所述差分包对应的一差分包升级插件;

所述终端下载并安装与本终端的属性匹配的所述差分包的步骤包括:

所述终端下载与本终端的属性匹配的差分包和差分包升级插件;

所述终端通过所述差分包升级插件将所述差分包与本终端已安装的所述应用程序进行整合编译。

根据本发明的应用程序升级方法,所述终端已安装的所述应用程序中内置有一差分包升级插件;

所述终端下载并安装与本终端的属性匹配的所述差分包的步骤包括:

所述终端通过所述差分包升级插件下载与本终端的属性匹配的差分包;

所述终端通过所述差分包升级插件将所述差分包与本终端已安装的所述应用程序进行整合编译。

根据本发明的应用程序升级方法,所述终端安装与本终端的属性匹配的所述差分包的步骤包括:

将所述终端已安装的应用程序中资源数据替换成所述差分包的资源数据;

对替换后的所述资源数据重新签名。

本发明还提供一种基于Android的应用程序升级系统,所述系统包括:

差分包发布模块,用于根据不同属性终端发布对应的差分包发布所述差分包,以供终端下载并安装与本终端的属性匹配的所述差分包。

根据本发明的应用程序升级系统,所述差分包发布模块进一步包括:

差分包获取子模块,用于差分包获取模块通过一差分包获取插件获取应用程序对应不同属性的终端的资源数据,并根据所述资源数据生成对应不同属性终端的所述差分包;

差分包发布子模块,用于发布所述差分包。

根据本发明的应用程序升级系统,所述差分包发布模块还用于发布与所述差分包对应的一差分包升级插件;

所述终端下载与本终端的属性匹配的差分包和差分包升级插件,并通过所述差分包升级插件将所述差分包与本终端已安装的所述应用程序进行整合编译。

根据本发明的应用程序升级系统,所述终端已安装的所述应用程序中内置有一差分包升级插件,所述终端通过所述差分包升级插件下载与本终端的属性匹配的差分包,并通过所述差分包升级插件将所述差分包与本终端已安装的所述应用程序进行整合编译。

本发明还提供一种包括上述基于Android的应用程序升级系统的应用开发平台。

本发明在对Android应用程序进行升级时,根据不同属性终端发布对应的差分包,优选是通过迅速获取该应用程序对应不同属性终端的资源数据,并将该资源数据生成差分包予以发布,即可满足同一应用程序适应不同属性的终端,而不必对不同属性的终端做不同版本的整个应用开发和发布,从而节省了应用开发者的时间、精力和成本。另一方面,用户通过终端下载并安装与本终端的属性匹配的差分包,即可实现对本终端已安装的应用程序的升级,而无需下载和安装相关版本的整个应用程序,从而使得用户升级应用程序更省时间、流量及费用。借此,本发明使得Android应用程序的升级更为高效、便捷和低成本。

附图说明

图1是本发明基于Android的应用程序升级系统的结构图;

图2是本发明基于Android的应用程序升级方法的流程图;

图3是本发明应用程序升级方法的第一实施例的流程图;

图4是本发明应用程序升级方法的第二实施例的流程图;

图5是本发明应用程序升级方法的第三实施例的流程图;

图6是本发明应用程序升级方法中下载差分包的流程实例图;

图7是本发明应用程序升级方法中查询差分包的流程实例图;以及

图8是本发明应用程序升级方法中安装差分包的流程实例图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

应用开发者在开发Android平台的应用程序时,每个要安装到Android平台的应用程序都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用程序的二进制代码、资源、配置文件等。APK文件其实是zip格式,但后缀名被修改为apk,在Android平台安装时,APK文件会被存放在系统默认的APP目录中。发布应用程序时发布一个.apk的文件,主要包括以下几部分内容:

AndroidManifest.xml:该文件是每个应用程序都必须定义和包含的,它描述了应用程序的名字、版本、权限、引用的库文件等等信息,

META-INF目录:用于存放的是签名信息,用来保证apk包的完整性和系统的安全。

res目录:用于存放资源文件。包括图片,字符串等等。

classes.dex文件:是java源码编译后生成的java字节码文件。

resources.arsc:是编译后的二进制资源文件。

通常一个应用程序在不同属性的终端上运行时,功能基本上都是相同的,影响的因素主要为资源文件的一些因素,如屏幕尺寸、图片大小、页面布局、多语言等,而这些信息都存放在res目录中。因此,如果应用开发者已经发布了一款应用程序,后续要发布升级包升级时,可以直接获取差异的资源数据,打包并生成差分包对外发布即可,而无须再对整个应用程序进行开发和发布。

图1示出了本发明提供的基于Android的应用程序升级系统的结构,所述系统10可以是设置于应用开发平台100的软件单元,硬件单元或软硬件结合单元,该系统10实施对象为应用开发者。所述系统10主要包括差分包发布模块11,用于根据不同属性终端200发布对应的差分包。用户通过终端200下载并安装与本终端200的属性匹配的差分包,即可实现对本终端200已安装的应用程序的升级,而无需下载和安装相关版本的整个应用程序,从而使得用户升级应用程序更省时间、流量及费用。所述终端200可以是手机、掌上电脑、PDA(Personal Digital Assistant,个人数字助理)等。

更好的是,差分包发布模块11可进一步包括差分包生成子模块111和差分包发布子模块112,其中:

差分包生成子模块111,用于在对Android应用程序进行升级时,通过一差分包获取插件获取应用程序对应不同属性的终端200的资源数据,并根据所述资源数据生成对应不同属性终端200的差分包。该差分包获取插件预置在应用开发平台100中,便于应用开发者调用。显然,差分包生成子模块111也可以不通过所述差分包获取插件获取对应不同属性的终端200的资源数据,而是由差分包生成子模块111直接获取所述资源数据,或者差分包生成子模块111通过其他技术手段获取所述资源数据。

差分包发布子模块112,用于发布差分包,以供终端200下载并安装与本终端200的属性匹配的差分包,即可满足同一应用程序适应不同属性的终端200,而不必对不同属性的终端200做不同版本的整个应用开发和发布,从而节省了应用开发者的时间、精力和成本。用户通过终端200下载并安装与本终端200的属性匹配的差分包,即可实现对本终端200已安装的应用程序的升级。

本发明一实施例中,差分包发布模块11不仅发布差分包,而且发布与差分包对应的一差分包升级插件。终端200下载与本终端200的属性匹配的差分包和差分包升级插件,并通过差分包升级插件将差分包与本终端200已安装的应用程序进行整合编译,以完成应用程序升级。

本发明另一实施例中,终端200已安装的应用程序中内置有一差分包升级插件,即该应用程序自身携带有差分包升级插件,终端200通过差分包升级插件下载与本终端200的属性匹配的差分包,并通过差分包升级插件将差分包与本终端200已安装的应用程序进行整合编译,以完成应用程序升级。

终端200安装所述差分包时,首先将终端200已安装的应用程序中资源数据替换成差分包的资源数据;然后,对替换后的资源数据重新签名,以保证应用完整性和系统的安全,防止非法篡改;最后,更新安装应用程序。

例如,当应用开发者在开发某个Android平台的应用程序时,刚开始为了抢占市场,应用程序只附带了分辨率为320*240,语言为中文的软件版本就放到应用网上商店里了,后续开发了分辨率为640*480和英文版的差分包,当一个外国用户下载此应用后,运行时应用程序会自动下载640*480和英文差分包即可,即可以做到应用程序自适应运行,而不必开发人员重新发布新应用程序,用户也不必下载新应用程序。

图2是本发明基于Android的应用程序升级方法的流程图,其可通过如图1所示的系统10实现。终端200最初下载某个应用程序时,只安装该应用程序的基本功能,未考虑终端200自身的属性,因此可能需要对该应用程序进行升级,所述升级方法主要包括如下步骤:

步骤S201,根据不同属性终端发布对应的差分包,本步骤由差分包发布模块11实现。该终端200的属性包括屏幕尺寸、图片大小、页面布局、多语言支持等。并且,可通过网络平台来组织和发布差分包,该网络平台可以是应用发布平台、网上商店等。优选地,通过应用开发平台100中预存的一差分包获取插件来迅速获取应用程序对应不同属性的终端200的资源数据,并根据资源数据生成差分包予以发布。

步骤S202,终端200下载并安装与本终端200的属性匹配的差分包。

图3是本发明应用程序升级方法的第一实施例的流程图,其可通过如图1所示的系统10实现,具体包括步骤如下:

步骤S301,通过一差分包获取插件获取应用程序对应不同属性的终端200的资源数据,并根据资源数据生成对应不同属性终端200的差分包,本步骤由差分包生成子模块111实现。所述差分包获取插件可由应用开发者、应用开发平台100的开发者或者第三方开发,并且差分包获取插件被应用开发者所用。差分包获取插件的功能为形成差分包的原始资源数据,但其自身不具备相关信息。

步骤S302,发布所述差分包,每一个差分包对应不同属性的终端200,本步骤由差分包发布子模块112实现。

步骤S303,终端200下载并安装与本终端200的属性匹配的差分包。

图4是本发明应用程序升级方法的第二实施例的流程图,本实施例中不仅发布差分包,而且发布于该差分包对应的一差分包升级插件,所述应用程序升级方法包括步骤如下:

步骤S401,通过差分包获取插件获取应用程序对应不同属性的终端200的资源数据,并将之生成差分包,本步骤由差分包生成子模块111实现。需指出的是,在提取所述差分包前,应用程序应该在应用开发平台100本地经过编译,差分包的内容主要为应用开发者修改过的资源数据,但不包括源代码中的文件。

步骤S402,发布差分包及其对应的差分包升级插件,本步骤由差分包发布子模块112实现。这里,差分包升级插件由应用开发者在应用开发平台100上另行开发而成。该差分包升级插件也可单独进行下载,适用于每个应用程序的升级。

步骤S403,终端200下载与本终端200的属性匹配的差分包和差分包升级插件。

步骤S404,终端200通过差分包升级插件将差分包与本终端200已安装的应用程序进行整合编译,即将终端200已安装的应用程序中的旧文件用差分包中的新文件替换,替换后再进行签名处理,以实现应用程序的升级。

图5是本发明应用程序升级方法的第三实施例的流程图,本实施例中终端200已安装的应用程序中内置有一差分包升级插件,所述应用程序升级方法包括步骤如下:

步骤S501,获取应用程序对应不同属性终端200的资源数据,并将资源数据生成差分包,本步骤由差分包生成子模块111实现。

步骤S502,发布差分包,本步骤由差分包发布子模块112实现。

步骤S503,终端200通过应用程序内置的差分包升级插件下载与本终端200的属性匹配的差分包。所述差分包升级插件可通过网络检测是否有新的差分包升级版本;或者发现下载的应用程序与本终端200不能兼容时,自动查看是否有匹配的的差分包。

步骤S504,终端200通过差分包升级插件将差分包与本终端200已安装的应用程序进行整合编译,以实现应用程序的升级。

图6是本发明应用程序升级方法中下载差分包的流程实例图,其为上述第二实施例中终端200下载差分包的优选方法,所述下载差分包方法包括步骤有:

步骤S601,终端200获得本终端200的属性,可以通过应用程序内置的差分包升级插件来检测应用环境,进而获得本终端200的属性。终端200的属性包括控制方式、软件语言、屏幕大小等,例如下面表1所示:

表1  终端属性表

  属性名称  属性值  控制方式  触摸屏

  软件语言  中文  屏幕大小  3.2  屏幕像素  320x240  屏幕色彩  65535  内存限制  1G  ……  ……

步骤S602,从网络查询是否有与本终端200的属性匹配的差分包,若有则执行步骤S603,否则执行步骤S604。应用程序内置的差分包升级插件依据终端200自身的属性,在应用发布平台等网络平台寻找相匹配的差分包。

步骤S603,下载匹配的差分包。如果找到与本终端200属性匹配的差分包,则启动下载,将差分包下载到终端200本地。

步骤S604,提示用户无匹配的差分包。如果没有找到适合本终端200属性的差分包,则终端200告知用户没有查询到匹配的差分包,因而无法升级。

图7是本发明应用程序升级方法中查询差分包的流程实例图,其为上述第二实施例中查询比较差分包的优选方法,包括步骤如下:

步骤S701,比较新旧版本编译后res目录下文件。

步骤S702,判断是否有新文件,若有则执行步骤S706,否则执行步骤S703。

步骤S703,判断文件大小是否相同,若相同则执行步骤S704,否则执行步骤S706。

步骤S704,判断文件修改时间是否相同,若相同则执行步骤S705,否则执行步骤S706。

步骤S705,比较文件内容是否相同,若相同则结束,否则执行步骤S706。

步骤S706,将新版本的文件放到差分包文件夹中。

图8是本发明应用程序升级方法中安装差分包的流程实例图,差分包被下载到终端200本地以后,可点击安装,该安装方法包括如下步骤:

步骤S801,将终端200已安装的应用程序中资源数据替换成差分包的资源数据,也就是将应用程序的res目录中的保存的原资源数据,更新替换成差分包中的资源数据。

步骤S802,对替换后的资源数据重新签名。由于Android平台所允许的应用程序更新只有两种方式,一是重新安装,二是对修改内容重新签名,所以需要删除之前签名的res文件夹,进行重新签名,重新签名用以保证应用完整性和系统的安全。

步骤S803,更新安装应用程序。需指出的是,此处更新安装应用程序并非是指将应用程序整个重新安装,而是类似在注册表修改相关内容的更新动作。实际上,本步骤也可以省略。

综上所述,本发明在对Android应用程序进行升级时,根据不同属性终端发布对应的差分包,优选是通过迅速获取该应用程序对应不同属性终端的资源数据,并将该资源数据生成差分包予以发布,即可满足同一应用程序适应不同属性的终端,而不必对不同属性的终端做不同版本的整个应用开发和发布,从而节省了应用开发者的时间、精力和成本。另一方面,用户通过终端下载并安装与本终端的属性匹配的差分包,即可实现对本终端已安装的应用程序的升级,而无需下载和安装相关版本的整个应用程序,从而使得用户升级应用程序更省时间、流量及费用。借此,本发明使得Android应用程序的升级更为高效、便捷和低成本。

当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号