android应用程序版本管理

2023-11-18

一、版本的主要功能说明

在应用程序的升级、维护策略中,版本是一个关键的组成部分,主要体现在以下几个方面中:

1、用户需要了解在他们的设备上所安装的应用程序的版本的特定信息,以及已安装程序的升级版本可用的情况;

2、其他应用程序(作为同一个套件中发布的其他应用程序)需要从系统中查询你的应用程序的版本号,来确认兼容性或者确认两者之间的依赖情况;

二、Android系统中提供的对程序的版本管理说明

Android系统本身并不检查应用程序版本信息,比如在升级、兼容性等等上不作强制限制,而是由用户或应用程序自身负责对版本做限制。

Android系统根据其manifest文件中minSdkVersion属性进行版本兼容性检查。这允许一个应用程序指定兼容的最小系统API版本。

例如设置应用程序版本号,需要在应用程序的manifest文件中定义应用程序版本信息。其中有两个必须同时定义的属性:

第一个:android:versionCode其值为整型,表示应用程序代码的版本,因此其他应用程序可以在程序编码中判断它来检查升级或降级关系。这个属性可以设置任何值,只要确保每一个后续发布的应用程序使用更大的值。每个后续版本使用增加的数字值是标准作法。典型的做法是你发布的第一个版本的versionCode为1,以后的每个发布版本单调递增,而不管这个发布版本是否是一个主要或者次要的发布版本。这也表明android:versionCode 值没有必要与用户可见的应用程序发布版本号有特别的相似之处,同时应用程序也没有必要将此版本值呈现给用户。

第二个:android:versionName其值为字符串,主要向用户显示应用程序代码的发布版本号。 此值是一个字符串,因此可以用任何其他类型的绝对或相对版本号标识的形式。相对于 android:versionCode,除了让应用程序向用户显示它以外,系统的其他地方没有用到此值。 

应用发布平台可能会将android:versionName 值解析出来显示给用户, 可以在manifest文件的<manifest>元素中同时定义这些个版本相关属性。

例如下形式:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 

package="com.example.package.name" 
        android:versionCode="2"
        android:versionName="1.1"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        ... 
    </application> 
</manifest>

上述代码说明: android:versionCode 值显示当前的.apk包含了应用程序代码的第二个发布版本,android:versionName字符串表现的是一个小的后继发布版本。

注:参考文章来源

一、版本的主要功能说明

在应用程序的升级、维护策略中,版本是一个关键的组成部分,主要体现在以下几个方面中:

1、用户需要了解在他们的设备上所安装的应用程序的版本的特定信息,以及已安装程序的升级版本可用的情况;

2、其他应用程序(作为同一个套件中发布的其他应用程序)需要从系统中查询你的应用程序的版本号,来确认兼容性或者确认两者之间的依赖情况;

3、后期开发中便于开发人员对版本的一个控制管理。

二、Android系统中提供的对程序的版本管理说明

Android系统本身并不检查应用程序版本信息,比如在升级、兼容性等等上不作强制限制,而是由用户或应用程序自身负责对版本做限制。

Android系统根据其manifest文件中minSdkVersion属性进行版本兼容性检查。这允许一个应用程序指定兼容的最小系统API版本。

例如设置应用程序版本号,需要在应用程序的manifest文件中定义应用程序版本信息。其中有两个必须同时定义的属性:

第一个:android:versionCode其值为整型,表示应用程序代码的版本,因此其他应用程序可以在程序编码中判断它来检查升级或降级关系。这个属性可以设置任何值,只要确保每一个后续发布的应用程序使用更大的值。每个后续版本使用增加的数字值是标准作法。典型的做法是你发布的第一个版本的versionCode为1,以后的每个发布版本单调递增,而不管这个发布版本是否是一个主要或者次要的发布版本(说明:我们当前采用的既是此方式)。这也表明android:versionCode 值没有必要与用户可见的应用程序发布版本号有特别的相似之处,同时应用程序也没有必要将此版本值呈现给用户。

第二个:android:versionName其值为字符串,主要向用户显示应用程序代码的发布版本号。 此值是一个字符串,因此可以用任何其他类型的绝对或相对版本号标识的形式。相对于 android:versionCode,除了让应用程序向用户显示它以外,系统的其他地方没有用到此值。 

应用发布平台可能会将android:versionName 值解析出来显示给用户, 可以在manifest文件的<manifest>元素中同时定义这些个版本相关属性。

例如下形式:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 

package="com.example.package.name" 
        android:versionCode="2"
        android:versionName="1.1"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        ... 
    </application> 
</manifest>

上述代码说明: android:versionCode 值显示当前的.apk包含了应用程序代码的第二个发布版本,android:versionName字符串表现的是一个小的后继发布版本。

注:参考文章来源http://blog.csdn.net/kjianjun/article/details/6905723

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android应用程序版本管理 的相关文章

随机推荐

  • QT开发之对话框相关

    1 回车键和ESC按键会关闭对话框的问题 头文件 include
  • DataFrame的索引(一)

    1 选择列 import pandas as pd import numpy as np from pandas import Series DataFrame df DataFrame np random rand 12 reshape
  • 简历中尽量不要出现精通_“熟练”“精通”,这些词在简历中要慎用

    很多求职者在描述自己的技能特长的时候 简历中都会出现这样的描述 熟练操作XX软件 或者 掌握Word Excel PPT等运用 更有的人会用 精通 这样的词 但这样的描述在HR看来 就属于夸大其词 弄虚作假了 熟练操作 等于你不仅仅能够自由
  • html的textarea标签的文本显示,文本框样式简单设置

    html的textarea标签的文本显示 文本框样式简单设置 后端传递数据如何在textarea标签的文本框内显示 如下
  • 法律信息爬虫:Python爬虫获取法律文件和法规信息

    目录 第一部分 选择目标网站 第二部分 分析网站结构和查询方式
  • 静态分析分析

    软件静态分析概念 静态分析通常是指不执行程序代码而寻找代码中可能存在的错误或评估程序代码的过程 被测对象是各种不软件相关的有必要测试的产物 如文档 源代码等 通过扫描程序正文对程序的数据流和控制流等进行分析 找出系统的缺陷 得出测试报告 不
  • 网络安全实验室CTF练习部分题目(持续更新)

    1 脚本关 微笑一下 过关地址 http lab1 xseclab com base13 ead1b12e47ec7cc5390303831b779d47 index php 查看源代码 include flag php smile 1 i
  • webpack 5 模块联邦实现微前端疑难问题解决

    webpack 5 模块联邦实现微前端疑难问题解决 说明 webpack 5 新增 Module Federation 模块联邦 功能 他可以帮助将多个独立的构建组成一个应用程序 不同的构建可以独立的开发与部署 借助模块联邦我们可以一定程度
  • 什么是思维导图?6 个开源免费的思维导图软件

    目录 15款思维导图工具推荐 什么是思维导图 6 个开源免费的思维导图软件 当前推荐 Freeplane 离线应用 有免安装版本 跨平台 目前 2023年 还在更新中 下载 https sourceforge net projects fr
  • 【CentOS7】-bash: ifconfig: 未找到命令

    安装完CentOS7并配置完网络之后 使用ifconfig命令进行测试出现以下情况 原因分析 缺少ifconfig组件 那么我们可以下载相关的网络组件来解决 yum install y net tools 一波未平 一波又起 出现了一下问题
  • 李飞飞深度学习与计算机视觉——KNN(KNearestNeighbor)

    之前为了熟悉机器学习的东西去搞kaggle的东西 然后就从Titanic入门咯 结果发现并没有对机器学习的东西有深入的理解 做数据挖掘的时候直接调用sklearn里面的框架 根本不用去想机器学习的公式的运用和基础的实现 想用SVM就直接fr
  • Object.defineProperty

    Object defineProperty Object defineProperty obj prop descriptor obj 要在其上定义属性的对象 prop 要定义或修改的属性的名称 descriptor 将被定义或修改的属性描
  • 登录界面测试用例设计

    登录界面测试用例设计 一 界面测试点 1 界面的设计风格是否与UI的设计风格统一 2 界面中的文字简洁易懂 3 界面中没有错别字 二 用户名与密码在输入时 要考虑 1 正确的用户名与正确的密码 2 正确的用户名与错误的密码 3 错误的用户名
  • 腾讯云前端面经

    腾讯云招聘一共四面 第一面是你以后的同事面试 主要考察基础知识 第二面是以后的直属领导 会考察基础原理 以及和职位的匹配度 三面是主管 考察项目等整体 四面为hr面试 一面 一面都比较基础 涉及js vue和网络安全 1 自我介绍 单纯的自
  • 如何使用Go Module代理

    简介 在我们使用Go Module时 golang org x中的文件因为撞墙无法下载 通过改变GOPROXY环境变量可以指定下载源 地址 https mirrors aliyun com goproxy 阿里云的代理仓 https gop
  • QT 帮助文档 使用方法

    我们使用 Qt 帮助文档 主要分为这么几步 1 类使用的相关介绍 2 查看所用部件 类 的相应成员函数 功能 参数 返回值 3 查看部件的信号 4 查看部件的事件 所对应的虚函数如何编写 1 类使用的相关介绍 光标移动到类名字的地方 接着按
  • python 爬虫调用 js 的库之 execjs

    python 爬虫调用 js 的库之 execjs 针对现在大部分的网站都是使用 js 加密 js 加载的 并不能直接抓取出来 这时候就不得不使用一些三方类库来执行 js 语句 1 安装 pip install PyExecJS 2 运行环
  • 你是否看到过如此有趣的AI网站?

    1 营销文案 CopyAI Create Marketing Copy In Seconds 2 美化ppt设计 https www beautiful ai 3 图片修改 https hotpot ai 4 照片变视频 https www
  • shell 多行注释详解

    在我们写 shell 脚本的时候 特别在调试的时候经常需要注释多行命令 但在每一行前输入 显得有些麻烦 基于 shell 命令的灵活性 我们可以使用下面的方法 方法一 这是比较稳妥的作法 可以采用 HERE DOCUMENT 特性 实现多行
  • android应用程序版本管理

    一 版本的主要功能说明 在应用程序的升级 维护策略中 版本是一个关键的组成部分 主要体现在以下几个方面中 1 用户需要了解在他们的设备上所安装的应用程序的版本的特定信息 以及已安装程序的升级版本可用的情况 2 其他应用程序 作为同一个套件中