Android Studioマルチチャネルパッケージとパッケージ化時にパッケージ名を設定
4378 ワード
Android Studioを使用してマルチチャネルパッケージを行うのは超簡単で、くだらないことは言わないで、2つのステップ:
2つのパッケージ:
方法1:
1、リストファイルAndroidManifest.xmlに次のバンドを追加
AndroidManifestでxmlファイルにアプリケーションを追加するには:
これは、友盟統計を使用する場合のコードの例であり、meta-dataのnameは、実際のニーズに応じて自分で修正することができます.
2、build.gradleによる構成
在 build.gradleファイルにandroidの下に追加:
この2つのステップの構成を行えば、マルチチャネルパッケージが実現され、非常に簡単です.上は3つしか配置されていませんが、より多くのシミュレーションを構成したい場合は、対応するチャネルを追加すればいいです.
方式2:
1、リストファイルAndroidManifest.xmlに次のバンドを追加
AndroidManifestでxmlファイルにアプリケーションを追加するには:
これは、友盟統計を使用する場合のコードの例であり、meta-dataのnameは、実際のニーズに応じて自分で修正することができます.
2、build.gradleによる構成
在 build.gradleファイルにandroidの下に追加:
このように構成することで、マルチチャネルパッケージングも実現できます.
パッケージ名の設定
在 build.gradleファイルのandroidのbuildTypeのreleaseの下に追加:
コードが多くなくて、簡単で、説明しないで、そのまま使えばOKです.
完全なコード:
最後に
梱包の際に該当するルートを選べばいいです.
プロファイルについて簡単に説明します.
もし以上の内容が間違っていたら、すぐに指摘して、一緒に勉強して、一緒に進歩してください.
2つのパッケージ:
方法1:
1、リストファイルAndroidManifest.xmlに次のバンドを追加
AndroidManifestでxmlファイルにアプリケーションを追加するには:
これは、友盟統計を使用する場合のコードの例であり、meta-dataのnameは、実際のニーズに応じて自分で修正することができます.
2、build.gradleによる構成
在 build.gradleファイルにandroidの下に追加:
android {
........
productFlavors {
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}
c360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
}
}
}
この2つのステップの構成を行えば、マルチチャネルパッケージが実現され、非常に簡単です.上は3つしか配置されていませんが、より多くのシミュレーションを構成したい場合は、対応するチャネルを追加すればいいです.
方式2:
1、リストファイルAndroidManifest.xmlに次のバンドを追加
AndroidManifestでxmlファイルにアプリケーションを追加するには:
これは、友盟統計を使用する場合のコードの例であり、meta-dataのnameは、実際のニーズに応じて自分で修正することができます.
2、build.gradleによる構成
在 build.gradleファイルにandroidの下に追加:
android {
........
productFlavors {
wandoujia {}
baidu {}
c360 {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [NAME_VALUE : name]
}
}
このように構成することで、マルチチャネルパッケージングも実現できます.
パッケージ名の設定
在 build.gradleファイルのandroidのbuildTypeのreleaseの下に追加:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk boohee_v1.0_2015-01-15_wandoujia.apk
def fileName = "myApk_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
コードが多くなくて、簡単で、説明しないで、そのまま使えばOKです.
完全なコード:
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
applicationId "com.cfox.gradlemodel"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk boohee_v1.0_2015-01-15_wandoujia.apk
def fileName = "myApk_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
productFlavors {
wandoujia {}
baidu {}
xiaomi {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [NAME_VALUE : name]
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
最後に
梱包の際に該当するルートを選べばいいです.
プロファイルについて簡単に説明します.
meta-data
のandroid:value="${UMENG_CHANNEL_VALUE}"
のうち${UMENG_CHANNEL_VALUE}はワイルドカードでbuild.gradleファイルのmanifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
のUMENG_CHANNEL_VALUE対応.もし以上の内容が間違っていたら、すぐに指摘して、一緒に勉強して、一緒に進歩してください.