📜  Android 包名称与应用程序 ID

📅  最后修改于: 2022-05-13 01:58:44.607000             🧑  作者: Mango

Android 包名称与应用程序 ID

作为一名 Android 开发者,您应该知道为您的应用选择的 Package Name 非常重要。我们指的是我们在 Manifest.xml 中声明的应用程序的包名称,而不是Java包名称(尽管它们是相同的)。但是 Package Name 和 Application ID 是有区别的。在本文中,我们将看看两者之间的区别。

应用程序 ID

每个 Android 应用程序都有一个唯一的应用程序 ID,它看起来像一个Java包名称,例如com.example.myapplication 。此 ID 在 Google Play 商店中唯一标识您的应用。如果您要上传应用的新版本,则应用 ID(以及您用来签名的证书)必须与原始 APK 相同——如果您更改应用 ID,Google Play 商店会将 APK 视为完全不同的 APK应用程序。您的应用程序 ID 使用模块的 build.gradle 文件中的 applicationId 属性定义,如下所示:

Java
android {
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}


XML



applicationId 与您在 android studio 中的项目设置期间选择的 Java 样式的包名称完全匹配。但是,应用程序 ID 和包名称在此之后相互独立。您可以更改代码的包名称(您的代码命名空间),它不会影响应用程序 ID,反之亦然(但同样,一旦发布应用程序,您不应更改应用程序 ID)。但是,更改包名还有其他后果您应该知道,因此请参阅有关如何更改包名的部分。

应用程序 ID 的使用

对于大型项目,修改包名的成本太高,几乎不可取。并且往往一个项目会有不同的版本,比如付费版和免费版。这样就可以通过简单的修改app/build.gradle中的applicationId来改变最终apk的包名,使其成为安卓手机不同的app。同时不影响开发和编译时的代码一致性。

包裹名字

包名是在 Android 应用项目创建之初在 AndroidManifest.xml 中定义的。包名只是为了组织你的代码。虽然默认情况下您的项目的包名称与应用程序 ID 匹配,但您可以更改它。但是,如果您想更改包名称,请注意包名称(由项目目录结构定义)应始终与 AndroidManifest.xml 文件中的包属性匹配,如下所示。

XML



Android 构建工具将 package 属性用于两件事:

  • 它使用此名称作为应用程序生成的Java类的命名空间。
  • 它使用它来解析清单文件中声明的任何相关类名。

示例:使用上面的清单,声明为 的活动实际上将被解析为 com.example.myapplication.MainActivity。