原文: https://howtodoinjava.com/android/android-manifest-specifying-android-app-and-sdk-versions/

在上一教程中,我们通过讨论默认情况下使用 Android 应用创建的项目结构,文件和文件夹,开始建立 android 知识库的基础。 让我们花更多的时间来理解一些我认为您必须事先知道的基本知识。

任何 Android 应用的基础都是项目根目录中的清单文件AndroidManifest.xml。 在这里,您可以声明应用内部的内容 - 活动,服务等。 您还将指出这些部分如何将它们附加到整个 Android 系统上; 例如,您指出哪些活动应显示在设备的主菜单(即启动器)上。

AndroidManifest.xml文件中,您将声明各种版本属性,您将在本简短教程中学习这些属性。

android 清单文件的根是“manifest”元素。 一个小清单如下所示:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="com.howtodoinjava.demoapp"
  3. android:versionCode="1"
  4. android:versionName="1.0" >
  5. <uses-sdk
  6. android:minSdkVersion="11"
  7. android:targetSdkVersion="18"
  8. android:maxSdkVersion="21"/>
  9. ...
  10. ...
  11. </manifest>

您需要在元素上提供的最大信息是package属性。 在这里,您可以提供将被视为应用“基础”的 Java 包的名称。 您的包是应用的唯一标识符。 一台设备只能安装一个带有给定包的应用,而 Play 商店只会列出一个带有给定包的项目。 我们已经详细讨论了在 Android 开发中使用的关键术语和概念

指定应用版本

Android 清单还指定了android:versionNameandroid:versionCode属性。 这些代表您的应用的版本。 android:versionName值是用户在其设置的“应用详细信息”屏幕中看到的版本指示符。 另外,如果您以这种方式分发应用,则 Play 商店列表会使用版本名称。 版本名称可以是您想要的任何字符串值。

另一方面,android:versionCode必须为整数,并且较新版本必须具有比旧版本更高的版本代码。 Android 和 Play 商店会将新.apk文件的版本代码与已安装.apk文件的版本代码进行比较,以确定新 APK 是否确实是更新。 通常的方法是将版本代码从 1 开始,并在应用的每个生产版本中都将其递增,尽管您可以根据需要选择其他约定。 在开发过程中,您可以不理会这些,但是当您投入生产时,这些属性将非常重要。

指定 SDK / API 版本

Android 清单还包含一个元素作为该元素的子元素,以指定您支持的 Android 版本。 您的元素最重要的属性是android:minSdkVersion。 这表示您正在与应用一起测试的最旧的 Android 版本。 该属性的值是代表 Android API 级别的整数。 因此,如果仅在 Android 2.1 和更高版本的 Android 上测试您的应用,则可以将android:minSdkVersion设置为 7。请注意,您的应用将无法安装在较旧的 android 设备上。

您还应该指定android:targetSdkVersion属性。 这表明您在编写代码时正在考虑的 Android 版本。 如果您的应用在更新版本的 Android 上运行,则 Android 可能会做一些事情来尝试针对更新的 Android 所做的更改来提高代码的兼容性。

通常,您不想要它,但是如果您不希望将您的应用安装在 API 级别大于一定数量的 android 设备上,则可以使用android:maxSdkVersion属性设置此限制。 在大多数情况下,您根本不需要此属性,因为 android SDK 始终向后兼容,并且可以确保几乎始终确保您的应用可以在将来的版本中运行而不会出现任何问题。

这是简短的 android 教程的全部内容,清单文件中包含与版本参数相关的信息。 在以后的讨论中,我们将讨论可从AndroidManifest.xml控制的其他概念/功能。

祝您学习愉快!