Android studioマルチチャネルパッケージ(超簡潔版)


本明細書の搬送先:http://www.cnblogs.com/0616--ataozhijia/p/4203997.html原作者の総括と分かち合いに感謝します.
友盟のチャネル統計を例にとると、チャネル情報は一般的に
AndroidManifest.xml
で変更できます.

まず君は
AndroidManifest.xmlのmeta-dataは、次のように変更されます.

${UMENG_CHANNEL_VALUE}の値はgradleで構成をカスタマイズした値です.
build.gradleファイルはproductFlavorsを利用してこう書きます.
productFlavors {
 
  
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
  
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}
  
c360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
}
  
uc {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
}
  
}

[UMENG_CHANNEL_VALUE:[wandoujia]]は${UMENG_CHANNEL_VALUE}に対応する値です.
最新の更新
その後、上の重複コードが多すぎることに気づき、ネット上でもっと簡潔な書き方を見つけました.
productFlavors {
  
wandoujia {}
baidu {}
c360 {}
uc {}
  
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
  
}

ここで、nameの値は、各productFlavorsに対応するオプション値に対して、チャネル値を自動的に置き換える目的を達成します.
このようにapkを生成する場合は、対応するFlavorsを選択して指定したチャネルのパケットを生成すればよい.また、生成したapkは自動的に対応するチャネルの接尾辞を付けてくれ、非常に便利で直感的である.検証を自分で逆コンパイルすることができます.
すべてのチャネルパッケージを一度に生成
Android studioの下部にコマンドラインツールTerminalがあり、開くとCMDが現在のプロジェクトのディレクトリに自動的に切り替わります.
あるプロジェクトの下にgraldewがあります.batこのファイルでは、このコマンドを入力できます.
gradlew assembleRelease
すべてのチャネルパッケージを一度に生成できます
しかし、私は一般的にこのコマンドを使用することをお勧めしません.gradlewというコマンドのgraldeのバージョンは制御できません.古いバージョンのgradleを不思議にダウンロードすることがあります.
個人的には以下の使い方をお勧めします.
まずgraldeのルートディレクトリを見つけ、システム変数に2つの環境変数を追加します.
変数名:GRADLE_HOME、変数値はgradleのルートディレクトリです.
変数の値はC:Usersyazhou.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55\gradle-2.1
システム変数にPATHにgradleを追加するbinディレクトリもあります
私のはC:Usersyazhou.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55\gradle-2.1\bin
ここで構成が完了し、Terminalでgradle assembleReleaseをタップすると、すべてのチャネルパッケージを一度に生成できます.
生成されたすべてのapkは、プロジェクトのbuildoutputsapkの下にあります.
単一チャネルのパッケージを生成したいだけなら?
Android StudioのGradle tasksパネル(右側のサイドバー)を開くと、下の図のようにモジュールに多くのタスクが追加されています.
Android studio 多渠道打包(超简洁版)_第1张图片
この場合、タスクを直接ダブルクリックして対応するapkを生成したり、コマンドラインで個別に生成したりすることができます.例えば、
gradle assembleWandoujiaRelease
マルチチャネルパッケージはこれからとても速いので、今日はここまで書いて、後でAndroid studioは相応のtipsがあってやはりみんなに分かち合います.
参照先:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger
http://www.cnblogs.com/shanpow/p/4097320.html
マルチチャネルパッケージングチュートリアルのブログ記事のようなもの:
http://blog.csdn.net/ljchlx/article/details/43059467
http://blog.csdn.net/maosidiaoxian/article/details/42000913