1. 多渠道的概念 APP發佈到不同的應用平臺,監測用戶是從哪個平臺安裝的。 2. 為什麼要多渠道打包 統計用戶安裝APP來源 批量修改生成的apk文件名 可更改包名 生成不同應用名稱或圖標 3.多渠道配置 在AndroidManifest.xml的application標簽里添加一個meta-da ...
1. 多渠道的概念
- APP發佈到不同的應用平臺,監測用戶是從哪個平臺安裝的。
2. 為什麼要多渠道打包
- 統計用戶安裝APP來源
- 批量修改生成的apk文件名
- 可更改包名
- 生成不同應用名稱或圖標
3.多渠道配置
- 在AndroidManifest.xml的application標簽里添加一個meta-data標簽,定義MTA_CHANNEL占位符,如下
<meta-data android:name="MTA_CHANNEL" android:value="${MTA_CHANNEL_VALUE}" />
- 修改app下的build.gradle文件,並添加productFlavors屬性配置占位符
android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.aimerd.channel" minSdkVersion 11 targetSdkVersion 21 versionCode 1 versionName "1.0.0" multiDexEnabled true }
buildTypes {debug { minifyEnabled false debuggable true }
release { // 不顯示Log buildConfigField "boolean", "LOG_DEBUG", "false" //啟用混淆代碼的功能 minifyEnabled true //壓縮對齊生成的apk包 zipAlignEnabled true //指定混淆規則,需要壓縮優化的混淆要把proguard-android.txt換成proguard-android.txt proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //移除無用的資源文件 shrinkResources true //啟用multidex的支持 multiDexEnabled true } }
productFlavors uc { manifestPlaceholders = [MTA_CHANNEL_VALUE: "uc"] } _360 { manifestPlaceholders = [MTA_CHANNEL_VALUE: "360"] } baodu { manifestPlaceholders = [MTA_CHANNEL_VALUE: "baidu"] } xiaomi { manifestPlaceholders = [MTA_CHANNEL_VALUE: "xiaomi"] } } }dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.3.0' }
4.生成渠道包
- 在命令行輸入
gradlew assembleRelease
,表示生成所有Release包,生成的包在build\outputs\apk
目錄下
- 生成指定的包(uc|360|baidu|xiaomi),指定的版本(Release|Debug),右邊的
Gradle Project
可以幫到你
自此,打包完成