分渠道打包

Gradle分渠道/包名/应用名打包Apk Gradle分渠道/包名/应用名打包Apk实际应用开发中,我们会遇到多渠道打包的情况,这是属于比较常见的,但更复杂的需求,如指定渠道使用指定包名, 甚至指定应用名、图标来打包APK, 这种情况下,通常情况下是去手动更改manifest。本文将介绍使用gradle结合shell脚本来自动化打包: Gradle多渠道打包 不同渠道指定不同应用名、包名打包 Gradle多渠道打包Gradle多渠道打包非常 阅读详情

有的时候,为了在不同的渠道下面去上传应用,我们为了满足不同平台的需求,可能需要:启动画面不同,欢迎语不同。

用户进行网络注册的时候,注册上来的用户,公司关心这个用户是从哪一个渠道商下载的,这个是运营商的需要,渠道商的id,

android studio 里面有了专门的分渠道打包的支持,其实也就是“图片,文字”


我们使用到android studio 中的flavor,android studio 会自动的根据不同的flavor去使用该flavor下面的图片和文件,

需要说明的是图片的格式必须是相同的,最好都是png格式的,而且要求该图片本来就是png格式的,不能本来是jpeg格式的然后只是修改了后缀名。


首先未考虑渠道的情况下的布局和MainActivity

package com.kodulf.channeldemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView versionCodeTextView = (TextView)findViewById(R.id.versionCode);

        String versionCodeString = getResources().getString(R.string.versioncode);
        versionCodeTextView.setText("版本号:"+versionCodeString);

    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.kodulf.channeldemo.MainActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text"
        android:textSize="25sp"
        android:layout_centerInParent="true"/>
    <ImageView
        android:layout_below="@+id/text"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/logo"
        />
    <TextView
        android:id="@+id/versionCode"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/text"
        android:textSize="25sp"
        android:text="版本号:"/>
</RelativeLayout>

在values 目录下面右键,new->new resource file->创建一个channels的文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="text">你好我是默认文档</string>
    <string name="versioncode">10001</string>
</resources>

然后拷贝一个logo.png图片到mimap-xhdpi目录下面。


这样上面的正常的流程走完,下面是考虑全渠道的情况:


首先找到3个百度,360,豌豆荚的logo的图片,都命名为logo.png

右键项目名,点击Open Module Settings,选择flavors,然后点击左下角的+号来进行不同的渠道的添加,这里添加了3个渠道




在Project的视图模式下面,右击src文件,new -》Android resource directory



首先我们选择Resource type  为mipmap,

然后Source set 为baidu

然后Available qualifiers 为Density



选中后点击》》来将它放到Chosen qualifiers里面

然后Density 选择High Density



这个时候就会在src的文件夹下面创建一个baidu的文件夹,这个文件夹和main文件夹是同一个等级的,


同时里面还有一个一个res的文件夹,里面有一个mipmap-xhdpi的文件夹,将我们的百度的logo.png图片放到这里。


然后我们去创建一个values文件夹,还是邮件src文件夹,然后new -》android resource directory

然后resource type 为values,source set 选择baidu。


这样就会在刚才的文件夹目录下面又有一个values文件夹,

然后将之前的main下面的values 的channels文件夹拷贝过来,然后修改

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="text">你好我是百度渠道文档</string>
    <string name="versioncode">10002</string>
</resources>

这样baidu渠道的文件部分就好了,

同理进行360和豌豆荚的更新,

更新完以后,开始build我们的apk文件了。和正常的build 只有一点区别就是选择flavor哪里,我们是全部都选的



然后点击finish,知道生成我们需要的apk包:这里可以看到的是我们需要的不同的渠道的包都有了




Android进阶之路 - 多渠道分包、打包 现在的android有着广泛的应用市场,相对应的渠道也可以说是多种多样,为了方便app更好的推广,运营同学就需要我们支持下数据采集,才能制定后续流程~题外话:其实渠道统计不仅仅局限于应用市场,在现实生活中我们可以把每一种推广方式也看做是一个渠道,比如:通过人拉人的方式去推广,官网上推广,百度推广等。随着渠道越来越多,为了运营更好的推广,有时候一次也会打成百的安装包,有的打包方式可能会造成半天或者一天啥也干不了,当然也有分分钟完成打包的方式…使用美团多渠道打包方式,10秒轻松打完上百渠道安装包。 阅读详情

相关推荐

使用友盟分渠道打包和统计

博客地址:http://blog.youkuaiyun.com/dong_junshuai

多渠道打包:一套代码打包多个应用,配置不一样的应用名、包名、签名、图标

开发某个应用,基本功能是一样的,在打包的时候,区分渠道、配置不同的包名、签名。 1.新建一个工程 很简单,新建一个默认的 Hello World 工程就可以了。 2.新建对应渠道的文件夹 在 src 目录新建一个文件夹 qudao1 ,然后照着 main 文件的样子生成一样的目录,只需要目录,各目录下的文件先不要。 (要也不影响,本篇主要讲配置,不改代码) 在 src 目录新建一个文件夹 qudao2 ,操作同新建 qudao1 。 为了区分,我们简单修改下 string.xml , main 下的, &l

weixin_44021334的博客 6174

STM32多模式智能小车状态机设计与中断优先级实践

在嵌入式实时系统中,状态机是实现多任务协同与功能切换的核心范式。其本质是通过有限状态集合、明确转移条件和确定性动作,构建可预测、易维护的控制逻辑。基于STM32等资源受限MCU时,需兼顾状态调度效率、中断并发安全与硬件资源约束。关键技术价值体现在:提升系统模块解耦度、支持物理按键与蓝牙双源触发、保障实时响应不丢帧。典型应用场景包括智能小车多模运行(循迹、避障、遥控、定距跟随等)、工业设备工作模式切换及IoT终端低功耗状态管理。本文以STM32F103C8T6平台为例,深入解析全局模式变量设计、双通道状态切换

weixin_42509888的博客 93

android自动分渠道打包,Gradle实战:Android多渠道打包方案汇总

Gradle实战系列文章:本文将延续之前几篇博客的风格,先从基本概念入手,这有助于我们对后文的理解; 在后续的代码中如果忘了某个概念的具体意义,可以回顾头来重新查看概念的介绍。文中先详细介绍了一般批量打包方案的实现原理,后介绍了美团批量打包的基本实现原理,并引用了几篇实现方案供大家参考一、基本概念介绍1. packageAndroidManifest文件中的包名package="com.compa...

weixin_30769455的博客 666

学术规范与论文写作(雨课堂)研究生 全部答案

1:如何造就优秀的学术论文 论文语法判断题 :全部是错的 2:如何撰写学术论文 3: SCI论文写作经验分享 4:论文写作与投稿技巧 5:学术伦理道德 答案仅供参考,研究生生活不易,大家如果有时间的话,还是可以学习学习的,毕竟老师讲的不错。加油,希望读研的每一个人都能顺利毕业! ...

Always-Learning 13万+

12V电源电路五层防护设计实战指南

12V电源电路是工业控制、车载电子和智能终端中最基础的供电架构,其可靠性不取决于稳压精度,而取决于对反接、浪涌、短路、过温等典型故障的响应能力。理解TVS钳位原理、P-MOSFET防反接机制及eFuse可编程限流逻辑,是构建鲁棒电源系统的核心。技术价值在于将保护从‘事后补救’升级为‘事前拦截’,显著提升产品MTBF并降低售后返修率。典型应用场景涵盖PLC辅助电源、ADAS摄像头供电、IoT网关主板等严苛环境设备。本文聚焦12V输入端到负载输出端的五层串行防护链设计,深度融合TVS选型、MOSFET导通阈值与

weixin_30983965的博客 295

Android的多渠道打包

渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等产品在不同的应用市场可能有不同的统计需求,需要为每个应用市场的Android包设定一个可以区分应用市场的标识,这个为Android包设定应用市场标识的过程就是多渠道打包。

2401_83817916的博客 1743

5nm制程的CV5芯片实测:用它给无人机做8K拍摄和实时避障,功耗和性能到底怎么样?

本文深度评测了5nm制程的CV5芯片在无人机8K拍摄和实时避障中的表现。通过实测数据展示了CV5的异构计算架构、8K视频编码性能和CVflow®AI引擎的加速效果,同时提供了开发中的优化技巧和散热建议,为无人机开发者提供了实用的参考。

weixin_30861797的博客 358

Android打包之多版本、多环境、多渠道

release {//调试版本,无混淆debug {//发布版本,有混淆release {//开发环境develop {app_name: “开-WalleDemo”,//测试环境check {app_name: “测-WalleDemo”,//生产环境product {})

2401_84121702的博客 651

LeRobot 入门教程(三)在仿真环境和自定义机器人上部署 LeRobot

本教程详细介绍了基于真实世界机器人和仿真环境的模仿学习实现方法,涵盖数据采集、训练策略和评估全流程。在真实机器人部分,重点讲解了远程操作设置、摄像头配置、数据集记录与管理技巧、策略训练(支持GPU/MPS设备)以及模型评估。仿真环境部分则演示了gym-hil的安装使用、模拟数据采集和策略训练。此外,教程还提供了自定义机器人集成指南,包括电机选择、接口继承、传感器/动作特征定义、连接管理和校准配置等核心步骤。所有方法均支持HuggingFace数据集中心和Weights & Biases工具链,为机器

2506_90492529的博客 2399

龙虾机器人(OpenClaw)本地部署完全技术指南

在开始部署之前,我们需要明确部署的对象。通常所说的“龙虾机器人”指的是开源项目 OpenClaw(曾用名:Clawdbot、Moltbot)。它由程序员彼得·斯坦伯格开发,是一个开源的、可本地部署的通用型AI代理系统。与ChatGPT等对话式AI不同,OpenClaw被赋予了操作系统的权限:它可以执行终端命令、读写文件、操控浏览器、安装软件,甚至通过MCP协议调用外部工具。

huanghm88的专栏 2万+

Gradle4.0+ 分渠道打包-bugly

一.前言 项目app的国内更新是采用的bugly,如果需要上架Google Play,就需要采用Google官方的更新,且app里不能有热更新方案,但是bugly里包含了Tinker相关代码,所以可能会被Google Play下架。在bugly集成官网给出的提示: 因此需要对apk分两个渠道打包,一个包含bugly库,一个不包含bugly库。 Gradle版本: gradle-wrapper.properties distributionUrl=https\://services.gradle.org/

Alrey的博客 584

基于Simulink的电机功率因数校正仿真

PF=SP​=视在功率有功功率​=cosϕ⋅Irms​I1​​(非正弦时)位移因数(cosϕ):基波电压电流相位差畸变因数(I1​/Irms​):谐波导致电流有效值增大本文带你完成了电机系统功率因数校正的Simulink仿真,实现了:✅ 理解了低功率因数的成因与危害✅ 搭建了无PFC、无源PFC、有源PFC三种对比模型✅ 掌握了Vienna整流器建模与dq解耦控制方法✅ 实现了PF与THD的自动计算与评估✅ 验证了有源PFC在PF、THD、稳定性上的全面优势。

amy_mhd的博客 154

android build文件分渠道打包

ps:在android应用市场“遍地开花”的情况下,那么如何针对各大应用市场进行分渠道打包呢!现在提供了很多第三方的工具进行分渠道打包……通过android-studio进行分渠道打包

qq_lzty的博客 401

W5500以太网&PoE扩展模块原理图设计,已量产

本文将以 W5500 以太网 & PoE 扩展板为对象,从嵌入式硬件设计的视角,深度拆解其电路架构、核心器件选型、关键功能实现,以及这款板子解决行业痛点的设计思路。

不脱发的程序猿 937

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Android分渠道打包(Python 3.4 实现)

Android批量打包实现有很多方式你可以用Ant,Maven或者Gradle。在处理多个Library和NDK编译的时候配置有些麻烦,且每个渠道都编译一次效率较低。如果没有复杂的分渠道编译需求,我们可以换种简单的方式。因为apk中的assets是不会编译的,我们可以修改assets文件的值实现渠道修改,这样你的apk就可以通过读取修改过的文件区分各个渠道,用于数据统计。下面是我写的一个...

weixin_30807677的博客 136

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android Studio分渠道打包

使用Android Studio分渠道打包的详细步骤

程序员人生 1917

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android 分渠道打包原理

为什么需要在应用程序中增加渠道信息? Android应用的发布需要面对各种各样的市场,我们称之为渠道。有的时候,我们需要知道应用是从哪个渠道下载的。比如,我们可能需要统计哪些市场带来的用户量比较大。再比如,我们可能有一些盈利需要和具体的渠道进行分成。这些都是统计渠道的信息。   一般如何在应用中加入渠道信息? 为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针

1185

Android开发分渠道打包之友盟篇

第一步:在清单文件AndroidManifest.xml中application模块中加入: <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}"/> 第二步:在app的build.gradle中的android部分加入: flavorDimensions...

weixin_38576356的博客 1392

android友盟统计分渠道打包

什么是多渠道包 渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等 产品在不同的应用市场可能有不同的统计需求,需要为每个应用市场的Android包设定一个可以区分应用市场的标识,这个为Android包设定应用市场标识的过程就是多渠道打包。 为什么要提供多渠道包 国内存在着有众多的应用市场,产品在不同的渠道可能有不同的统计需求,为此Android开发人员需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。 在安装包中添加不

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 755

友盟 android渠道打包工具,Android开发分渠道打包之友盟篇

第一步:在清单文件AndroidManifest.xml中application模块中加入:android:name="UMENG_CHANNEL"android:value="${UMENG_CHANNEL_VALUE}"/>第二步:在app的build.gradle中的android部分加入:flavorDimensions ""productFlavors{wandoujia{}xia...

weixin_39940425的博客 112

android超简单友盟分渠道打包

项目 的清单文件中中配置 &lt;application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round...

qq_42828101的博客 256

Android studio 分渠道打包,引用不同的moudle

转自:https://github.com/itlgl/note/issues/36 如何简单的使用keystore文件为apk签名 在项目根目录下创建文件夹keystore,并将签名文件比如keystore1.jks放到目录下。 比如创建的keystore1.jks文件,密码为pass4keystore;签名文件下有一个alias为itlgl,密码为pass4itlgl。 在bui...

yuzhidao的博客 2483

Android分渠道打包

如果你还不熟悉ant,请先下载帮助文档:http://dl.dbank.com/c0bs4ajaqv 需要准备的资源文件: 将android-sdk\tools\ant目录下的build.xml文件复制到项目根目录下,改名为antbuild.xml,需要修改两个地方, 1. 2. 如果有配置文件,还需要增加配置文件的位置: 创建build.xml文件和build.propert

九头鹰 1942

App分渠道打包工具

渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等。 我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计(这就是添加渠道信息的用处)。 友盟的分渠道打包亦是如此,如果一个公司有10个渠道,那么开发人员就打10个渠道包,分别对应不用的渠道编码去标示,但是如果有上百来个,上千条渠道呢?当然你会说,...

LiuChurou的博客 2007
上一篇: mac os x配置adb命令的方法,苹果电脑设置adb命令的方法
下一篇: Android 中创建Java项目的Date的转换工具
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值