使用gradle多渠道打包

以友盟的多渠道打包为例,如果我们须要打包出例如以下渠道:UMENG, WANDOUJIA, YINGYONGBAO。

第一种方法。是须要创建文件的。

我们在写完我们的代码之后,在app/src以下。分别创建和main同级目录的目录umeng, wandoujia, yingyongbao,这三个目录里面都各仅仅有一个AndroidManifest.xml文件,文件仅仅须要例如以下:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     package="your.package.name">  
  3.     <application>  
  4.   
  5.           <meta-data android:name="UMENG_CHANNEL" android:value="UMENG"/>  
  6.   
  7.     </application>  
  8. </manifest>  
注意,上面的value的值要和你的渠道名所相应。比方wandoujia里面要相应为你豌豆荚上的渠道名(如WANDOUJAI)。

然后在你的build.gradle的android{}节点里面,加入productFlavors节点,代码例如以下:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. android {  
  2.     // 这里是你的其它配置  
  3.   
  4.     productFlavors{  
  5.         umeng{  }  
  6.         wandoujai {  }  
  7.         yingyongbao{  }  
  8.     }  
  9.     // 你的其它配置  
  10. }  
注意这里的flavors的名字要和你的目录的名字相应。这样配置之后,构建的就是多渠道的APK了。


另外一种方法,不用创建那些文件,它使用的是Gradle Android插件里的还有一个功能,manifestPlaceholders。

在这样的方法中。你仅仅须要在AndroidManifest.xml中。对友盟的渠道进行这样配置:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <meta-data  
  2.     android:name="UMENG_CHANNEL"  
  3.     android:value="${CHANNEL_NAME}" />  

然后相同使用productFlavors。只是这时它的配置是这种:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. android {  
  2.     // 你的其它配置代码  
  3.   
  4.     productFlavors {  
  5.         yingyongbao {  
  6.             manifestPlaceholders = [ CHANNEL_NAME:"YINGYONGBAO"]  
  7.         }  
  8.         umeng {  
  9.             manifestPlaceholders = [ CHANNEL_NAME:"UMENG" ]  
  10.         }  
  11.         wandoujia {  
  12.             manifestPlaceholders = [ CHANNEL_NAME:"WANDOUJIA" ]  
  13.         }  
  14.   
  15.     }  
  16.     // 你的其它配置代码  
  17. }  

在上面其中。我们也能够指定一个默认的渠道名。假设须要的话。指定默认的值是在defaultConfig节点其中加入例如以下内容:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. manifestPlaceholders = [ CHANNEL_NAME:"Unspecified"]  
这里的Unspecified换成你实际上的默认的渠道名。

使用manifestPlaceholders的这样的配置,相同适用于manifest的其它配置。比方你须要在不同渠道公布的apk里面。指定不同的启动Activity。比方在豌豆荚里面公布的。启动的Activity显示的是豌豆荚首发的界面,应用宝里面启动的是应用宝首发的界面(哈哈,有点坏)。你就能够对你的activity的值使用${activity_name}的方式,然后在productFlavors里面配置这个${activity_name}的值。

转载于:https://www.cnblogs.com/jhcelue/p/7392329.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SMMS 2016 啟用深色主題

1、用文本類編輯器 打開C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio目錄下的 ssms.pkgundef 2、去除// Remove Dark theme行以下的注釋 3、重新打開SMMS&#xff0c;如果還沒有出現“深色”主題&#xff0c;請執行第4點 4、打開powershell【…

四大步骤,彻底关闭Win10自动更新

尽管Win11已经发布了一段时间&#xff0c;但目前互联网上大部分电脑用户所使用的的操作系统仍是Win10&#xff0c;对于Win10&#xff0c;笔者相信大部分人应该都不陌生&#xff0c;作为目前市面上占比最高的电脑系统&#xff0c;Win10的许多功能和操作逻辑都十分优秀&#xff0…

LeetCode算法题-Repeated String Match(Java实现)

这是悦乐书的第289次更新&#xff0c;第307篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第156题&#xff08;顺位题号是686&#xff09;。给定两个字符串A和B&#xff0c;找到A必须重复的最小次数&#xff0c;使得B是它的子字符串。 如果没有这样的解决方案&a…

php

●转载于:https://www.cnblogs.com/volcanorao/p/8678104.html

Vs快捷键设置(可搭配Vim使用)

设置方式: 通过在Vs菜单栏的工具->选项->环境->键盘。 常用快捷键: 推荐键位编辑.转到定义Alt G切换标题代码文件Alt Q查看.向前导航Alt D查看.向后导航Alt A调试.调用堆栈Alt 7调试.监视1Alt 8调试.内存1Alt 9查看.查找符号结果Alt 1查看.错误列表Alt …

虚拟机windows7安装启动MYSQL5.7

一.环境 环境&#xff1a;虚拟机VMVare 系统&#xff1a;windows7旗舰版 MYSQL版本&#xff1a;mysql5.7.25 二.具体步骤 1.首先下载安装mysql5.7.25&#xff0c;这里用的是安装版的mysql&#xff0c;网上大多数都是推荐去官网下载&#xff0c;这里推荐的是清华大学开源镜像站…

故障转移架构的本质:数据中心的基础设施过剩

数据中心构成了全球互联基础设施的核心&#xff0c;我们称之为“云”。从根本上讲&#xff0c;云计算指的是基础设施从桌面计算&#xff08;文件和应用程序存储在计算机的本地硬盘上&#xff09;到在线计算&#xff08;文件和应用程序存储在可通过互联网远程访问的数据中心中&a…

CentOS启动Tomcat巨慢

在本地开发环境&#xff0c;应用正常启动。 在CentOS测试环境&#xff0c;应用启动速度也是正常的。 但是在阿里云的生产环境&#xff0c;tomcat启动超级慢&#xff0c;并且在最终打印出来以下内容&#xff1a; org.apache.catalina.util.SessionIdGenerator createSecureRando…

Oracle 存储过程

什么是存储过程&#xff1f;存储过程是一种命名的PL/SQL程序块&#xff0c;它是由一些T-SQL语句组成的代码块&#xff0c;这些T-SQL语句代码像一个方法一样实现一些功能&#xff08;对单表或多表的增删改查&#xff09;&#xff0c;可以有参数、输入输出参数&#xff0c;通常没…

查看Oracle 版本信息

select * from v$version;转载于:https://www.cnblogs.com/hanje/p/10614555.html

ubuntu上安装docker

在Ubuntu16.04上安装Docker Docker是一个开源的容器引擎&#xff0c;它有助于更快地交付产品。Docker可将应用程序和基础设施层隔离&#xff0c;并且将基础设施当作程序一样进行管理。使用Docker&#xff0c;可以更快地打包&#xff0c;测试以及部署应用程序&#xff0c;并可以…

字符串问题之 在有序但含有空的数组中查找字符串

尽可能使用二分查找 假设在 left right 之间查找 关键是mid处理过程 导致 left 跟 right 的改变 控制去哪里寻找 分如下情况&#xff1a; 若 mid处 不为空&#xff0c;并且 此处就是 str 那么记下 mid &#xff0c;同时把right-1 &#xff08;往左寻找&#xff09; 若…

Python_48re模块的sub方法

sub是替换的功能 sub(模型&#xff0c;替换为的字符&#xff0c;目标原字符串&#xff0c;替换次数) import re yuanchuan1qaz2wsx3edc4rfv5tgb new_strre.sub(\d,INTNUM,yuanchuan,2) #若果没有2表示默认替换所有的 print (new_str) #输出结果为&#xff1a;INTNUMqazINTNUMw…

个人笔记-vuex

个人笔记-vuex 最近想要沉淀下自己的知识体系&#xff0c;以前光看不记&#xff0c;当时记得&#xff0c;过段时间记忆就模糊了&#xff0c;好脑子不如烂笔头&#xff0c;古人诚不欺我&#xff0c;所以现在决定给用自己的语言方式来给自己记个笔记。 vuex vuex 有什么好讲的呢&…

常用模块之hashlib,configparser,logging模块

常用模块二 hashlib模块 hashlib提供了常见的摘要算法&#xff0c;如md5和sha1等等。 那么什么是摘要算法呢?摘要算法又称为哈希算法、散列算法。它通过一个函数&#xff0c;把任意长度的数据转换为一个长度固定的数据串&#xff08;通常用16进制的字符串表示&#xff09;。 注…

iPhone屏幕各种尺寸分辨率(更新至XS)

iPhone屏幕各种尺寸分辨率&#xff08;更新至XS&#xff09; DeviceLogic PointLogic PixelSizeScaleiPhone 2G480 320480 3203.51xiPhone 3480 320480 3203.51xiPhone 3GS480 320480 3203.51xiPhone 4480 320960 6403.52xiPhone 4S480 320960 6403.52xiPhone 5568 …

浙江嘉兴徒步游

最近参加了一个徒步团&#xff0c;趁着周末时光&#xff0c;来了一场徒步旅游&#xff0c;不一样的体验图片发自简书App一开始进山探秘外蒲岛的路程&#xff0c;荒草丛生图片发自简书App树木郁郁葱葱&#xff0c;蓝天白云&#xff0c;一切都很没好图片发自简书App漫山遍野都开满…

ASP.NET Web API 2 过滤器

前言 我们知道 ASP.NET Web API 过滤器&#xff0c;也是属于消息处理机制中的一部分。正因如此&#xff0c;我们经常使用它来完成对请求的授权验证、参数验证&#xff0c;以及请求的 Log 记录&#xff0c;程序异常捕获等。 1. 常用的四大过滤器 ASP.NET Web API 2 中的所有…

java的ThreadLocal类的使用方法

java的ThreadLocal类的使用方法&#xff0c;ThreadLocal是一个支持泛型的类&#xff0c;用在多线程中用于防止并发冲突问题。比如以下的一个样例&#xff0c;就是用于线程添加1&#xff0c;可是相互不冲突 package com.test.threadlocal;import java.util.concurrent.ExecutorS…

为选择合适的ERP供应商,是否该发布需求建议书(RFP)?

全球有成百上千家企业资源规划 (ERP) 解决方案供应商。在开展挑选 ERP 供应商的项目时&#xff0c;不可能与所有这些供应商都进行接触。不断缩小这一领域供应商的范围&#xff0c;直到最终敲定最适合的入围名单&#xff08;通常被称为“最终候选人名单”&#xff09;是项目成功…