更改包名称与applicationId之间的区别是什么

时间:2017-02-21 12:00:38

标签: android

将包名称与applicationId更改为最终的apk之间有什么区别。

我知道保留源代码的方面有所不同,但是我想说我得到了一些包名为a.b.c.d的应用程序。 构建的apk文件有什么区别

  1. 如果我将a.b.c.d重命名为q.w.e.r然后构建apk文件
  2. VS

    1. 使用q.w.e.r
    2. 将applicationId更改为gradle

2 个答案:

答案 0 :(得分:5)

包名称仅用于整理代码。

另一方面, applicationId 用于在Play商店中识别您的应用。只有在您计划基于相同代码生成另一个应用时,才会更改此项。

来自文档(https://developer.android.com/studio/build/application-id.html):

  

在Android Studio中创建新项目时,applicationId   与您在安装过程中选择的Java样式包名称完全匹配。   但是,应用程序ID和包名称各自独立   除此之外的其他。您可以更改代码的包名称(您的   代码名称空间)并且它不会影响应用程序ID,反之亦然   反之亦然(但同样,您不应该更改一次应用程序ID   你发布你的应用程序)。但是,更改包名称还有其他方法   您应该注意的后果,请参阅有关的部分   修改包名称。

答案 1 :(得分:0)

应用程序ID主要用于:

  • 更改测试的应用程序ID

  • 更改构建变体的应用程序ID

  

在这种情况下,每个构建变体应定义为单独的   产品风味。对于productFlavors {}块内的每个flavor,   您可以重新定义applicationId属性,或者您可以改为追加   使用applicationIdSuffix作为默认应用程序ID的段   如下所示:

     

每个Android应用都有一个看似Java的唯一应用ID   包名称,例如com.example.myapp。此ID唯一标识   您的应用在设备和Google Play商店中。如果你想上传   您的应用的新版本,应用程序ID(以及您的证书)   用它签名)必须与原始APK相同 - 如果你改变了   应用程序ID,Google Play商店将APK视为完全对待   不同的应用。因此,一旦您发布了应用程序,就不应该更改   应用程序ID。

包名是:

  

虽然您的项目的包名称与应用程序ID匹配   默认情况下,您可以更改它。但是,如果你想改变你的   包名称,请注意包名称(由您的定义   项目目录结构)应始终与package属性匹配   在AndroidManifest.xml文件中,如下所示:

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

  

1-它将此名称应用为应用程序生成的R.java的命名空间   类。

     

示例:使用上面的清单,R类将是   com.example.myapp.R。

     

2-它用它来解析任何相对的类名   在清单文件中声明。

     

示例:使用上述内容   清单,宣布为已解决的活动   com.example.myapp.MainActivity。

了解更多Source