文档章节

Android-Gradle 构建修改[applicationId]和[packageName]

土渣渣
 土渣渣
发布于 2017/02/08 15:02
字数 271
阅读 18
收藏 0
点赞 0
评论 0

需求

利用gradle打包时,不止要动态替换配置文件的package,希望生产的 资源文件(R.Strings,R.values)R文件的包名也发生变化,android的gradle 插件默认是不支持的

一,代码目录结构

输入图片说明

二,修改 Top-level build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    description 'Clean the build files'
    delete rootProject.buildDir
}



tasks.getByPath("app:pre[Flavors_baidu]ReleaseBuild").dependsOn ":app:flavors_baidu_release"
tasks.getByPath("app:pre[Flavors_baidu]DebugBuild").dependsOn ":app:flavors_baidu_debug"
tasks.getByPath("app:pre[Flavors_360]ReleaseBuild").dependsOn ":app:flavors_360_release"
tasks.getByPath("app:pre[Flavors_360]DebugBuild").dependsOn ":app:flavors_360_debug"

  • 直接在构建不同变体时调用自定义的任务,任务定义在 app/build.gradle

三,修改 Second-level build.gradle

配置 flavors

android{
    productFlavors {

        flavors_baidu{
            applicationId 'com.baidu.demo'
            versionNameSuffix '.baidu'
        }

        flavors_360{
            applicationId = "com.360.demo"
            versionNameSuffix '.360'
        }
    }
}

自定义任务

android{
task flavors_baidu_release() {
        doFirst {
            println "----------------------------flavors_baidu_release--------------------------------------"
             sourceSets.main. manifest.srcFile 'src/baidu/AndroidManifest_baidu.xml'
            println sourceSets.main. manifest.srcFile

            println "----------------------------flavors_baidu_release--------------------------------------"
        }
    }

    task flavors_baidu_debug() {
        doFirst {
            println "----------------------------flavors_baidu_debug--------------------------------------" 
            sourceSets.main. manifest.srcFile 'src/main/AndroidManifest_baidu.xml'
            println sourceSets.main. manifest.srcFile

            println "----------------------------flavors_baidu_debug--------------------------------------"
        }
    }
    task flavors_360_release() {
        doFirst {
            println "----------------------------flavors_360_release--------------------------------------" 
            sourceSets.main. manifest.srcFile 'src/360/AndroidManifest_360.xml'

            println sourceSets.main. manifest.srcFile


            println "----------------------------flavors_360_release--------------------------------------"
        }
    }
    task flavors_360_debug() {
        doFirst {
            println "----------------------------flavors_360_debug--------------------------------------" 
            sourceSets.main. manifest.srcFile 'src/360/AndroidManifest_360.xml'

            println sourceSets.main. manifest.srcFile 
            println "----------------------------flavors_360_debug--------------------------------------"
        }
    }
}
  • OK 没了

© 著作权归作者所有

共有 人打赏支持
土渣渣
粉丝 1
博文 5
码字总数 4953
作品 0
深圳
程序员
Gradle实现Android多渠道定制化打包

最近在项目中遇到需要实现 Apk 多渠道、定制化打包, Google 、百度查找了一些资料,成功实现了上述功能,在此记录以备不时之需,温故而知新,可以为师矣~ 需求可以总结如下: 如何实现多个 ...

玄学酱 ⋅ 2017/08/03 ⋅ 0

使用Gradle构建多版本app

资源文件个性化处理 res目录下的都算资源文件(layout、values、drawable、mipmap) 在build.gradle中定义productFlavors buildToolsVersion "24.0.2"defaultConfig {applicationId "com.atea......

atearsan ⋅ 2016/09/19 ⋅ 2

读书笔记--Android Gradle权威指南(下)

前言 最近看了一本书《Android Gradle 权威指南》,收获挺多,就想着来记录一些读书笔记,方便后续查阅。 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南(上) 上一篇中我们讲了:...

请叫我大苏 ⋅ 05/27 ⋅ 0

使用gradle进行构建打包操作

由于我们部署的jenkins执行的Android构建操作就是由Gradle来实现,所以以下是我们在使用gradle在执行构建操作时,gradle的构建原理 一.Gradle的安装和配置 1. 我们要从Gradle的官网,去下载g...

awesome@qa ⋅ 05/15 ⋅ 0

Gradle - Manifest

Manifest DSL提供了配置以下Manifest条目的功能: minSdkVersion / targetSdkVersion / versionCode / versionName / applicationId / Instrumentation test runner android元素中的defaultCo......

老朱教授 ⋅ 2017/10/01 ⋅ 0

寄Android开发Gradle你需要知道的知识

初识Gradle Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和...

猴亮屏 ⋅ 05/22 ⋅ 0

两个项目功能高度相似,两份代码怎么同步?

都是Android项目 项目是公司产品,要长期维护 包名不一样(因为有些第三方服务可能根据包名区分app,而不是applicationId) 先描述下情景: 项目A已做完,项目B启动跟进项目A,前期功能高度相似...

atearsan ⋅ 2016/08/23 ⋅ 3

读书笔记--Android Gradle权威指南(上)

最近看了一本书《Android Gradle 权威指南》,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所以打算写一篇读书笔记,将书中一些我个人觉得蛮有用的点记录、总结一下。 前言 首先,...

请叫我大苏 ⋅ 05/24 ⋅ 0

Android Studio大课堂 - 6.1.打包 - 详解build.gradle

AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解析build.gralde文件来打包的,所以搞懂build.gradle文件是至关重要的,结构如下所示 apply plugin用来指定用的是哪个插件,取...

丁佳辉 ⋅ 2016/08/04 ⋅ 0

【转载】Android Studio大课堂 - 6.1.打包 - 详解build.gradle

AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解析build.gralde文件来打包的,所以搞懂build.gradle文件是至关重要的,结构如下所示 apply plugin用来指定用的是哪个插件,取...

beijing_zbs ⋅ 2015/12/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Day 17 vim简介与一般模式介绍

vim简介 vi和Vim的最大区别就是编辑一个文件时vi不会显示颜色,而Vim会显示颜色。显示颜色更便于用户编辑,凄然功能没有太大的区别 使用 yum install -y vim-enhanced 安装 vim的三种常用模式...

杉下 ⋅ 56分钟前 ⋅ 0

【每天一个JQuery特效】根据可见状态确定是否显示或隐藏元素(3)

效果图示: 主要代码: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>根据可见状态确定 是否显示或隐藏元素</title><script src="js/jquery-3.3.1.min.js" ty......

Rhymo-Wu ⋅ 今天 ⋅ 0

OSChina 周四乱弹 —— 初中我身体就已经垮了,不知道为什么

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @加油东溪少年 :下完这场雨 后弦 《下完这场雨》- 后弦 手机党少年们想听歌,请使劲儿戳(这里) @马丁的代码 :买了日本 日本果然赢了 翻了...

小小编辑 ⋅ 今天 ⋅ 12

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部