`
iaiai
  • 浏览: 2210794 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Gradle 常用命令参数及解释

 
阅读更多
介绍

Gradle 是google开发的基于groovy语言 ,用于代替 ant 构建的一种配置型语言

Gradle 是基于groovy语言实现(基于JVM的语法和java类似的脚本语言)的一个Android编译系统, google针对Android编译用groovy语言开发了一套dsl,有额外需要直接使用groovy解决

gradle wrapper

每个基于gradle构建的工程都有一个gradle本地代理,叫做 gradle wrapper
在 /gradle/wrapper/gralde-wrapper.properties 目录中声明了指向目录和版本

本地建立文件 gradle.properties 或者在用户的 .gradle目录下建立 gradle.properties 文件作为全局设置,参数有
# 开启并行编译
org.gradle.parallel=true
# 开启守护进程
org.gradle.daemon=true
# 按需编译
org.gradle.configureondemand=true
# 设置编译jvm参数
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# 设置代理
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=10384
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=10384
# 开启JNI编译支持过时API
android.useDeprecatedNdk=true


安装一个全局的gradle,并配置好Path变量,避免每个项目重复下载,这样后面编译项目就可以直接运行gradle build

常用命令
注意:在window下可以直接运行 gradlew 如果是Linux 或者 mac 命令为  gradle gradlew 这里都简写成 ./gradle

任务命令
# 查看所有任务
./gradlew tasks --all
# 对某个module [moduleName] 的某个任务[TaskName] 运行
./gradlew :moduleName:taskName

快速构建命令
# 查看构建版本
./gradlew -v
# 清除build文件夹
./gradlew clean
# 检查依赖并编译打包
./gradlew build
# 编译并安装debug包
./gradlew installDebug
# 编译并打印日志
./gradlew build --info
# 调试模式构建并打印日志
./gradlew build --info --debug --stacktrace
# 强制更新最新依赖,清除构建并构建 
./gradlew clean --refresh-dependencies build

注意build命令把 debug、release环境的包都打出来的
如果需要指定构建使用如下命令

指定构建目标命令
# 编译并打Debug包
./gradlew assembleDebug
./gradlew aD
# 编译并打Release的包
./gradlew assembleRelease
./gradlew aR

构建并安装调试命令
# 编译并打Debug包
./gradlew assembleDebug
# 编译app module 并打Debug包
./gradlew install app:assembleDebug
# 编译并打Release的包
./gradlew assembleRelease
#  Release模式打包并安装
./gradlew installRelease
# 卸载Release模式包
./gradlew uninstallRelease

assemble还可以和productFlavors结合使用,如果出现类似 Task 'install' is ambiguous in root project 这种错误,请查看配置的多个渠道然后修改命令为
./gradlew install[productFlavorsName] app:assembleDebug
来用命令构建调试

查看包依赖
./gradlew dependencies --info

查看详细依赖信息

使用离线模式
./gradlew aDR --offline

守护进程
./gradle build --daemon

并行编译模式
./gradle build --parallel --parallel-threads=N

按需编译模式
./gradle build --configure-on-demand

不使用snapshot依赖仓库

前提是离线可以使用时
./gradlew clean aDR

多渠道打包

assemble还可以和productFlavors结合使用
# Release模式打包并安装
./gradlew installRelease
# 卸载Release模式包
./gradlew uninstallRelease

仓库设置

设置中心仓库

默认是jcenter、可以是mavenCentral
repositories { 
    maven { url "http://maven.oschina.net/content/groups/public" } 
}

Android Studio 提速

禁用插件

去掉一些没有用的插件
Google Cloud Testing、Google Cloud Tools For Android Studio、Goole Login、Google Services、JavaFX、SDK Updater、TestNG-J

android studio 2.2.2新特性 编译缓存

工程根目录 gradle.properties 文件里加上
android.enableBuildCache=true

这个设置可以让Android Studio 会把依赖的 jar 或 arr 缓存到本地,并且把模块名称设置为 hash 值
引用

这个开启后,可能导致 includeJarFilter 配置失效,Android Studio 升级到 2.3.0修复这个问题

每次编译生成的缓存在 $HOME/.android/build-cache
如果缓存过多可以手动删除该目录进行清除

升级到 Android Studio 2.3 后编译不兼容问题

升级到 Android Studio 2.3 后,Gradle Plugin 也升级到 2.3.0

对应推荐使用的 Gradle 版本是 3.3
这时候会发现工程模块目录下 {module name}/build/intermediates/exploded-aar/
目录没了

它会在 $HOME/.android/build-cache 下生成一部分缓存文件,来代替 exploded-aar
如果需要生成exploded-aar,可以配置项目目录下的 gradle.properties ,添加一行内容
android.enableBuildCache=false

然后重新构建项目即可在 {module name}/build/intermediates/看到 exploded-aar 目录
分享到:
评论

相关推荐

    Gradle使用手册

    ### Gradle使用手册 #### 一、介绍 Gradle 是一款基于 Java 的开源自动化构建...通过上述介绍,我们可以看到Gradle在Android项目构建过程中扮演着重要角色,通过合理配置和使用Gradle任务,可以极大地提高开发效率。

    gradle入门到精通公开课视频.txt

    - **常用命令**:`gradle build` 执行整个构建过程;`gradle clean` 清除构建结果;`gradle tasks` 列出所有可用任务等。 **2.3 Gradle 插件使用** - **插件介绍**:Gradle 插件扩展了 Gradle 的功能,提供了一套...

    Android面试题之⾃动化构建⼯具Gradle配置篇

    #### 二、常用Gradle命令 1. **gradlew clean**:清除项目下的`build`文件夹,通常用于清理之前构建产生的临时文件。 2. **gradlew check**:执行lint检查,帮助开发者发现代码中可能存在的问题。 3. **gradlew ...

    Gradle开发入门pdf

    在Android Studio中使用Gradle,有一些常用命令和参数可以帮助开发者执行不同的构建操作。例如,使用"-v"或"--version"可以查看当前Gradle的版本信息,使用"-h"或"--help"可以查看帮助信息。如果在构建过程中发生了...

    Jenkins常用的一些插件 scriptler、dynamicparameter、branch-api、gradle

    5. **Android** (虽然标签中提到,但没有直接对应的插件): Jenkins 支持Android应用的构建和测试,通常会配合Gradle插件使用。例如,`android-emulator-plugin` 可以启动和管理Android模拟器,`android-lint-plugin`...

    Android-Studio使用教程

    - **命令详解**:深入了解每个 Gradle 命令的作用及其参数。 - **依赖管理**:如何在项目中添加第三方库,包括 Maven 仓库中的库。 - **多渠道打包**:如何利用 Gradle 配置实现不同渠道的 APK 打包。 #### 六、...

    Gradle plugin to optimize png files.zip

    Gradle是Android开发中常用的构建工具,它允许开发者通过编写Groovy或Kotlin DSL脚本来自动化构建过程。这个插件的出现,使得开发者无需手动处理PNG优化,而是可以直接集成到项目的构建流程中,自动对PNG文件进行...

    Android SDK Manager和AVD Manager使用.docx

    - **Android Support Repository**:简化了Gradle中对Support Libraries的引用。 - **Intel x86 Emulator Accelerator (HAXM Installer)**:Windows平台上的Intel x86模拟器加速工具,可以显著提高模拟器的运行速度...

    Android aapt自动打包工具详细介绍

    **aapt常用参数**: aapt工具支持多种命令行参数,例如: - `l[ist]`:列出ZIP格式文件(如ZIP,JAR,APK)的内容。 - `d[ump]`:打印APK的各种信息,如资源表、权限等。 - `p[ackage]`:主要的打包命令,用于创建...

    linux打androidso库工具

    Linux平台作为Android开发的常用环境,拥有丰富的工具集来创建和管理这些库。本主题主要围绕“linux打android so库工具”展开,详细介绍如何在Linux环境下构建和使用Android SO库。 首先,我们要了解的是交叉编译的...

    Android开发环境搭建

    Eclipse是常用的Android开发IDE,选择Eclipse IDE for Java Developers版本进行下载。下载完成后,无需安装,直接解压到指定位置即可使用。这是一款跨平台的工具,适用于Windows、Linux和Mac OS等操作系统。 3. **...

    mqtt服务端搭建到android使用教程

    一个常用的库是Paho MQTT Android Service,可以通过Gradle添加依赖: ```groovy implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.2.5' ``` 2. **创建MQTT连接** 在Android代码中,创建`...

    高清彩版 Android Studio 3.0 Development Essentials, Android 8 Edition

    - **硬盘空间**:至少3GB可用空间用于Android Studio安装及SDK组件。 ##### 2.2 下载Android Studio包 访问Android Studio官方网站下载最新版本的安装程序。根据你的操作系统选择对应的安装包。 ##### 2.3 安装...

    android实现ftp上传、下载文件,支持文件夹哦

    在Android平台上,FTP(File Transfer Protocol)是一种常用的技术,用于在服务器和客户端之间传输文件。本文将详细讲解如何在Android应用中实现FTP的文件上传和下载功能,同时支持对文件夹的操作。 首先,我们需要...

    android6.0官方编译文档

    `mm`和`mmm`是常用的构建命令,`mm`用于构建当前目录下的模块,而`mmm`则可以处理多模块的构建需求。`lunch`命令用于选择目标设备配置,它会确定你编译的目标平台和版本。 4. **内核编译**:Android系统的内核是...

    Android群英传-前言.md

    - **常用命令**:如adb install、adb shell、adb logcat等。 **2.4 模拟器使用和配置** - **功能**:模拟真实设备环境,方便开发者测试应用。 - **配置**:设置模拟器的硬件特性、系统镜像等。 #### 三、Android...

    android-unittest:Android 应用程序单元测试示例

    5. **Gradle插件**: 使用`gradle test`命令执行测试,这得益于Gradle的Android插件,该插件集成了测试任务,使得构建和运行测试变得简单。`--info`参数会提供更详细的测试执行信息。 6. **测试覆盖率**: 另一个常用...

    androidMP4转换成gif动图

    // 定义命令参数 String[] command = {"convert", "-loop", "0", "-delay", "10", mp4Path, gifPath}; // 执行命令 int result = ImageMagick.execute(command, null); // 检查结果,0表示成功 if (result =...

    android-studio-settings:我的Android Studio设置

    在Android开发领域,Android Studio是官方推荐的集成开发环境(IDE),它提供了强大的工具和功能,使得开发者可以高效地创建、测试和调试Android应用程序。"android-studio-settings:我的Android Studio设置"这个...

Global site tag (gtag.js) - Google Analytics