Android applicationId&package name的区别

服务器压力过大解决办法是什么?一般都是添加服务器-分流,负载均衡,但是数据共享设置有问题,请求转发的乱七八糟一直解决不了怎么办?

客户新提出的解决办法,无语、咋舌。

每一台服务器地址给我打个包,直接按包分流。

我当时就mengbi了。五台服务器那我岂不是要改五次包名?(这个应用场景还是有的,比如一样的内容只是换了个外壳)

等等 项目app下的 applicationid 可不可以改一下就好?

1.applicationid 是什么?

androd官方技术文档《ApplicationId vs PackageName》,
原文地址:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename

只能说Google 真nima6666,找到这个网页还没看

 This site uses cookies to store your preferences for site-specific language and display options.

直接翻译成中文了。
地址如下:https://developer.android.com/studio/build/application-id.html

每个 Android 应用均有一个唯一的应用 ID,像 Java 软件包名称一样,如com.example.myapp。 此 ID 可以在设备上和 Google Play 商店中对您的应用进行唯一标识。 如果您想要上传新版本的应用,应用 ID(以及使用它签署的证书)必须与原始 APK 相同 – 如果您更改应用 ID,Google Play 商店会将 APK 视为完全不同的应用。所以您发布应用后,绝不应更改应用 ID

2 PackageName又是什么?

默认情况下,您项目的软件包名称会匹配应用 ID,但您也可以更改软件包名称。 不过,如果您想要更改软件包名称,请注意软件包名称(由您的项目目录结构定义)应始终匹配 AndroidManifest.xml 文件中的 package 属性,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0" >

在Eclipse开发项目中是没有applicationId这个概念的,Elcipse中applicationId即等同于package name,也就是我们清单文件中声明的package, 是作为一个应用的唯一标识。
但是在android studio中将这两个概念进行了隔离,我们可以在gradle文件中配置applicationId作为应用的唯一标识。
那么打多个包不用改包名改applicationid 就可以了。

3 能不能一次性写好,想打那个包就打那个包?
当然可以。

当您为应用构建 APK 时,构建工具会使用 build.gradle
文件的 defaultConfig
块中定义的应用 ID 标记 APK(如下所示)。不过,如果您想要创建不同版本的应用以在 Google Play 商店上显示为单独详情,如“免费版”和“专业版”,您需要创建单独的构建变体,每个构建变体具有不同的应用 ID。
这种情况下,每个构建变体应定义为单独的产品风味。 对于 productFlavors {}
块中的每种风味,您可以重新定义 applicationId
属性,或者改用applicationIdSuffix
在默认的应用 ID 上追加一段,如下所示:

android {    
      defaultConfig {   
      applicationId "com.example.myapp"    } 
      productFlavors {       
                     free {            applicationIdSuffix ".free"        }
                      pro {            applicationIdSuffix ".pro"        }
             }
     }

google 还有提示很有必要看一下:

注意:对于与之前的 SDK 工具的兼容性,如果您不在 build.gradle
文件中定义 applicationId
属性,构建工具会将 AndroidManifest.xml
文件中的软件包名称用作应用 ID。这种情况下,重构您的软件包名称也会更改您的应用 ID。
提示:如果您需要在清单文件中引用应用 ID,可以在任何清单属性中使用 ${applicationId}
占位符。构建时,Gradle 会将此标记替换为实际的应用 ID。 如需了解详细信息,请参阅将构建变量注入清单
重要:尽管清单 package 和 Gradle applicationId 可以具有不同的名称,但构建工具会在构建结束时将应用 ID 复制到 APK 的最终清单文件中。所以,如果您在构建后检查 AndroidManifest.xml 文件,package 属性发生更改就不足为奇。实际上,Google Play 商店和 Android 平台会注意 package 属性来标识您的应用;所以构建利用原始值后(用作 R 类的命名空间并解析清单类名称),它将会舍弃此值并将其替换为应用 ID。

    原文作者:silencefun
    原文地址: https://www.jianshu.com/p/fe8ac965d720
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞