目的:可修改app名称、icon、包名、接口地址及其它

一、      修改基本配置(包名、版本号等)

配置module下的build.gradle

添加productFlavors例如:

productFlavors {

fangwei{

applicationId "com.f"

versionCode 1

versionName "0.1.04.21"

//resValue "string", "app_name", "方维"

}

shunguoshi{

applicationId "com.x"

versionCode 1

versionName "0.1.04.21"

//生成res资源文件值,还可以通过添加文件夹的方式替换

//resValue "string", "app_name", "顺"

//生成BuildConfig值

buildConfigField 'String','DOMAIN_WWW','"s.com"'

}

}

二、      修改资源文件(接口地址、app名称、launcher等)

自定义BuildConfig(接口地址)

buildConfigField 'String','DOMAIN_WWW','"s.com"'

自定义资源(app名称、颜色等)

两种方式

1、resValue

//resValue "string", "app_name", "顺"

resValue ‘boolean’,’isDebug’,’true’

2、为flavor建立对应资源文件

在app->src文件夹下面建立对应flavor如

“fangwei”->res->values->strings.xml

drawable-hdpi->ic_launcher.png

drawable-xhdpi->ic_launcher.png

drawable-xxhdpi->ic_launcher.png

drawable-mdpi->ic_launcher.png

配置应用签名

signingConfigs {

config {

keyAlias 'alias'

keyPassword 'pwd2'

storeFile file('key.keystore')

storePassword 'pwd1'

}

}

AndroidManifest占位符(用于多渠道打包、包名等)

Manifest文件中的内容

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

build.gradle的内容

android {

defaultConfig {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: 'dev']

}

}

三、运行Gradle生成apk

1、chmod 777 gradlew

然后再执行进行编译

./gradlew  build

./gradlew tasks  //查看android gradle的所有任务

./gradlew assembleFangweiRelease   //生成apk,在build/outputs/apk文件夹下

附整份gradle配置

apply plugin: 'android'

dependencies {

compile 'com.android.support:support-v4:19.0.0+'

compile fileTree(dir: 'libs', include: '*.jar')

compile project(':ZYLibrary')

compile project(':library')

}

//def buildTime() {

//    def date = new Date()

//    def formattedDate = date.format('yyyyMMdd')

//    return formattedDate

//}

android {

//    buildTypes {

//        release {

//            applicationVariants.all { variant ->

//                variant.outputs.each { output ->

//                    if (output.outputFile != null && output.outputFile.name.endsWith('.apk')

//                            &&'release'.equals(variant.buildType.name)) {

//                        def apkFile = new File(

//                                output.outputFile.getParent(),

//                                "yizan_${variant.flavorName}_v${variant.versionName}_${buildTime()}.apk")

//                        output.outputFile = apkFile

//                    }

//                }

//            }

//        }

//    }

signingConfigs {

config {

keyAlias 'o'

keyPassword 'y

storeFile file('o2o.keystore')

storePassword 'y'

}

}

compileSdkVersion 22

buildToolsVersion "22.0.1"

defaultConfig {

applicationId "com.x"

minSdkVersion 14

targetSdkVersion 15

versionCode 1

versionName "0.1.04.21"

// Enabling multidex support.

multiDexEnabled true

//        resValue "string", "app_name", "方"

signingConfig signingConfigs.config

buildConfigField 'String','DOMAIN_WWW','"j.com"'

}

productFlavors {

fangwei{

applicationId "com.y"

versionCode 1

versionName "0.1.04.21"

//            resValue "string", "app_name", "维"

}

shunguoshi{

applicationId "com.s"

versionCode 1

versionName "0.1.04.21"

//            resValue "string", "app_name", "顺"

buildConfigField 'String','DOMAIN_WWW','"s.com"'

}

}

sourceSets {

main {

manifest.srcFile 'AndroidManifest.xml'

java.srcDirs = ['src']

resources.srcDirs = ['src']

aidl.srcDirs = ['src']

renderscript.srcDirs = ['src']

res.srcDirs = ['res']

assets.srcDirs = ['assets']

jniLibs.srcDirs = ['libs']

}

debug.setRoot('build-types/debug')

release.setRoot('build-types/release')

}

}

参考:

http://tech.meituan.com/mt-apk-adaptation.html

http://spencer-dev.com/blog/2015/android-xiang-mu-li-yong-android-studio-he-gradle-da-bao-duo-ban-ben-apk.html/

http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html

外包采用Gradle生成多套app打包的更多相关文章

  1. 勾勾街——一个专注于免越狱免签名的苹果ios APP打包生成的网站

    自涛舅舅研发的“苹果ios APP自助生成系统”上线以来,每天都有大量的用户注册和生成免越狱app,为什么? 因为我们有明显的技术优势,APP不需要上架appstore, 生成APP又不需要企业签名证 ...

  2. 使用 Gradle 实现一套代码开发多个应用

    代码地址如下:http://www.demodashi.com/demo/11297.html 在文章 使用 Gradle 对应用进行个性化定制 中,我们能够针对一个应用的正式服.测试服.超管服等其他 ...

  3. App 打包并跳过 AppStore 的发布下载

    一.App 打包 (编译 -> 链接 -> 打包) 1) 下载发布版的证书并安装. 2)Target -> Build Setting,改为发布版本的 profile 3) Targ ...

  4. iOS开发之 xcode6 APP 打包提交审核详细步骤

    一. 在xcode6.1和ios10.10.1环境下实现app发布 http://blog.csdn.net/mad1989/article/details/8167529 http://jingya ...

  5. 【转】xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)

    原文网址:http://blog.csdn.net/mad1989/article/details/8167529 最近项目到了最后的阶段,测试完一切ok后,准备打包以及提交,不料看到网上众教程,好多 ...

  6. xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)

    链接地址:http://blog.csdn.net/mad1989/article/details/8167529 打包发布APP流程真机测试和APP发布流程APP提交审核流程真机测试打包发布上传出错 ...

  7. iOS开发基础:最新的APP打包上架流程

    之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...

  8. ionic app打包和签名

    ionic app打包和签名 1.首先在项目根目录执行  ionic platform add android  生成Android平台. 2.配置应用签名:在根目录下执行以下命令 keytool - ...

  9. Django APP打包重用

    引言 有时候,我们需要将自己写的app分发(dist)给同事,分享给朋友,或者在互联网上发布,这都需要打包.分发我们的app. Django的子系统重用是基于app级别的.也就是一个项目可以包含多个互 ...

随机推荐

  1. HDU 1754 I Hate It (线段树)

    题意:略. 析:裸的线段树. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include < ...

  2. JBOSS通过Apache负载均衡方法一:使用mod_jk

    JBOSS通过Apache负载均衡方法一:使用mod_jk   本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负 ...

  3. 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统

    虚拟文件系统(VFS)是linux内核和具体I/O设备之间的封装的一层共通访问接口,通过这层接口,linux内核可以以同一的方式访问各种I/O设备. 虚拟文件系统本身是linux内核的一部分,是纯软件 ...

  4. 安卓系统上安装.net运行时 mono runtime

    感谢以下博主: ubuntu指南 http://dawndiy.com/archives/229/ img大小调整 http://zebinj.blog.163.com/blog/static/206 ...

  5. 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作

    开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来, ...

  6. unity3D——自带寻路Navmesh入门教程(二)(转)

    转自:http://liweizhaolili.blog.163.com/blog/static/16230744201271210237616/ 上一节简单介绍了NavMesh寻路的基本用法,这次来 ...

  7. mongodb(一) NoSQL简介

    NoSQL简介   写在前面,本文就是学习的记录笔记,大部分内容都属于参考,分享给大家 关系与非关系数据库      那么应该了解下影响关系数据库性能的主要原因: 在关系型数据库中,导致性能欠佳的最主 ...

  8. [游戏模版16] Win32 飞机射击 敌人追踪

    >_<:AI introduction. >_<:According the plane position (nowX,nowY) relative to birds' pos ...

  9. LInux iptables学习

    作者原文 : http://blog.chinaunix.net/uid-9950859-id-98277.html       要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多 ...

  10. mysql 密码重置

    1.停止mysql服务(以管理员身份,在cmd命令行下运行) net stop mysql 2.使用命令启动mysql数据库,跳过权限验证 mysqld -nt --skip-grant-tables ...