转载请注明出处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. 关于Android导入开源项目:Error:Unable to load class 'org.gradle.api.publication.maven.internal.DefaultMavenFa

    在导入开源项目时,有可能会要求需要maven插件,并报出一下错误: 对于没有安装maven插件的开发者来说,要去下载一个maven插件也许不困难,但是,有时候可能会像我一样懒,不去下载插件,那么我们可 ...

  2. [置顶] kubernetes资源类型--pod和job

    pod Pod是K8S的最小操作单元,一个Pod可以由一个或多个容器组成:整个K8S系统都是围绕着Pod展开的,比如如何部署运行Pod.如何保证Pod的数量.如何访问Pod等. 特点 Pod是能够被创 ...

  3. ES6里关于函数的拓展(二)

    一.构造函数 Function构造函数是JS语法中很少被用到的一部分,通常我们用它来动态创建新的函数.这种构造函数接受字符串形式的参数,分别为函数参数及函数体 var add = new Functi ...

  4. 2017.7.1 mysql安装与启动(已验证可以使用)

    下载地址:http://learning.happymmall.com/ 之前一直用解压版安装,启动mysql服务的时候总是失败,这次用mysql installer安装一遍,终于成功启动. 1.下载 ...

  5. hdu4671 思维构造

    pid=4671">http://acm.hdu.edu.cn/showproblem.php? pid=4671 Problem Description Makomuno has N ...

  6. Android Tabhost置于底部

    方法一: <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id=&qu ...

  7. Visual Studio 2015 Update 1 安装到最后 KB3022398 错误解决方法

    最后一步遇到一个错误的确让人心寒 只是我们还是得一步步解决.别去卸载重装.太费时 首先打开 regedit 注冊表,依次进入: 1:HKEY_LOCAL_MACHINE\SOFTWARE\Micros ...

  8. 使用LBS(地理位置)

    一.使用之前的简单封装的OkHttpUtil http://www.cnblogs.com/itfenqing/p/6758909.html 二.关键代码: public class MainActi ...

  9. Restful风格的前后端分离

    1.概述 ResultFul推荐每个URL能操作具体的资源,而且能准确描述服务器对资源的处理动作,通常服务器对资源支持get/post/put/delete/等,用来实现资源的增删改查.前后端分离的话 ...

  10. 如何手动编译运行带包 java 程序

    带包的java程序比普通java程序的编译稍微复杂一些.例如下面的例子: package cn.guopeng; import java.util.*; public class hello { pu ...