`

Android studio 多渠道打包(超简洁版)

 
阅读更多

最近一直用android studio 进行开发,在开发和发版的时候,遇到一个多渠道打包的问题,由于公司里是有七个渠道的包进行分发,由于每次去AndroidManifest.xml修改渠道的值,甚是麻烦。。。

最后去google了一番,发现有些方法,是在gradle文件里切换各种不同的AndroidManifest.xml文件,感觉这样也太麻烦些了。。。后面搜索了些,发些大家写得都差不多,发现一个在gradle利用manifestPlaceholders这个属性来替换渠道值的方法,但我按照这个方法,没有成功,我就去扒官方的文档才彻底搞定。下面就讲讲怎么实现的吧。

一般用渠道的统计无非是用友盟或者其它之类的,今天就以友盟的为例吧。
渠道信息一般在 AndroidManifest.xml中修改以下值:

 

<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />

 

首先你必须在AndroidManifest.xml中的meta-data修改以下的样子:

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

其中${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的根目录,在系统变量里添加两个环境变量:

变量名为:GRADLE_HOME,变量值就为gradle的根目录;
所以变量值为:C:\Users\yazhou\.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55\gradle-2.1

还有一个在系统变量里PATH里面添加gradle的bin目录
我的就是C:\Users\yazhou\.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55\gradle-2.1\bin

这里配置完成了,接着在Terminal中敲下 gradle assembleRelease就可以一次性生成所有的渠道包了。

所有生成的apk在项目的build\outputs\apk下。

 

转载http://www.cnblogs.com/0616--ataozhijia/p/4203997.html

分享到:
评论

相关推荐

    Android studio 3.0上进行多渠道打包遇到的问题小结(超简洁版)

    在Android Studio 3.0版本中,引入了一些新的构建系统改进,这些改进可能会影响到多渠道打包的过程。本文将针对在Android Studio 3.0上进行多渠道打包时遇到的问题进行总结,并提供解决方案。 首先,一个常见的错误...

    Android-App-Development-in-Android-Studio_androidstudio_android_

    完成应用开发后,需要打包并签名APK,然后通过Google Play Store或其他分发渠道发布。发布过程中需要注意应用的兼容性、性能优化以及遵循Google的发布政策。 通过学习以上知识点,初学者可以逐步掌握Android App...

    android安卓app开发之如何在多家安卓商店发布apk的问题.zip_安卓市场

    在【Android Studio】Android studio 多渠道打包(超简洁版) - demoblog - 博客园.url这篇教程中,开发者可以学习到如何设置构建脚本来创建包含不同渠道参数的APK。通常,这涉及到修改build.gradle文件,添加自定义的...

    Android Studio简单课设 及格点餐超简单(过于简单可以应付,需要上难度可以看主页)

    【Android Studio简介】 Android Studio是Google为Android应用开发者提供的集成开发环境(IDE),基于IntelliJ IDEA,专为优化Android应用程序开发而设计。它提供了代码编辑、调试、性能分析、版本控制集成等一系列...

    基于Android的计算器

    在Android平台上开发一个计算器应用是一项基础且重要的任务,它能帮助开发者熟悉Android Studio IDE、XML布局设计、Java或Kotlin编程语言以及Android SDK中的各种组件和API。基于Android的计算器通常会涉及到以下几...

    Android应用开发入门教程(经典版).pdf

    完成应用开发后,了解如何签名、打包并发布到Google Play Store或其他分发渠道,是将应用推向市场的最后步骤。 以上只是《Android应用开发入门教程(经典版)》中部分关键知识点的概述,全书还涵盖了更多高级主题,如...

    自己编写的Android记事本APP软件

    8. **发布与打包**:最后,将完成的应用打包成APK文件,签名后可以通过Google Play Store或其他分发渠道供用户下载安装。 "DateNote"虽然界面简单,但背后涉及的Android开发技术却是全面的。通过这样的实践,你可以...

    移动点餐系统 新手学习。。。。

    13. **发布与更新**: 最终,开发者需要将应用打包成APK文件,并通过Google Play Store或其他分发渠道发布,同时还需要考虑应用的更新机制,以便于用户获取新功能和修复。 以上就是移动点餐系统开发涉及的主要知识点...

    Android开发教程笔记完全版.zip

    完成开发后,应用需要打包成APK并通过Google Play Store或其他分发渠道发布。发布前要遵循Google的开发者政策,进行兼容性测试和性能优化。 以上只是Android开发教程笔记可能涵盖的部分内容,具体的学习过程中还会...

    俄罗斯游戏项目源码Android

    13. **打包与发布**: 完成开发后,需要将应用打包成APK,并通过Google Play Store或其他分发渠道发布。 在【压缩包子文件的文件名称列表】"TerisMe"中,我们可以推测这可能是该项目的主程序文件或者是一个特定的...

    android简单猜数字的游戏

    最终,应用需要打包成APK并通过Google Play Store或其他分发渠道发布。 综上所述,这个"android简单猜数字的游戏"涵盖了Android开发中的多个核心概念,包括用户界面设计、事件处理、数据存储和错误处理等。对于初学...

    google android 官方教程

    完成应用开发后,需要打包成APK文件并通过Google Play或其他分发渠道发布。发布过程涉及签名、优化、版本控制和合规性检查等步骤。 以上就是Android官方教程的主要内容,覆盖了Android开发的各个方面,无论你是初学...

    android开发入门代码

    当应用开发完成后,需要将其打包成APK文件并通过Google Play或其他分发渠道发布。发布前,要确保应用经过充分的测试,满足质量标准,并处理好隐私政策和权限请求。 以上就是Android开发入门的一些核心知识点。通过...

    android-7.zip

    5. Android Support Library:包含对旧版Android设备的向后兼容性库,以及各种组件和功能的扩展。 6. Gradle插件:与Gradle构建系统集成,用于自动化构建过程和依赖管理。 三、使用Android 7.0 SDK的步骤: 1. ...

    android小程序源代码

    11. **Gradle构建系统**: Android Studio使用Gradle作为默认的构建系统,它负责编译、打包和部署应用。开发者可以通过修改build.gradle文件来配置项目的构建属性。 12. **测试与调试**: Android Studio提供了丰富的...

    Android代码-Billiard2D.zip

    11. **Gradle构建系统**:Android Studio使用Gradle作为默认的构建工具,负责编译、打包和依赖管理。 12. **测试**:为了确保应用的质量,开发者可能使用了JUnit或Espresso进行单元测试和UI测试。 13. **发布准备*...

    FlappyChickAndEngine:AndEngine 示例基于 Android Studio 上的原始 Eclipse FlappyChick 代码

    完成游戏开发后,开发者可以使用 Android Studio 的打包功能生成 APK 文件,然后通过 Google Play 商店或其他分发渠道发布给用户下载和玩。 总的来说,FlappyChickAndEngine 是一个很好的学习资源,可以帮助开发者...

    Android-jianshi简诗是国人开发的一个用于记录文字信息的Android完整应用

    10. **发布与更新**: 开发完成后,应用需要打包成APK并通过Google Play或其他分发渠道发布。开发者需了解签名、优化APK大小和发布流程。 通过阅读作者在简书上的开发历程,开发者不仅可以学习到具体的编程技术,还...

Global site tag (gtag.js) - Google Analytics