android studio 3.0 gradle 打包脚本配置详解

本文介绍了android studio 3.0 gradle 打包脚本配置,分享给大家,具体如下:

修改输出的名字 保存输出的文件路径

def fileArray = []
//遍历输出文件
android.applicationVariants.all { variant ->
  variant.outputs.all { output ->
    def outputFile = output.outputFile
    if (outputFile != null && outputFile.name.endsWith('release.apk')) {
      def fileName = "xxx_${defaultConfig.versionName}_${defaultConfig.versionCode}" +
          "_${variant.productFlavors[0].name}.apk"
      outputFileName = fileName
      //往数组添加输出的文件路径
      fileArray.add(outputFile.parentFile.absolutePath + File.separator + fileName)
    }
  }

通常多渠道打包后需要输出文件 并保存最新的apk在一个文件夹中

build命令编译生成debug和release版本的包

assembleRelease命令只编译生成release版本的包

build {
//build命令加入这段代码
  doLast() {
    //遍历文件数组并进行操作
    forEachFile(fileArray)
  }
}
//assembleRelease命令加入这段代码
afterEvaluate {
  assembleRelease.doLast {
    //遍历文件数组并进行操作
    forEachFile(fileArray)
  }
}
def forEachFile(fileArray) {
  fileArray.forEach { file ->
  //遍历进行文件操作
  rename_andd_moveout_apk(file)
}
}

可以使用copy rename进行文件操作

def rename_andd_moveout_apk(orignalFile) {
  def intoFile = rootDir.parentFile.getAbsolutePath()+File.separator+"apk"
  copy {
    from orignalFile
    into intoCodeFile
    rename("${android.defaultConfig.versionName}_
    ${android.defaultConfig.versionCode}_", "")
    }
  }

可以通过gradle脚本动态配置Mainfest里面一些第三方配置,这样可以实现DEV和PRD多环境配置切换

使用:android.defaultConfig.manifestPlaceholders=["key":"value"]

在Mainfest使用${key}引用你要使用的第三方配置数据,开发过程中通常应用于个推、环信等多环境的配置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Gradle编译打包Android apk详细介绍

    Gradle编译打包Android apk详细介绍 理解Gradle构建过程,解读Android Gradle插件的配置 阅读本文一定是要使用过Gradle生成apk,文中不会讲如何安装运行Gradle,如有需要可先看文末的参考文章. APK包是一个ZIP压缩包,从Java源代码.资源文件到生成这个APK,经过了编译打包一系列特定的过程,SDK文档(/docs/tools/building/index.html)中找到.而这一系列特定的过程,重复繁琐,构建工具(build tool)就是来流程化

  • Android Studio使用教程(四):Gradle基础

    其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了很多,所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下,小伙伴们直接跟我一步步来学习吧. 什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 安装Gradle 在Android Studio系列教程一–下载与安装中新建项目成功后会下载Grad

  • Android实现APP环境分离(利用Gradle)

    一.环境分离简介 每个App项目,至少都会有两个环境:测试环境和生产环境.多的甚至有四个环境:开发环境.测试环境.预生产环境和生产环境.开发人员经常需要在环境之间切换,测试人员也同样.经常出现测试人员今天需要测试环境的最新版本,叫App开发人员打包一个给她,明天需要切换到生产版本,再叫App开发人员打包一个生产环境的给她.我们知道,一个App,在一台手机上要么只能是测试环境的,要么只能是生产环境的.测试人员要测试两个环境,只能不断替换不同环境的同个App,这实在太麻烦了.为了解决此问题,最好的方

  • Android中使用Gradle来构建App项目的入门指南

    gradle是Android开发中引入的全新的构建系统,因为全新的构建系统主要是出于下面的目的: 1. 方便复用代码和资源 2. 构建多种版本的apk更见简单,不论是为多渠道构建不同的apk还是构建不同环境的apk(debug,release) 3. 方便配置,扩展,自定义构建过程 4. 良好的IDE集成 为什么选择Gradle? Gradle主要有以下几个有点: 1. 使用领域驱动语言(DSL)来描述构建逻辑 2. 构建脚本使用Groovy,可以方便的定制构建逻辑 3. 内建的依赖管理系统,使

  • Android客户端程序Gradle如何打包

    一.前言 android客户端开发进入尾声,负责SEO同事突然发给我一个涉及45个发布渠道的噩耗,之前只发布自有渠道的工作方式(手动修改参数打包)已经不满足需求,所以引入最近比较流行的gradle打包技术. gradle基于groovy语言,引入的原因也方便了以后从现在使用的eclipse开发环境迁移到Android Studio,所以blablabla--,不多说了,先上干货. 二.准备工作 1.首先,如果使用eclipse作为开发环境,需右键点击项目,在菜单中选择"Export-"

  • 为Android Studio编写自定义Gradle插件的教程

    Google已经建议Android开发全部转向Android Studio开发,Android Studio 是使用gradle编译.打包的,那么问题来了,gradle可是有一堆东西...,为了彻底了解gradle,今天就来学习下如何写自己的gradle插件(当然插件源码是使用groovy写的),先看如下代码目录: 如上图所示,plugin目录是插件源码目录,sample是用来测试插件的. 1.在目录plugin/src/main/groovy/com/micky/gradle/下新建插件类My

  • Android Studio使用教程(六):Gradle多渠道打包

    由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了. 友盟多渠道打包 废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段: 复制代码 代码如下: <meta-data     android:name="UMENG_CHANNEL"     android:value="Channel_ID" /&g

  • Android 自定义gradle property详解及实例代码

    Android 自定义gradle property 在Android studio上运行项目,gradle的配置是必不可少的,但是随着项目的逐渐成长,迎面而来的就是.各种依赖包的添加,数不胜数的签名,渠道包等,整个gradle变得很乱,这样其实我们可以将gradle的部分内容分离出来放在另一个自定义gradle内. 如这时我们添加的Plugin 就只要对其赋值就可以了. 步骤: 在总项目根目录下创建 dependencies.gradle文件(名字可以自定义) 根目录下创建的自定义内容如下:

  • Android Studio gradle 编译提示‘default not found’ 解决办法

    在导入studio工程的时候,进行sync的时候,提示Error:Configuration with name 'default' not found. 之前由于对gradle不熟悉,所以没有找到原因,其实也是偷懒,没有认真去排查问题,今天又遇到了,就折腾了会,把所有的配置文件都打开看,最终解决问题了,发现尽然是个低级的不能低级的问题,故记录下,警醒自己. 1.打开settings.gradle发现里面有很多个include ':app'这样的include,然而发现在工程的目录下面根本没有i

  • android studio 3.0 gradle 打包脚本配置详解

    本文介绍了android studio 3.0 gradle 打包脚本配置,分享给大家,具体如下: 修改输出的名字 保存输出的文件路径 def fileArray = [] //遍历输出文件 android.applicationVariants.all { variant -> variant.outputs.all { output -> def outputFile = output.outputFile if (outputFile != null && outputF

  • Android Studio 3.0 原生支持kotlin 例子详解

    安卓虽然已经成为了移动设备第一操作系统,且影响力也延伸到了汽车和tv端,不过对于谷歌来说,需要依靠Java来做安卓开发一直是一个心病,因为Oracle公司因为java和谷歌在安卓系统上的诉讼搞得心力憔悴. 现在好了,谷歌官方正式支持Kotlin(官方网站 https://kotlinlang.org/,居然没被墙)成为官方认可的安卓开发第一语言,而且从Android Studio 3.0开始,将直接集成Kotlin而无需安装任何的插件.这个语言是由JetBrains去年发明的,它受到欢迎,主要是

  • Android Studio 3.0 Gradle 配置变更

    多渠道打包变更 flavorDimensions "default" productFlavors { xxxx { dimension "default" } } productFlavors.all { flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name] } 更改打包命名及路径 android.applicationVariants.all { variant -> if (va

  • Android Studio 3.0 gradle提示版本太老

    很多朋友在用Android Studio 3.0 gradle提示一下内容: The android gradle plugin version 3.0.0-alpha1 is too old, please update to the latest version. To override this check from the command line please set the ANDROID_DAILY_OVERRIDE environment variable to "d27b293

  • Android Studio 生成自定义jar包的步骤详解

    想要将一个项目导出为jar包,供其它项目使用,在eclipse中可以直接导出该项目为jar包,而 在AS中可以通过修改gradle才处理. 接下来就介绍下具体的步骤: 1.新建一个项目,项目名随意,eg:MakeJarApplication,在项目中新建一个module类型为android-library ,命名为testLibrary.如图: 项目结构图 2.让app依赖这个库,在app下的build.gradle文件中添加compile project(':testlibrary') dep

  • Android Studio实现仿微信APP门户界面详解及源码

    目录 前言 界面分析 界面动态实现代码 静态界面实现 总结 前言 你好! 本文章主要介绍如何用Android Studio制作简易的门户界面,主要说明框架的各部分功能与实现过程,结尾处附有源码. 界面分析 注:按钮图标是从阿里矢量图标库获取,保存在drawable文件中调用. 首先根据我们的大致规划布局,我们可以先建立三个核心XML文件: top.xml: <?xml version="1.0" encoding="utf-8"?> <Linear

  • Android studio 3.5.2安装图文教程详解

    Android Studio软件下载地址如下: 下载: http://www.android-studio.org/index.php/download Android 工具: https://www.androiddevtools.cn/ 1.下载界面 2.安装 每一步按照我选择的框安装就okay了!!!!! 3.安装完成 4.配置 5.选择界面样式 6.分配空间大小 当然你电脑内存大的话,分配大一点的空间内存 7.配置完成 我这有个小问题,不过没事,你可能不会出现这种问题,如果出现也没事,继

  • springboot2.5.0和redis整合配置详解

    基本概况 为什么使用缓存 缓存是在内存中存储的数据备份,当数据没有发生本质变化时 就可以直接从内存中查询数据,而不用去数据库查询(在磁盘中) CPU读取内存的速度要比读取磁盘快,可以提高效率 Redis缓存 Remote Dictionnary Server(远程数据服务),是一款内存高速缓存数据库. 五种常用数据类型: String(字符串).List(列表).Set(集合).Hash(散列).ZSet(有序集合) 可持久化:一边运行,一边向硬盘备份一份,防止断电等偶然情况,导致内存中数据丢失

  • Android Studio中主题样式的使用方法详解

    1.主题 主题是包含一种或多种的格式化属性集合,在程序中调用主题资源可改变窗体的样式,对整个应用或某个Activity存在全局性影响. 定义位置:res/values目录下的styles.xml文件中 标签 <style></style>:定义主题 <item></item>:设置主题的样式 示例(定义一个名为AppTheme的主题) <style name="AppTheme" parent="Theme.AppComp

  • vue-cli3.0使用及部分配置详解

    好长一段时间没有关注vue脚手架了,昨天因为需要个后台模板,用脚手架 搞了一下,竟然发现指令不能用了,看官方文档已经升级3.0,也是试的玩了一下, 大致写写怎么玩的! 1.先全局安装vue-cli3.0 检测安装: vue -V 2.创建项目(这个就跟react创建脚手架项目比较像了) 这里如果你是第一次用3.0版本的话,是没有前两个的,而只有最后两个,这里是 让你选的,第一个是默认配置,一般选第二个,自己配置,这里选择最后一个 在选择功能后,会询问更细节的配置, TypeScript: 是否使

随机推荐