gradle多渠道打包和同一App打包不同版本Api调用
来源:互联网 发布:linux 制作iso 编辑:程序博客网 时间:2024/05/17 22:19
gradle多渠道打包
多渠道打包,以友盟统计为例。
- 配置好AndroidManifest.xml中的渠道信息在Application节点中添加如下:<meta-dataandroid:name="UMENG_CHANNEL"android:value="${UMENG_CHANNEL_VALUE}" />
- 在相应打包程序的module中的build.gradle里面做如下修改:在android{ ... }里面新增:productFlavors {wandoujia {}qihu360 {}baidu {}xiaomi {}uc {}productFlavors.all {flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}}
- 配置好gradle的环境变量,将gradle中的bin文件路径加入到path中(此步可省略)
- 签名打包呢。 选择Build->Generate Signed APK...
Flavors中:Ctrl+鼠标左键 >> 选择多渠道 Ctrl+A >>选择全部渠道 - 点击Finish后即开始多渠道打包
同一App打包不同版本API的调用
对于测试版和正式版等有多个版本的app,每次打包需要替换不同的api地址。可以使用productFlavors 打包不同版本API的调用。
- 在 src 目录下新建几个自己需要打包对应名称的包,比如我要打包如下两个版本, myrelease和mydebug,新建各自java文件夹,可以直接复制main文件下的java包到各个新建目录下,然后只新建和声明自己需要类和对应常量(需一致)。
myrelease的GlobalVar中public static String dateIp="http://www.baidu.com";mydebug的GlobalVar中public static String dateIp="http://www.google.com"; - 在主程序main需要的地方调用对应的常量,实际开发中是调用api去请求数据
在代码中调用的是当前选择对应的productFlavors版本的代码,比如当前选择的是myrelease版,其他版本会显示下面好像报错的红圈,编译正常,当我们打包成功后,它会调用对应目录下面常量 - 签名打包,配置gradle文件,在相应打包程序的module中的build.gradle里面做如下修改:在android{ ... }里面新增:(id 根据你自己的需要设置是否可以同时在一个手机上运行多个自己的app)productFlavors {myrelease {applicationId 'myrelease.apitest.nht.com.multiapi'versionName '1.0-release'}mydebug {applicationId 'mydebug.apitest.nht.com.multiapi'versionName '1.0-debug'}}
- 结果
项目源码:MultiApi
参考文献:
红黑联盟、 简书
0 0
- gradle多渠道打包和同一App打包不同版本Api调用
- android gradle多渠道打包不同资源
- Gradle App项目的多渠道打包实现
- app打包、混淆、加固和多渠道打包
- AndroidStudio多渠道打包,生成不同app
- Gradle多渠道打包
- Gradle多渠道打包
- eclipse+gradle多渠道打包
- 【Andorid】Gradle多渠道打包
- android Gradle多渠道打包
- eclipse多渠道打包(gradle)
- Gradle多渠道打包 (1)
- Gradle多渠道打包
- gradle多渠道打包
- Gradle多渠道打包
- Gradle 多渠道打包
- 使用gradle多渠道打包
- Gradle多渠道打包
- java实现选择排序
- eclipse快捷键的使用
- UVa--548 Tree(二叉树)
- 日常笔记:Python(1)
- GDKOI 2016 魔卡少女
- gradle多渠道打包和同一App打包不同版本Api调用
- 创建Red Hat Enterprise Linux 6 64位虚拟机
- python中的sys模块函数
- stdlib.h
- Recommender System Fragment 1
- 区间选点问题---poj-1328
- maven常用命令集
- 金融IC卡降级交易常见问题解答
- MySQL使用存储过程循环插入数据