Android Gradle實用技巧 - 多渠道打包

jopen 9年前發布 | 10K 次閱讀 項目構建 Android Gradle


友盟有很多不錯的功能,例如渠道統計等。

想要做渠道統計,有一個要求就是要在manifest文件中添加各個渠道的配置。只有一兩個渠道還好說,但是渠道多了的話,手動修改然后打包簡直是噩夢。

幸好現在Android的構建工具換成了gradle,通過gradle,簡單配置后就可以實現自動打所有渠道包。原理是android gradle的productFlavors和variants,不懂的可以先搜索一下。

1,首先,按照umeng的要求,manifest文件中需要有

<meta-data
            android:name="UMENG_CHANNEL"
            android:value="{$UMENG_CHANNEL_VALUE}" />

這段配置,value那里就是wandoujia,360之類的渠道名稱,但是我們在這里不會去寫渠道名,寫的是一個占位符,后面gradle編譯的時候會動態的替換掉它。

2,在module(一般也就是app)的build.gradle中添加如下內容:

productFlavors {
  xiaomi {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
  }
  yingyongbao {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
  }
  _360 {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
  }
}

productFlavors是android節點的一個自節點。你需要打什么渠道的包,就在這里按umeng的要求把渠道名寫到UMENG_CHANNEL_VALUE后面。

3.這個時候去工程的根目錄,也就是有gradlew文件的目錄,打開命令行,輸入命令:

./gradlew assemble

這時候你去app/build/outputs/apk中就能看到自動打好的渠道包了。附送幾條命令:

./gradlew assemble_Release

只打Release包

./gradlew assemble_Debug

只打Debug包

./gradlew assemble_360

只打360的渠道包

./gradlew assemble_360Release

只打360的release渠道包

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!