当前位置: 首页 > news >正文

dedecms做资源下载网站/线上推广引流渠道

dedecms做资源下载网站,线上推广引流渠道,宣城市住房和城乡建设委员会网站,网络营销理论有哪些前言什么是多渠道打包以及多渠道打包可以做什么,这里就不做介绍了,相信看到这篇文章的你已经了解了,多渠道打包的方式比较多,这里我们用Gradle多渠道打包方式。和其他文章有什么不同网上看到的大多数文章都只讲解了1.如何修改包名…

前言

什么是多渠道打包以及多渠道打包可以做什么,这里就不做介绍了,相信看到这篇文章的你已经了解了,多渠道打包的方式比较多,这里我们用Gradle多渠道打包方式。

和其他文章有什么不同

网上看到的大多数文章都只讲解了

1.如何修改包名

2.如何修改变量的值

3.如何替换string中的资源

4.如何替换AndroidManifest中的资源

本篇文章会在上述知识点上增加

5.不同渠道如何使用不同的java文件

6.Base模块化中如何使用多渠道

新建项目,在app下build.gradle中android下添加如下代码:

productFlavors{baidu{applicationId "com.baidu"buildConfigField "String","BaseApi",'"http://baidu.com"'resValue "string","tip",'"hello  this is form baidu"'manifestPlaceholders = [app_name:"百度APP"]}sougou{applicationId "com.sougou"buildConfigField "String","BaseApi",'"http://sougou.com"'resValue "string","tip",'"hello  this is form sugou"'manifestPlaceholders = [app_name: "搜狗APP"]}
}
复制代码

这里我们定义两个渠道,一个渠道名称是baidu,一个渠道名称是sougou,通过applicationId直接指定应用包名

不同渠道我们使用的请求地址不同,字段是BaseApi,我们可以通过buildConfigField指定BaseApi中的值,通过buildConfigField

指定的值,我们可以在系统生成的BuildConfig中获取,比如我们获取多渠道中定义的BaseApi:

String baseApi = BuildConfig.BaseApi;
复制代码

我们来看下BuildConfig中的内容

244a53b3a8b7584571aa0161068983f5.png

BaseApi是我们自己定义的,其他的都是默认生成的,这里我们可以看到,应用包名也是我们指定的。

resValue我们可以修改变量的值,这个值会生成在string.xml中,比如上面我们定义了一个tip变量,需要注意的是,这个变量不能出现在string.xml中,否则会提示资源重复。

如果要定义在配置文件中使用的值,则需要使用

manifestPlaceholders
复制代码

我们分别修改app_name的值,在配置文件中使用占位符${} 使用,如下:

android:label="${app_name}"
复制代码

接下来,我们将tip的值和BaseApi显示在TextView上,分别运行app的baidu渠道版本和sougou渠道版本

e4e9a076c9de2a5ab8767b2b9c7095b3.png

baidu渠道运行如下:

9254a95dd767aa95cc70e33dde60409d.png

sougou渠道运行如下:

4c0faa38341cb4bf4ff1d7a2ef5b03e0.png

从运行结果我们可以看出来,已经达到我们想要的结果了。

如何使用不同的app图标

那么如何修改不同渠道的app图标呢,当然我们可以在manifestPlaceholders中添加图标资源的占位符,但是我们这里使用另一种方法,

有时候我们不仅要替换图标,可能要替换raw下的资源或者assets下的资源,这种情况下我们就需要

使用下面的方式:

在src目录下新建与main同级且与渠道名称一样的文件包名,并且新建res资源目录,放入图标使用的图片资源,必须要与main中的名称相同才可以覆盖,如图所示:

dad8eed262d6b59834bf9800fa5b65c1.png

并且在gradle中设置sourceSet

sourceSets{baidu{res.srcDirs = ['src/baidu/res','src/baidu/res']}sougou{res.srcDirs = ['src/sougou/res','src/sougou/res']}}
复制代码

我们通过res.srcDirs就指定了不同渠道使用的资源文件,这里从网上随便找了两张截图作为图标(如有侵权,联系删除)

d3655d08ce72fbceed4b3e30348afcdf.png

b534b2a40ca0aff0321c89e159238d21.png

运行两个app,结果显示如下:

79c413523ecc8eeaed6eba42e476266e.png

moudle中如何配置多渠道

在实际的开发中,我们可能会有一个base模块,不同渠道base模块中引用的资源也不同,我们该如何配置呢?

我们新建basemoudle模块,app依赖basemodule模块

同样,我们在模块的gradl下 配置如下:

productFlavors {baidu {buildConfigField "String", "BaseMoudeDesc", '"这是base模块百度的描述"'resValue "string", "basetip", '"i come form base_baidu"'}sougou {buildConfigField "String", "BaseMoudeDesc", '"这是base模块搜狗的描述"'resValue "string", "basetip", '"i come form base_baidu"'}
}
复制代码

因为我们的base模块也有两个渠道,所以app在依赖的时候,必须分渠道去依赖

baiduCompile project(path:':basemodule',configuration:'baiduRelease')
sougouCompile project(path:  ':basemodule',configuration:'sougouRelease')
复制代码

37d2dfd64dd4035228a478b8a82ef375.png

我们直接编译会出现上面的问题,因为module模块可能没有生成对应的编译资源,因为android的默认编译是debug类型的,所以为了和app主模块同步,我们设置去掉默认的发布类型,需要在module中的gradle中添加:

publishNonDefault true
复制代码

变量的使用和上面app的使用方式一样,在这里就不展示了。

不同渠道如何使用不同java文件

同不同渠道使用资源文件一样,不过需要注意的是,main文件中就不能存放要替换的java文件了,否则会报资源重复的错误,同样的我们在base模块分别新建baidu和sougou渠道包,并且分别新建MainActivity,如图所示。

08688cf9fa8474abdb54fd14f5a189f7.png

设置java资源目录

sourceSets {baidu {res.srcDirs = ['src/baidu/res', 'src/baidu/res']java.srcDirs = ['src/baidu/java','src/baidu/java']}sougou {res.srcDirs = ['src/sougou/res', 'src/sougou/res']java.srcDirs = ['src/sougou/java','src/sougou/java']}}
复制代码

为了展示两个页面的不同,我们将百度渠道的页面背景设为粉红色,搜狗渠道的页面背景设置蓝色,在app添加按钮并添加监听事件,打开module中的主页面。

运行效果如下所示:

ca2f2edb5b0f89f2b702c8877fae5b3f.png

268fb0e00b6003303526ae7bec339876.png

原文链接:Android Gradle 多渠道打包

http://www.lbrq.cn/news/793441.html

相关文章:

  • pos机做网站推广/百度数据中心
  • seo工资待遇怎么样/seo词条
  • 一般一个网站从建设到运营要多久/网络营销的实现方式
  • 温州哪里可以做企业网站/时事新闻最新消息
  • 要建一个优惠卷网站怎么做/宁波seo外包服务商
  • 网站建设制作放之/怎样做品牌推广
  • 新网域名注册续费/旺道网站优化
  • 成都专门做公司网站的公司/短视频关键词优化
  • 徐州网站定制公司哪家好/网站在线客服系统 免费
  • 网站移动适配/友链对网站seo有帮助吗
  • 网站做成小程序/手机网站搜索优化
  • 做网站java/企业品牌推广
  • wordpress 端口号/廊坊seo外包公司费用
  • java企业门户网站/百度优化关键词
  • 延边网站建设/网络服务提供者知道或者应当知道
  • access是不是网页制作工具/百度seo发帖推广
  • 网站制作团队/百度长尾关键词挖掘
  • 烟台网站制作维护/搜索引擎google
  • 旧金山网站建设/国外网站
  • 长沙网站建设推荐/深圳seo排名
  • 国内专业做网站/百度客服24小时电话人工服务
  • 怎么做网站教程+用的工具/微博营销的特点
  • 网站baohe/网络营销策划的概念
  • 网站建设需求多少钱大概/app开发制作
  • 易营宝mip网站建设/seo综合查询怎么关闭
  • 景德镇做网站/全网最好的推广平台
  • 软件下载网站建设/如何进行网络营销
  • 做慧聪网价格网站价格/今天发生的重大新闻5条
  • 网站功能列表/百度热搜关键词排名优化
  • 官方网站建设 在线磐石网络/平台网站开发公司
  • 【图像处理基石】如何使用deepseek进行图像质量的分析?
  • 防御综合实验
  • Javaweb————Apache Tomcat服务器介绍及Windows,Linux,MAC三种系统搭建Apache Tomcat
  • 【数据结构初阶】--排序(二)--直接选择排序,堆排序
  • 【文章素材】3dBackgroundBoxes(3D背景盒子组件)项目及文章思路
  • Linux 内存管理之 Rmap 反向映射