Android多渠道打包

概念:

  • 發布到不同渠道的app,使用不同的標記來標識,以便于統計數據

原理:

  1. 為apk打標記(渠道的標識)
  1. 運行apk的時候取出標記
  2. 上傳標記給服務器統計

具體實現(以友盟為例)

  1. 使用Gradle進行多渠道打包
  • 在配置文件配置meta-data標簽
<meta-data
           android:name="UMENG_CHANNEL"
           android:value="${UMENG_CHANNEL_VALUE}"/>
  • 在app目錄下build.gradle配置
   signingConfigs {
       config {
           keyAlias 'key別名'
           keyPassword 'key密碼'
           storeFile file('../app/sobig.jks')
           storePassword 'jks密碼'
       }
   }
  defaultConfig {
    applicationId "com.saipeisi.sobig"
    minSdkVersion 14
    targetSdkVersion 21
    versionCode 2010000
    versionName "1.0.0"

    signingConfig signingConfigs.config

    // dex突破65535的限制
    multiDexEnabled true
    // 默認是umeng的渠道
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
    }
   productFlavors {
       wandoujia {}
       _360 {}
       baidu {}
       xiaomi {}
       tencent {}
       sougou {}
       oppo {}
       mumayi {}
       meizu {}
       Lenovo {}
       kuchuan {}
       jinli {}
       jifeng {}
       huawei {}
       sobig {}
   }
   productFlavors.all { flavor ->
       flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
   }

buildTypes {
    debug {
        signingConfig signingConfigs.config
    }
    release {
        signingConfig signingConfigs.config
    }
}
  1. 使用開源項目MultiChannelBuildTool快速打包

注意:原理是將一個空文件插入到已簽名的包的MATE-INFO目錄下,在app初始化的時候使用ChannelUtil.java獲得對應的渠道標識,發送到自己服務器或者通過友盟api初始化進行數據統計
https://github.com/GavinCT/AndroidMultiChannelBuildTool

  1. 使用開源項目packer-ng-plugin快速打包

https://github.com/mcxiaoke/packer-ng-plugin

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容