服務(wù)器壓力過大解決辦法是什么马靠?一般都是添加服務(wù)器-分流,負載均衡蔼两,但是數(shù)據(jù)共享設(shè)置有問題甩鳄,請求轉(zhuǎn)發(fā)的亂七八糟一直解決不了怎么辦?
客戶新提出的解決辦法额划,無語妙啃、咋舌。
每一臺服務(wù)器地址給我打個包俊戳,直接按包分流揖赴。
我當時就mengbi了。五臺服務(wù)器那我豈不是要改五次包名抑胎?(這個應(yīng)用場景還是有的燥滑,比如一樣的內(nèi)容只是換了個外殼)
等等 項目app下的 applicationid 可不可以改一下就好?
1.applicationid 是什么阿逃?
androd官方技術(shù)文檔《ApplicationId vs PackageName》铭拧,
原文地址:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
只能說Google 真nima6666,找到這個網(wǎng)頁還沒看
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 應(yīng)用均有一個唯一的應(yīng)用 ID,像 Java 軟件包名稱一樣焊虏,如com.example.myapp淡喜。 此 ID 可以在設(shè)備上和 Google Play 商店中對您的應(yīng)用進行唯一標識。 如果您想要上傳新版本的應(yīng)用诵闭,應(yīng)用 ID(以及使用它簽署的證書)必須與原始 APK 相同 - 如果您更改應(yīng)用 ID炼团,Google Play 商店會將 APK 視為完全不同的應(yīng)用。所以您發(fā)布應(yīng)用后疏尿,絕不應(yīng)更改應(yīng)用 ID瘟芝。
2 PackageName又是什么?
默認情況下褥琐,您項目的軟件包名稱會匹配應(yīng)用 ID锌俱,但您也可以更改軟件包名稱。 不過敌呈,如果您想要更改軟件包名稱贸宏,請注意軟件包名稱(由您的項目目錄結(jié)構(gòu)定義)應(yīng)始終匹配 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開發(fā)項目中是沒有applicationId這個概念的,Elcipse中applicationId即等同于package name吭练,也就是我們清單文件中聲明的package诫龙, 是作為一個應(yīng)用的唯一標識。
但是在android studio中將這兩個概念進行了隔離鲫咽,我們可以在gradle文件中配置applicationId作為應(yīng)用的唯一標識签赃。
那么打多個包不用改包名改applicationid 就可以了。
3 能不能一次性寫好分尸,想打那個包就打那個包?
當然可以锦聊。
當您為應(yīng)用構(gòu)建 APK 時,構(gòu)建工具會使用 build.gradle
文件的 defaultConfig
塊中定義的應(yīng)用 ID 標記 APK(如下所示)寓落。不過括丁,如果您想要創(chuàng)建不同版本的應(yīng)用以在 Google Play 商店上顯示為單獨詳情,如“免費版”和“專業(yè)版”伶选,您需要創(chuàng)建單獨的構(gòu)建變體史飞,每個構(gòu)建變體具有不同的應(yīng)用 ID。
這種情況下仰税,每個構(gòu)建變體應(yīng)定義為單獨的產(chǎn)品風(fēng)味构资。 對于 productFlavors {}
塊中的每種風(fēng)味,您可以重新定義 applicationId
屬性陨簇,或者改用applicationIdSuffix
在默認的應(yīng)用 ID 上追加一段吐绵,如下所示:
android {
defaultConfig {
applicationId "com.example.myapp" }
productFlavors {
free { applicationIdSuffix ".free" }
pro { applicationIdSuffix ".pro" }
}
}
google 還有提示很有必要看一下:
注意:對于與之前的 SDK 工具的兼容性,如果您不在 build.gradle
文件中定義 applicationId
屬性河绽,構(gòu)建工具會將 AndroidManifest.xml
文件中的軟件包名稱用作應(yīng)用 ID己单。這種情況下,重構(gòu)您的軟件包名稱也會更改您的應(yīng)用 ID耙饰。
提示:如果您需要在清單文件中引用應(yīng)用 ID纹笼,可以在任何清單屬性中使用 ${applicationId}
占位符。構(gòu)建時苟跪,Gradle 會將此標記替換為實際的應(yīng)用 ID廷痘。 如需了解詳細信息,請參閱將構(gòu)建變量注入清單件已。
重要:盡管清單 package 和 Gradle applicationId 可以具有不同的名稱笋额,但構(gòu)建工具會在構(gòu)建結(jié)束時將應(yīng)用 ID 復(fù)制到 APK 的最終清單文件中。所以篷扩,如果您在構(gòu)建后檢查 AndroidManifest.xml 文件兄猩,package 屬性發(fā)生更改就不足為奇。實際上,Google Play 商店和 Android 平臺會注意 package 屬性來標識您的應(yīng)用厦滤;所以構(gòu)建利用原始值后(用作 R 類的命名空間并解析清單類名稱)援岩,它將會舍棄此值并將其替換為應(yīng)用 ID。