`
xlover
  • 浏览: 240369 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

程序升级/维护过程中,版本控制

 
阅读更多

用户需要了解安装到设备上的应用程序的版本信息,以及了解哪些版本可以进行升级。其它应用程序——包括你发布的其它程序——需要向系统查询你的应用程序的版本,来确定相互之间的兼容性。 你的应用程序发布的服务可能也需要查询版本来显示给用户。

Android系统自身不检查应用程序的版本信息,也不会强制限制升级或兼容等。相反的,只是用户或应用程序自身对应用程序的版本有限制。

Android系统会对程序manifest中描述的系统版本(minSdkVersion特性指定)进行检查。这样,应用程序可以指定兼容的最低系统API等级。

应用程序版本设定

 

为了定义应用程序的版本信息,你需要在程序的manifest文件中进行设定。这里有两个特性,而且往往你需要同时设定这两个值:

android:versionCode——整数值,代表应用程序代码的相对版本,也就是版本更新过多少次。

整数值有利于其它程序比较,检查是升级还是降级。你可以把这个值设定为任何想设的值,但是,你必须保证后续更新版的值要比这个大。系统不会强制要求这一行为,但是随着版本更新值也增加是正常的行为。

一般来说,你发布的第一版程序的versionCode设定为1,然后每次发布都会相应增加,不管发布的内容是较大还是较小的。这意味着android:versionCode不像应用程序的发布版本(看下面的android:versionName)那样显示给用户。应用程序和发布的服务不应该显示这个版本值给用户。

android:versionName——字符串值,代表应用程序的版本信息,需要显示给用户。

与android:versionCode一样,系统不会为了任何内部的目的使用这个值,除了显示给用户外。发布的服务也需要提取这个值来显示给用户。

你需要在manifest文件中定义这两个版本特性。

下面是一个manifest的例子,展示了android:versionCode和android:versionName特性的定义。

<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.girlcoding.com"android:versionCode="2"android:versionName="1.1"><applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> ...</application></manifest>

在这个例子中,android:versionCode的值显示当前apk是第二版释放的代码,而android:codeName字符串中表述了相应的小版本号。

Android框架提供了一个API来查询应用程序的版本信息。为了获取版本信息,应用程序可以使用PackageManager的getPackageInfo(java.lang.String, int)方法,例如:

PackageManager manager = this.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
appVersion = info.versionName; // 版本名
catch (NameNotFoundException e)
 {
// TODO Auto-generated catch block
e.printStackTrace();
}

appVersion 就是从配置文件取出的版本名,versionCode同理

指定程序的系统API等级

如果你的程序有最低的Android平台限制,或者只是设计用于特定范围的Android平台,那么,你就可以在应用程序的manifest文件中指定API等级的信息。这样做是为了确保应用程序只能安装到搭载有兼容的Android系统的设备上。

指定API等级限制,在manifest文件中<uses-sdk>元素,并附带一个或多个特性:

android:minSdkVersion——应用程序能运行的最低Android系统的版本,通过平台的API等级标识指定。 android:targetSdkVersion——指定程序设计用于运行的API等级。在一些情况下,允许应用程序显式的指定目标运行的API等级,而不是仅设定最低运行的API等级。 android:maxSdkVersion——应用程序能运行的最高Android系统的版本,通过平台的API等级标识指定。重要:使用这个特性之前,请阅读<uses-sdk>文档。

当准备安装应用程序时,系统会检查这个属性的值并与系统的版本进行比较。如果android:minSdkVersion的值大于系统的版本,系统会放弃当前程序的安装。相似的,系统也只在android:maxSdkVersion与系统的版本兼容时才执行安装。

如果你没有在manifest中指定这些特性,那么,系统会假设你的程序与所有平台的版本兼容,且没有最高的API等级限制。

分享到:
评论

相关推荐

    android 版本控制方法

    在程序升级/维护过程中,版本控制是一个很重要的内容。 用户需要了解安装到设备上的应用程序的版本信息,以及了解哪些版本可以进行升级。其它应用程序——包括你发布的其它程序——需要向系统查询你的应用程序的...

    软件自动升级部署工具

    C/S 结构的特点是能充分发挥客户端的处理能力,很多工作可以由... 软件中提供的的接口以最简单的方式来对升级过程提供完全控制。 内置Pascal和Basic两种强大脚本功能,内置的类库可以满足脚本程序扩展的大部分需要。

    体系文件编写控制程序.doc

    三、特殊定义 3.1 体系文件:是指体系实施与运行中所形成,包括:L1管理手册、L2控制程序、L3指导 书(作业指导书,操作指导书, QC工程图等)、临时文件,及确保过程的有效策划、运行和控制所需的文件、L4 记录...

    基于CAPL的CAN控制器Bootloader上位机系统设计_蔡营

    摘要:为了减少因拆卸控制器而导致的维护成本增加,方便车载CAN控制器进行在线程序升级,在整车网络设 计时,要求所有的CAN控制器能够支持Bootloader程序刷写功能,通过诊断口即能完成程序刷写;Bootloader上位机 软件...

    煤矿安全监控分站远程升级方案

    该方案一方面可保障升级数据包的正确传送,另一方面可保证在升级中断时自动运行升级前的程序,从而保证了升级过程的安全性。大量测试表明,在低速率条件下,该方案可安全稳定地实现煤矿安全监控分站的远程升级。

    网吧维护技术资料 合集

    7482 网吧维护\资料\xp实用技巧\升级到Windows XP应该考虑的6个方面.txt 2586 网吧维护\资料\xp实用技巧\双剑合璧 在Win XP下刻录音乐CD.txt 455 网吧维护\资料\xp实用技巧\取消WinXP专业版中的保留的带宽.txt 6217 ...

    励磁控制系统设计仿真工具箱

    E-mail:zengerzheng@126.com.你所提供的信息只是为了统计、程序的升级、维护所用。更多信息请关注我的相关论文。 版权所有,引用请注明出处 [] 曾正.GUI toolbox version1.0.rar[EB/OL]....

    MySQL中文参考手册.chm

    &lt;br/&gt;4.16.1 从一个 3.22 版本升级到 3.23 &lt;br/&gt;4.16.2 从一个 3.21 版本升级到 3.22 &lt;br/&gt;4.16.3 从一个 3.20 版本升级到 3.21 &lt;br/&gt;4.16.4 升级到其他的体系结构 &lt;br/&gt;5 MySQL 与标准的兼容性?&lt;br/&gt;5.1 MySQL对...

    SqlPage1.2.6.5版本升级

    有时间我会升级 控件暂时不支持存储过程 现在发布的也只是个BATE版有BUG欢迎指正 邮箱:wensifww@163.com&lt;br&gt; QQ:24754991&lt;br&gt; QQ群:24604453 &lt;br&gt; 4版本升级 (1) SqlPage 1.0.1.0 版本:...

    软件生成期过程软件生成期过程软件生成期过程软件生成期过程

    软件生存周期)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,...

    佐尔表达式控件

    同时也实现了基本的程序控制逻辑:顺序、分枝和循环,这意味着应用程序可以将许多不稳定的业务需求从源程序内部实现改为表达式系统的外部实现,从而极大程度地提高系统的可维护性。 该系统使用DELPHI开发,提供运行...

    ThinkPad AHCI 驱动

    软盘中的文件时再次安装过程中复制。 14。按照指示完成操作系统的安装。 如果您没有软盘驱动器,可以安装英特尔矩阵存储 驱动程序管理器下面的替代程序(适用于其他 除RAID的SATA设置): 注意: 如果选择...

    中小型企业局域网的组建与维护.doc

    中小型企业局域网的组建与维护 【摘要】随着网络的逐步普及,局域网的建设走向信息化已成为必然选择,它不仅为 现代化企业信息管理、办公自动化等一系列应用提供基本操作平台而且能提供多种服务 。但在局域网的组建...

    软件工程知识点

    软件的维护过程,也就是修正软件错误,完善软件功能,由此使软件不断进化升级的过程,以使系统更加持久地满足用户的需要。因此,对软件的维护也可以看成为对软件的再一次开发。在这个时期,对软件的维护主要涉及三个...

    加强计算机软件设计可维护性的措施探究.docx

    2 影响软件设计中可维护性的因素 在对软件进行设计的时候,软件的可维护性可以简单的看做,某个投入应用的软件,依据现实需要应该做一些相应的修改及升级。当然不可以随便的更改,必须要对整个软件进行相应的了解,...

    IIS6.0 IIS,互联网信息服务

    步骤3 打开控制面板,单击“添加删除程序”图标,然后在窗口左侧导航栏上单击“添加/删除Windows组件”按钮,在打开的“Windows组件向导” 中,选中“Internet信息服务(IIS)”前的复选框。单击右下角的“详细信息”...

    《ASP.NET程序设计实用教程》配套资料-cd, ppt

     第2章 C#程序设计基础,介绍了C#语言的编译器、数据结构、控制语句及面向对象的编程特性。  第2部分 ASP.NET程序设计基础  第3章 服务器端控件,介绍了服务器端控件的基本概念、HTML服务器端控件、...

    综合电子设备管理系统的可维护性设计.doc

    1 注重可维护性的开发过程 综合电子设备管理系统分为五个子系统,包括ado.net驱动封装子系统[1]、webservice 接口子系统、管理配置网站、存储子系统(sql server2008数据库)和监控子系统(数据库网络协议分析与连接...

    软件业程序文件范例.doc

    "文件名 "软件业程序文件范例 " "电子文件... " "5.0支持性文件 " " 《产品需求合同评审》 " " 《文件控制程序》 " " 《监视和测量控制程序》 " " 《标识和可追溯性程序》 " " GB/T8566《软件生存周期过程》 " " GB/T16

    跟我学Java面向对象程序设计技术及应用——Java中的面向对象技术(第1部分).pdf

    1) 可维护性:以一种模块化组装的方式控制程序 2) 可升级性:可以轻松低耦合的,更换故障组件 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 3/21 页 3 杨教授工作室 ...

Global site tag (gtag.js) - Google Analytics