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

当我们在刚開始学习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文件例子:


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveTE1MDQ4MTg2Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

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

假设是一个UI风格或者业务逻辑有较大调整的应用,版本号通常会升一个级别,比方应该定义为2.0







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

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

    aapt命令获取apk具体信息(包名.版本号号.版本号名称.兼容api级别.启动Activity等) 第一步:找到aapt 找到sdk的根文件夹,然后找到build-tools文件夹.然后会看到一些b ...

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

    当我们在刚开始学习ANDROID的时候,可能不会过多的关注这个位于manifest.xml文件中的versionCode和versionName. 但是其实一个好的版本控制,对于我们有至关重要的作用. ...

  3. android获取当前软件版本号号和版本号名称

    <span style="font-size:18px;">/** * 获取本地软件版本号 */ public static int getLocalVersion(C ...

  4. 使用Android Studio 1.3 版本号进行NDK开发

    众所周知Android Studio 1.3 版本号新增了NDK支持,能够非常方便的在上面开发C++或者C代码了,但是预览版功能不是非常完好,须要非常多步骤,另一些奇怪的BUG,整了半天最终能够使用A ...

  5. android studio 更新Gradle版本号方法

    在导入其它项目时,常常因为gradle版本号不一致而导致不能编译 解决方法: 第一步: 按提示点击让它下载.事实上目的并非要它下载.因为这样速度会非常慢.这样做仅仅是为了让它在本地创建相应的文件夹结构 ...

  6. VS 生成 dll、exe 版本号与SVN版本号一致

    1.VS 可自动生成版本号 注释掉以下两行代码 [assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersi ...

  7. 好纠结啊,JeeWx商业版本号和开源版本号有什么差别呢?

    好纠结啊,JeeWx商业版本号和开源版本号有什么差别呢? JeeWx开源版本号是一套基础微信开发平台.有基础的微信菜单.素材管理.微信对接等基础功能,适合于开发人员学习研究. JeeWx商业版本号是一 ...

  8. 在VS项目中通过GIT生成版本号作为编译版本号

    上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...

  9. RedHat/CentOS发行版本号及内核版本号对照表

    RedHat/CentOS发行版本号及内核版本号对照表 : Redhat 9.0———————————————2.4.20-8RHEL 3 Update 8————————————2.4.21-47R ...

随机推荐

  1. 基本数据类型,包装类型,String类型数据之间的转换

    java中所有的类都从java.lang.Object类派生而来,在java语言中,除基本数据类型以外,基本数据类型有java类库体统了包装类:Integer类保存整形变量,Boolean类保存布尔变 ...

  2. 删除windows服务命令

    打开命令框:输入sc delete 服务名 例如删除elasticsearch-service-x64服务 sc delete elasticsearch-service-x64

  3. Android - 标准VideoView播放演示样例

    标准VideoView播放演示样例 本文地址: http://blog.csdn.net/caroline_wendy 在Android SDK中的ApiDemos内, 提供标准播放视频的代码,使用V ...

  4. linux:ping不通www.baidu.com

    如果某台Linux服务器ping不通域名, 如下提示: [root@localhost ~]# ping www.baidu.com ping: unknown host www.baidu.com ...

  5. Neon Intrinsics各函数介绍

    #ifndef __ARM_NEON__ #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) t ...

  6. es6 - array for-chrome

    // 去重复 Array.from(new Set([1, 1, 2, 3])); // [1, 2, 3] console.log(Array.from(new Set([1, 1, 2, 3])) ...

  7. 100多道经典的JAVA面试题及答案解析

    面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...

  8. Java + Selenium + Appium手机自动化测试

    一.启动测试机或者Android模拟器(Genymotion俗称世界上最快的模拟器,可自行百度安装) 二.启动Appium(Appium环境安装可自行百度) 三.安装应用到Genymotion上,如下 ...

  9. javax.mail Java Extension(扩展)

    http://baike.baidu.com/view/616724.htm JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便 ...

  10. UICollectionView的header悬停

    UICollectionView的header悬停,继承UICollectionViewFlowLayout,重写相关方法 // // StickyHeaderLayout.h // Wombat / ...