当我们在刚开始学习ANDROID的时候,可能不会过多的关注这个位于manifest.xml文件中的versionCode和versionName。

但是其实一个好的版本控制,对于我们有至关重要的作用。

版本控制对于发布新版本和开发中的版本维护有着关键性的作用,版本控制之所以重要的原因如下:

1.用户在安装APP的时候需要知道详细的版本信息,并且在对已有版本进行升级的时候,能否正确安装新版本都和版本控制有关。

比如:当手机中安装APP的versionCode=1,升级更新的版本号是2(versionCode=2),此时APP可以正常安装更新。反之,如果手机中当前APP版本号是2,升级的或者从其他渠道获取的同一APP的版本号为1,此时替换安装就会失败。

这种情况就是说,同一个APP低版本是不能直接覆盖安装手机中已存在的高版本应用(通过版本号(versionCode)来判断)。

这样就给我们在应用升级维护过程中,提高了软件的可维护性和安全性。

2.对于其他应用想要搜索或者调用指定版本号和版本名称的应用来说,有了可靠的保证。

当我们发布在市场上有多个版本的APP的时候,比如不同版本对应不同型号的终端,这时我们可以通过版本控制来找到适合的APP。

3.对于我们自己的版本更新系统或者第三方的APP市场,也通过版本号和版本名称来找到和用户终端设备或者终端应用相匹配的APP展示给用户。对于第三方APP市场来说,这个  版本更为关键的是,决定对用户下载下来之后的兼容性判断起到一定管控作用。

所以版本控制不能忽视,我们可以通过有效的版本控制来管控我们发布到市场的应用,以便得到更好的用户体验。

怎么去设置你的应用的版本号和版本名称,下面做一个简单的介绍。

VersionCode -------  根据上面的描述,版本号(versioncode)是相对比较重要的一个属性。versionCode是一个Integer类型的值。所以大家在设置的时候,不要将versionCode设置的太大,最好不要超过Integer的取值范围(当然一般也是不会超过的),一般大家在发布自己的第一个应用到市场的时候,版本取值为1(versionCode=1),这也是目前典型和普遍的做法。

然后,每次发布更新版本时可以递增versionCode的值。上面描述版本控制重要性时也描述过,一个新版本的应用的versionCode不能小于之前旧版本的versionCode值,否则进行替换更新升级时会出错,系统提示无法安装。当然,这也不是强制的,只是正式发布应用时,建议必须考虑的问题。

VersionName ------ 这是一个值为String类型的属性,一般和VersionCode成对出现。VersionCode是方便程序开发者运行和维护Application而设置的一个有效的值。versionName是一个版本的描述,给用户看的,也是用户放在各个第3方平台上提供给使用者看的一个版本名,可以说是对VersionCode的解释和描述。一般格式可以为:1.1.2(major.minor.point)的形式。

下面是一个Manifest.xml文件样例:

以上代码表示当前.apk是第二个版本,通过versionName值1.1可以看出此版本是在1.0版本上的一个优化改造版本,区别和1.0版本不大。

如果是一个UI风格或者业务逻辑有较大调整的应用,版本一般会升一个级别,比如应该定义为2.0

另:

以版本号为2.1.3为例来说,若版本号为2.1.5,则说明两个版本的内容相差不太大,大致就是在界面及一些性能方面做出调整及优化,若版本号为2.3.3,则说明两个版本的内容稍微有点改动,可能在程序中的一些判断及算法方面做出修改,若版本号为3.1.2,则说明两个版本的内容发生了很大的变动,比如在程序的逻辑处理程序方面做出调整添加新的功能等方面做出改动。总之,越是前面的数字改动说明软件的版本改动较大,后面的数字改动说明软件的变化没多大改动。

ANDROID版本号和版本名称的重要性介绍的更多相关文章

  1. ANDROID版本号号和版本号名称的重要性介绍

    转载请注明出处http://blog.csdn.net/y150481863/article/details/41249159,来自[http://blog.csdn.net/y150481863] ...

  2. aapt命令获取apk详细信息(包名、版本号、版本名称、兼容api级别、启动Activity等)

    1.安装SDK,使用SDK自带的aapt进行查看.aapt所在位置:D:\SDK\build-tools下,任一一个均可,如D:\SDK\build-tools\19.1.0 2.cmd命令下进入ap ...

  3. 获取应用版本号,版本名称,包名,AppName,图标,是否是系统应用,获取手机中所有应用,所有进程

    PackageManager packageManager = getPackageManager(); PackageInfo packageInfo; = packageManager.getPa ...

  4. Xamarin Android教程Android基本知识版本介绍与系统介绍

    Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...

  5. Android的API版本和名称对应关系

    Android版本名和API Level关系全称 Android的版本 Android版本名称Code name Android的API level Android 1.0 (API level 1) ...

  6. (到8.1为止)Android版本名称与内容

    版本名称 API 主要版本更新时间 Android 1.0 1 测试版本 Android 1.1 2 2008 年9月正式发布的Android第一版 Android 1.5    Cupcake(纸杯 ...

  7. Android开发之获取APP的应用程序名称以及版本名称信息java工具类

    //跟App相关的辅助类 public class AppUtils { private AppUtils() { /* cannot be instantiated */ throw new Uns ...

  8. Android Studio2.x版本无法自动关联源码的解决方法

    Android Studio2.x版本无法自动关联源码的解决方法 在学习android开发过程中,对于一个不熟悉的类,阅读源码是一个很好的学习方式,使用andorid studio开发工具的SDK M ...

  9. [0] C#软件项目版本号的命名规则及格式介绍

    版本控制比较普遍的 3 种命名格式 : 一.GNU 风格的版本号命名格式 : 主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]] 英文对照 : Major_Version_Number. ...

随机推荐

  1. python网络编程学习《一》

    最近,刚实习完,很喜欢实验楼,但是自己的方向仍然不能确定,自己觉得可选择的空间很大,尽管已经是大四的人了,想到别人都在忙着买职业装,买高跟鞋面试,学习化妆什么的,看看自己,反而开始慢慢关注运动,食疗以 ...

  2. 安装Ubuntu时的硬盘分区方案

    如果你准备在硬盘里只安装Ubuntu一个操作系统的话,建议你采用一个“/”.一个“swap”和一个“/home”的三分区方案:/ :10GB-15GB.swap:物理内存小于或等于 512MB,建议分 ...

  3. JS事件详解

    hello,我是沐晴,最近呢,来总结一下 JS中的常用的事件,希望我们都能一起查漏补缺. 焦点事件 焦点事件在表单中经常用到,那什么是焦点呢?比如我们文本框里面的有光标的时候,就是获得了焦点,我们就可 ...

  4. JavaScript中call,apply,bind方法的总结。

    why?call,apply,bind干什么的?为什么要学这个? 一般用来指定this的环境,在没有学之前,通常会有这些问题. var a = { user:"追梦子", fn:f ...

  5. 细数Javascript技术栈中的四种依赖注入

    作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道 ...

  6. 反射 实现不同模型相同属性赋值 第二集(automapper)

    前言: 两年前写过一个 反射实现不同模型相同属性赋值 只能简单的实现两个model 相同属性名,相同类型赋值 最近又遇到这个问题,需要对相同属性名或者指定属性名 不同类型(复杂对象,如:List< ...

  7. JavaScript 总结几个提高性能知识点

    前段时间花时间看了大半的<High Performance JavaScript>这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了.由于空不出时间,这个月写的学习笔记也不多,忙完最 ...

  8. JS 问题集锦

    [1]js页面跳转 和 js打开新窗口方法 第一种: <script language="javascript" type="text/javascript&quo ...

  9. 曼慧尼特u检验(两个样本数据间有无差异)

    曼-惠特尼U检验(Mann-Whitney检验) How the Mann-Whitney test works Mann-Whitney检验又叫做秩和检验,是比较没有配对的两个独立样本的非参数检验. ...

  10. js 技巧和细节

    1. if中的各种变量返回值 一个值为 true 或者 false 的表达式.如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则: 所有的对象都被当作 true ...