Android applicationId&packa

作者: silencefun | 来源:发表于2017-06-16 22:02 被阅读175次

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

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

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

    我当时就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。

    相关文章

      网友评论

        本文标题: Android applicationId&packa

        本文链接:https://www.haomeiwen.com/subject/ekmzfxtx.html