Android Gradle 插件

Android Gradle 插件,第1张

概述AndroidGradle简介从Gradle角度看,Android插件是由Google的Android团队开发的一个第三方插件。从Android的角度看,Android插件是基于Gradle构建的,是和Androidstudio完美搭配的新一代构建系统。使用它可以很轻松的执行以下 *** 作:自定义,配置和扩展编译流程。使用 AndroID Gradle 简介

从 Gradle 角度看,AndroID 插件是由 Google 的 AndroID 团队开发的一个第三方插件。

从 AndroID 的角度看,AndroID 插件是基于 Gradle 构建的,是和 AndroID studio 完美搭配的新一代构建系统。

使用它可以很轻松的执行以下 *** 作:
自定义,配置和扩展编译流程。
使用相同的项目和模块为你的应用创建多个具有不同功能的 APK。
在不同源集之间重复使用代码和资源。

利用 Gradle 的灵活性,可以在不修改应用核心源文件的情况下完成以上所有 *** 作。

AndroID 插件能做的还有很多,更多的可以参阅 配置构建

插件分类

AndroID 插件的分类其实是根据 AndroID 工程的属性分类的。

在 AndroID 中有很多种工程类型,常见的有

App 应用工程,用于生成可运行的 APK 。library 库工程,用于生成 AAR 包给其他 APK 应用工程公用。

分别对应的插件 ID 是

App 插件 :com.androID.applicationlibrary 插件:com.androID.library

在创建 Module 时就可以看到很多类型

通过应用以上不同的插件就可以配置不同的 AndroID 工程,然后配合 AndroID studio 就可以分别对它们进行编译,测试,发布等 *** 作。

应用插件

在 AndroID studio 里创建 Module 的时候选择不同的工程会自动应用对应的插件。

如果不配合 AndroID studio 应用,可以在配置脚本 build.gradle 里设置对应的插件ID 。
因为 AndroID 插件是托管在 jcenter 仓库上的,所以必须在 repositorIEs{} 添加 jcenter 仓库。

这样就能找到 AndroID 插件了,具体为什么这么做,看这里。
然后是把构件依赖添加到 classpath 。

这一步一般是在根项目的配置文件里配置的,这样就不用每一个子项目都配置了。

buildscript {        repositorIEs {        jcenter()            }    dependencIEs {        classpath 'com.androID.tools.build:gradle:3.6.3'    }}

最后就是在子项目里应用插件了。

apply plugin: 'com.androID.application'apply plugin: 'com.androID.library'
任务

AndroID 插件是继承自 Java 插件的,自然把 Java 的任务也继承来了,例如

assemblebuildcleancheck

除了继承 Java 插件的,AndroID 插件本身也添加了自己的任务,例如

connectCheck 在所有连接设备或者模拟器上运行 check 检查。deviceCheck 通过 API 链接远程设备运行 checks 。它被用于 CI 服务器上。lint 在所有的 ProductFlabor 上运行 lint 检查。install 在已连接的设备上安装 应用。uninstall 在已连接的设备上卸载应用。

除此之外还有些不太常用的任务:

signingReport 可以打印应用的签名androIDDependencIEs 可以打印 AndroID 的依赖。

一般我们常用的任务是 build、assemble、clean、check、lint等,通过这些任务可以对应用进行打包生成 APK,对现有的 AndroID 工程进行 lint 检查等。

还有一些其他的任务,可以通过命令查看

gradle tasks 


在 AndroID studio 的 Gradle 窗口也可以看到所有的任务

关于 Java 插件的介绍,移步 Java 插件

AndroID 工程详细示例

AndroID 插件继承自 Java 插件,具备 Java 插件所有的特性,其目录结构也和 Java 差不多。

使用 AndroID studio 创建一个工程,可以得到以下目录:

我们的重点放在项目的配置脚本文件上,大部分的配置是在这里的。

这是一个标准的多项目的 Gradle 目录。

settings.gradle 配置参与构建的项目,会在初始化阶段被执行。local.propertIEs 是本地配置,配置 sdk和ndk 的位置。gradlew.bat Gradle 在 windows 系统下的执行脚本gradlew Gradle 在 unix 系统下的执行脚本gradle.propertIEs Gradle属性配置文件build.gradle Gradle 配置文件 这里是根项目的配置文件。*.iml AndroID studio 自动生成的文件,每个项目都会生成一个。.gitignore Git 的忽略配置gradle/wrapper 目录是 Gradle Wrapper 使用的目录gradle-wrapper.jar 是执行 Gradle Wrapper 使用的gradle-wrapper.propertIEs 是配置 Gradle Wrapper 属性的app 目录是默认创建的一个 App 应用工程。在 settings.gradle 里会默认导入此子项目。

关于更多 Gradle 介绍,移步 Gradle 系列,在持续更新中。

settings.gradle

//项目名称,默认是目录名字rootProject.name='AndroIDGradleExample'//导入子项目 app include ':app'

local.propertIEs

# 配置 SDK 在本机的目录,创建项目时,AndroID studio 会自动配置,如果需要自己单独设置,可以更改sdk.dir=/Users/skymxc/library/AndroID/sdk# ndk 在本机的目录 需要时配置##ndk.dir=/Users/skymxc/library/AndroID/sdk/ndk-bundle

gradle.propertIEs

# 使用 AndroIDX 更多详细可查看 https://developer.androID.com/topic/librarIEs/support-library/androIDx-rnandroID.useandroidX=true# 自动转换第三方库使用 androIDx ;automatically convert third-party librarIEs to use AndroIDXandroID.enableJetifIEr=true# 为 JVM 守护进程指定参数;SpecifIEs the JVM arguments used for the daemon process.# 调整内存设置的参数;The setting is particularly useful for tweaking memory settings.org.gradle.jvmargs=-Xmx1536m

.gitignore

*.iml.gradle.IDea/local.propertIEs/.IDea/caches/.IDea/librarIEs/.IDea/modules.xml/.IDea/workspace.xml/.IDea/navEditor.xml/.IDea/assetWizardSettings.xml.DS_Store/build/captures.externalNativeBuild.cxx

build.gradle 根项目的配置脚本,可以在这里配置所有项目都会用到的共性配置,例如配置所有子项目都会使用的仓库。

// top-level build file where you can add configuration options common to all sub-projects/modules.//顶层配置文件,这里添加的配置可选择配置到所有子项目//配置脚本,主要是配置 Gradle 脚本执行使用的依赖。buildscript {    //使用的插件所在的仓库,例如 AndroID 插件就放在了 jcenter 上    repositorIEs {        Google()        jcenter()            }    //使用的插件依赖    dependencIEs {        // AndroID 构建工具        classpath 'com.androID.tools.build:gradle:3.6.3'                // NOTE: Do not place your application dependencIEs here; they belong        // in the indivIDual module build.gradle files        //注意:不要子项目的依赖放在这里,各自项目的依赖应该放在各自项目的 build.gralde 配置脚本里。        //这里的配置会应用到所有项目。    }}//会遍历所有子项目,这里相当于给所有项目都配置了仓库了。allprojects {    //给所有项目配置仓库    repositorIEs {        Google()        jcenter()            }}// 配置 clean 任务,删除根目录的 build 目录。task clean(type: Delete) {    delete rootProject.buildDir}
应用工程目录

libs 放置第三方的 jar ,也可以放置 so 库。src 源文件src/androIDTest AndroID测试目录,这里可以写测试代码,执行测试src/main main源集,其中 java 目录是 java 源代码,res 目录是资源目录src/test 测试目录,其中 java 目录可以写单元测试等测试代码,执行测试.gitignore git 忽略文件build.gradle Gradle 配置脚本proguard-rules.pro 配置Proguard 混淆规则;AndroIDManifest.xml AndroID 清单文件;常见的配置有四大组件,使用的权限;

app/.gitignore

/build

app/build.gradle

//使用 AndroID 应用插件apply plugin: 'com.androID.application'// androID 是 AndroID插件提供的扩展类型。 AndroID 工程的配置都可以在这里配置。androID {    //编译的SDK 版本    compileSdkVersion 29    //构建工具版本    buildToolsversion "29.0.2"    //默认配置,它是一个 ProductFlavor    defaultConfig {        //应用程序ID,创建时的包名,可以更改。        applicationID "cn.sintoon.androIDgradleexample"        //最小支持的SDK 版本        minSdkVersion 19        //目标 SDK 版本        targetSdkVersion 29        //应用版本代码,一般用于控制APP的升级。        versionCode 1        //应用版本名称,用户可以看到。        versionname "1.0"        //配置单元测试使用的 runner        testInstrumentationRunner "androIDx.test.runner.AndroIDJUnitRunner"    }    //构建类型    buildTypes {        //发布类型        release {            //是否启用混淆            MinifyEnabled false            //proguard 规则文件;            proguardfiles getDefaultProguardfile('proguard-androID-optimize.txt'), 'proguard-rules.pro'        }    }}//使用的依赖dependencIEs {    implementation filetree(dir: 'libs', include: ['*.jar'])    implementation 'androIDx.appcompat:appcompat:1.1.0'    implementation 'androIDx.constraintlayout:constraintlayout:1.1.3'    testImplementation 'junit:junit:4.12'    androIDTestImplementation 'androIDx.test.ext:junit:1.1.1'    androIDTestImplementation 'androIDx.test.espresso:espresso-core:3.2.0'}

AndroID 工程的配置都在 androID{} 中。通过它,可以对 AndroID Gradle 工程进行自定义配置。

defaultConfig{} 里是默认的配置,它是一个 ProductFlavor 。

getDefaultProguardfile 是 AndroID 扩展的一个方法,它可以获取你的 AndroID SDK 目录下默认的 proguard 配置文件。 在 androID-sdk/tools/proguard/ 目录下,文件名就是传入的参数 proguard-androID-optimize.txt 。


我在 github 建了一个仓库,是 AndroID 插件的配置示例,会持续把所有的配置和注释都记录在这里以供查阅,AndroidGradleExample。

总结

以上是内存溢出为你收集整理的Android Gradle 插件全部内容,希望文章能够帮你解决Android Gradle 插件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1060885.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存