Android Studio多渠道打包方法

U盘 未知USB设备 设定地址失败 由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案(做过系统装机盘而无法解决的必看) U盘由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案 我们在使用U盘的时候偶尔会碰到下列情况 一般是因为传输数据的过程中,死机或未响应直接断点或拔掉设备导致的,U盘再次插上之后出现设定地址失败。无法再次读取设备的数据。 解决方案: 首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损伤导致的!!! 首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损... 阅读详情

使用Gradle构建Android应用的渠道包

所有做Android App的同志们应该都知道渠道包是什么,得力于Android生态的多样性,我等写Android应用的人类每次发布App都需要面对数十个市场,而为了能够采集到市场的表现数据,就必须为每一个市场生成相应的apk包,也就是俗称的渠道包。

如此这般,如何更加便捷的生成渠道包就成了各显神通的地方。

友盟、酷传等第三方都有自动化工具来做,同行们也各自写了很多脚本,但我觉得似乎没必要那么复杂。Gradle本身就是一个构建工具,用它应该就能做到。一番研究之后发现果然是可以的,做出来效果也还算不错,再次跟大家分享一下。

先说一下我的构建环境:

Android Studio 0.9.1
Gradle 0.14.1
基本原理是利用Gradle的 manifest merger 功能,这个功能的主要用途是能够在运行时替换AndroidManifest.xml里面的内容,具体功能大家自行查看文档吧,这里就不赘述了。

我用的是友盟的统计,所以现在AndroidManifest.xml里面会有这么一段:

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

里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。

第一步 在AndroidManifest.xml里配置PlaceHolder

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

第二步 在模块的build.gradle文件的defaultConfig里加上PlaceHolder定义

android {
    ...

    defaultConfig {
        ...
        manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"default_channel" ]
    }   
}

这里的作用有两个,一是声明UMENG_CHANNEL_VALUE是可替换值的PlaceHolder,二是为其设置默认值。

第三步 在模块的build.gradle文件里添加ProductFlavors配置

android {
    ...

    defaultConfig {
        ...
        manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"default_channel" ]
    }   
    productFlavors {
        default_channel{}
        wandoujia{}
        _360{}
        yingyongbao{}
        xiaomi{}
        baidu{}
        huawei{}
        jifeng{}
    }
    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [ UMENG_CHANNEL_VALUE:name ]
    }
}

所谓ProductFlavors其实就是可定义的产品特性,配合manifest merger使用的时候就可以达成在一次编译过程中产生多个具有自己特性配置的版本。

上面这个配置的作用就是,为每个渠道包产生不同的UMENG_CHANNEL_VALUE的值。

第四步 一次生成所有渠道包

到工程目录下运行gradlew assembleRelease试试看吧。应该能看到这次编译一共产生了8个apk,分别对应在productFlavors段定义的8个渠道。

可以用apktools反编译每个apk,打开AndroidManifest.xml看看,就会发现友盟这一段的配置已经相应的被修改了。

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

如果只是想生成单个渠道的包呢?
打开AndroidStudio的Gradle tasks面板,会发现模块多了很多任务,如下图所示。
这里写图片描述

此时可以直接双击该任务生成对应的apk,也可以用命令行单独生成,比如

gradlew assembleWandoujiaRelease

好了,到此任务就完成了。当然,这个方式也是有缺陷的,有一些特定的渠道包不是仅仅修改AndroidManifest.xml就可以的,比如小米就要求app本身不能有自动更新功能,这需要改动代码,所以就无能为力了。

转自这里

Ubuntu24.04安装搜狗输入法详细教程 本章教程,介绍如何在Ubuntu24.04版本操作系统上安装搜狗输入法。 阅读详情

相关推荐

串级PID 位置环+速度环

串级PID 位置环+速度环

weixin_62775618的博客 9109

Android Studio 中使用 Gradle 配置多渠道打包 配置不同的渠道名称 配置不同的App名称 配置不同的Logo

Android Studio 中使用 Gradle 配置多渠道打包,并根据不同的渠道配置不同的渠道名称、不同的 App 名称、不同的 Logo。

qq_33601179的博客 5812

手把手教你学Simulink——基于Simulink的变换器老化预测与数字孪生(Digital Twin)

这不仅是技术的演进,更是从“事后救火”到“事前预言”的降维打击。:通过本文的实战演练,你不仅掌握了功率变换器“电气-热-老化”多物理场耦合的建模哲学,更深刻领悟了如何将高深的随机过程(粒子滤波)降维成可落地、可量产的工程工具;:起初,由于数据量少,粒子滤波器预测的剩余寿命(RUL)置信区间(95%)非常宽泛(如 1000~2000小时)。在工业4.0与智能制造的浪潮下,功率变换器(如光伏逆变器、车载OBC、服务器电源)不再是孤立的硬件,而是具备“自我感知”与“寿命预知”的智能节点。

MHD0815的博客 296

Android Studio自带的多渠道打包简单使用

Android Studio 3.x 多渠道打包入门每次打包,总要在生产配置与测试配置之间来回切换,比较麻烦,所以想起来研究了一下多渠道打包。由于第一次接触,各种不懂,各种搜索之后总算跑起来了,如果你是有了解的,那就不要看了。建立多渠道标签在module setting中,点击”+”,创建多渠道的标签,如图 创建完之后,你会在app的build.gradle文件中看到多了几行代码,如图: 加入占

我叫小杜的专栏 1001

大疆机场及无人机上云(航线规划、指令飞行...)

最近基于大疆上云api进行二次开发,后面将按照开发步骤对其进行说明!

资深三维GIS开发 5572

Cesium 场景特效之【全球海洋】GL2兼容版

Cesium 场景特效之【全球海洋】GL2兼容版

喜欢钻研前端和分享技术 1277

Android Studio 使用Gradle 打渠道包

我们都知道Android Studio使用了Gradle。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。    今天我们就来看看如何使用Gradle打渠道包。具体步骤如下所示:

程序员七哥 1612

apollo-慢速车向左绕行

当主车前方出现其他车辆时,通过左侧车道对前车绕行。

是菜鸟o的博客 309

Android Studio 多渠道打包

Android 多渠道打包

SEN_NO1的博客 994

ISOLAR Autosar BSW 配置 之 Com

Autosar ISOLAR Bsw Configuration 之 Com

qq_42262743的博客 453

CLAHE 算法学习 matlab

概念可参考: CLAHE (Contrast Limited Adaptive Histogram Equalization)算法学习CLAHE具体实现主要包括6个步骤。1):分块。将输入图像划分为大小相等的不重叠子块,每个子块含有的像素数为M。参考示例为8×8块。 2):计算子块直方图。 3):计算剪切阈值clipLimit 4):像素点重分配。对每个子块,使用步骤三中多余的像素重新分配。 5):直方图均衡。 6):像素点灰度值重构。(源码中采用了双线性插值) http://www.realtimer

baidu_34971492的博客 4253

android studio多渠道号,多包名打包

第一步: 在清单文件中添加AndroidManifest.xml文件 <meta-data android:name="FT_SOURCEID" android:value="${FT_SOURCEID}" /> 第二步:app的build.gradle中添加如下代码 import org.apache.tools.ant.taskdefs.condition.Os app...

BCXS1的博客 899

C# 零基础入门知识点汇总

本文属于C#零基础入门之百识百例系列目录文章。此系列文章已经完结,欢迎大家点击文中文章链接查看详情进行学习。

陈言必行 -- Unity游戏开发领域优质博主 5347

Android Studio多渠道打包的方法,美团打包策略讲解

前言:不啰嗦 ,直接先把总结方法贴出。然后重点说多渠道打包。 APK瘦身 : 1、将项目资源中用到的大图进行压缩处理。 可以网上搜索在线图片压缩,好的压缩工具可以让图片仍然保持清晰不模糊。 2、清除项目中无用的资源文件。比如已经不被引用的图片\图标、shape控件背景文件、layout布局文件、class文件等。 3、如果应用在4.0版本以上,可以将图片转换webp格式。 4、另外打包时

csdn_aiyang的博客 3441

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android studio manifestplaceholders,Android Studio多渠道打包的配置方法

说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值:上面的value值Channel_ID就是渠道标识。我们的期望的就是在编译时候这个值能够自动变化以满足区分多渠道的需求。(一)在AndroidManifest.xml里设置动态渠道变量a...

weixin_42131798的博客 929

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android studio 多渠道开发App以及打包方法

Android Studio 实现多渠道打包 大家好,技术小白又来总结经验了。 开发过程中我们的App首先需要在开发环境下开发,开发完之后需要打包到测试环境提供给测试人员开发,测试人员测试通过后需要打包到正式环境进行上线,这些过程中可能需要修改App图标、名称、以及接口地址,如果逐个修改可能会遗漏,更重要是比较繁琐且容易出错。 1、咱们先新建一个Project 先点击上图标记①的地方会弹出一个弹窗,点击②会出现有两个模式debug和release 把目光投向build.gradle(Module:app)

qq_43546258的博客 710

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android Studio 使用Gradle多渠道打包的原理与方法

1、背景介绍         之前在使用Eclipse做开发的时候,我会使用友盟的工具进行打包,不过不知道为什么,当我换了Android Studio进行开发之后,发现友盟的那个工具会报错,坑爹啊。没办法,我只好寻求能够在Android Studio上多渠道打包的工具,找了一圈好像也没有,只好在代码上写了。估计以后也会经常使用,我先在这里记录一下。 2、Windows系统      

ljtyzhr的专栏 2326

Android 多渠道打包原理和使用

每次中午吃饭总会和技术同学聊天。当做 iOS 开发的做安卓开发的人员在一起的时候,他们中间又多了一个话题:iOS 开发难还是安卓开发难。 这个时候做安卓开发的同学最激动说安卓开发要自己画界面、机型复杂、操作系统多 rom 又被各家改的四不像....开发一个安卓 APP 的时间将近是开发 iOS 所需时间的 2 倍。iOS 开发的同学可能就会反驳说 iOS 开发入门难度比安卓高,开发中第三方库不

u013378580的博客 5363

android 多渠道打包配置,Android Studio中一套代码多渠道打包的实现方法

一套代码达到以下效果:打包不同applicationId能同时安装在同一手机上不同logo,app名称,不同第三方SDK接入配置(例如微信分享appid,激光推送appkey)能区分debug和release配置使用到的功能:productFlavor和buildTypes原理:优先级buildTypes大于productFlavor示例:一套代码为两家银行打包apk1. 修改build.grad...

weixin_36259438的博客 663

Android studio 多渠道版本打包方法 flavor dimension

Android studio 多渠道版本打包方法 flavor dimension前言开始新建项目修改build.gradle创建差异化文件创建图标修改APP配色修改APP名字APP打包总结 前言 有些时候,你的一份项目工程需要打包成两个图标、配色、名字不相同的APP,Android studio 给我们提供了一个非常好的方法flavor dimension DEMO实现功能: 在一份项目代码中,能一键打包两个及以上APP; 两个APP图标不一样; 两个APP配色不一样; 两个APP名字不一样; 开始

杨迪龙的博客 2245

android exported 多渠道,Android Studio中一套代码多渠道打包的实现方法

一套代码达到以下效果:打包不同applicationId能同时安装在同一手机上不同logo,app名称,不同第三方SDK接入配置(例如微信分享appid,激光推送appkey)能区分debug和release配置使用到的功能:productFlavor和buildTypes原理:优先级buildTypes大于productFlavor示例:一套代码为两家银行打包apk1. 修改build.grad...

weixin_30928785的博客 350

android渠道编号,Android Studio中一套代码多渠道打包的实现方法

一套代码达到以下效果:打包不同applicationId能同时安装在同一手机上不同logo,app名称,不同第三方SDK接入配置(例如微信分享appid,激光推送appkey)能区分debug和release配置使用到的功能:productFlavor和buildTypes原理:优先级buildTypes大于productFlavor示例:一套代码为两家银行打包apk1. 修改build.grad...

weixin_33245968的博客 438

Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包

本文关联文章:安卓多渠道打包:使用Gradle和安卓 Studio 官方文档:https://developer.android.com/tools/publishing/app-signing.html 1. 默认为debug mode,使用的签名文件在:$HOME/.android/debug.keystore 2. Release Mode 签名: build....

打渔还是晒网 —— stone 4万+

Android Studio 通过Gradle一键打包多渠道apk至指定文件夹的方法

当前环境:Android studio arctic fox gradle版本:6.8.2 android gradle plugin 版本:4.2.2 方法一: android.applicationVariants.all { variant -> // 打包完成后输出路径 def name = "app"+ "_" + variant.flavorName + "_" + varia

到此一游 1850

Android Studio 多渠道打包中针对不同渠道不同应用名称的处理方法

Android Studio 多渠道打包的文章相信大家看到的应该很多了。小单的这篇就非常不错,很齐全:http://blog.youkuaiyun.com/catoop/article/details/50435431 但是很多公司应该有这种更细微的需求:不同的渠道号要对应不同的应用名字。比如小米的渠道,应用的名字叫”小米XXX“等等。 网上有很多对这个问题的处理方法,一种是用shell脚

huaxiaogood的专栏 5289

Android代码如何打包,Android Studio中如何实现一套代码多渠道打包

Android Studio中如何实现一套代码多渠道打包发布时间:2020-07-22 14:14:28来源:亿速云阅读:115作者:小猪这篇文章主要讲解了Android Studio中如何实现一套代码多渠道打包,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。一套代码达到以下效果:打包不同applicationId能同时安装在同一手机上不同logo,app名称,不同第三...

weixin_35727143的博客 887
上一篇: RecyclerView的使用
下一篇: Android应用打开时现黑屏或者白屏问题解决
不年少还青春
博客等级 码龄13年 5粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值