多渠道打包
一 前言
應用市場:豌豆莢,應用寶,360,小米,華爲,百度等。多渠道打包的目的是爲了區分用戶從哪個應用市場下載的apk,爲產品的運營和推廣提供數據支持。
二 AndroidManifest.xml配置
在AndroidManifest.xml的application標籤內聲明:
<meta-data android:name="CHANNEL" android:value="${CHANNEL_VALUE}" />
三 在模塊下的build.gradle中的android標籤內聲明
android {
........
productFlavors {
wandojia { manifestPlaceholders = [CHANNEL_VALUE: "wandojia"]}
baidu { manifestPlaceholders = [CHANNEL_VALUE: "baidu"]}
c360 { manifestPlaceholders = [CHANNEL_VALUE: "c360"]}
tencent { manifestPlaceholders = [CHANNEL_VALUE: "tencent"]}
}
}
四 獲取簽名
public void getChannel() {
PackageManager packageManager = getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
Bundle metaData = packageInfo.applicationInfo.metaData;
String channel = metaData.getString("CHANNEL");
Log.d(TAG, "getChannel: " + channel);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
五 尾言
本文如有錯誤或不當之處,歡迎讀者留言斧正,互相交流學習,博主不勝感激.聯繫郵箱[email protected]