专栏名称: 刘望舒
腾讯云最具价值专家
目录
相关文章推荐
复利大王  ·  520怀孕事件? ·  8 小时前  
复利大王  ·  卷疯了:食堂档口末位淘汰 ·  昨天  
鸿洋  ·  2025 Google I/O 带来的 ... ·  2 天前  
复利大王  ·  北大软微男在女厕所偷拍! ·  2 天前  
复利大王  ·  工行软开不续签? ·  2 天前  
51好读  ›  专栏  ›  刘望舒

Android Gradle (一)Gradle的Android插件入门

刘望舒  · 掘金  · android  · 2019-10-28 23:50

正文

请到「今天看啥」查看全文


  • 代码和资源易于重用
  • 无论是针对多个apk发行版还是针对不同风格的应用程序,都可以很容易创建应用程序的多个不同版本。
  • 易于配置、扩展和自定义构建过程
  • 良好的IDE集成

Gradle的Android插件结合Android Studio成为了目前最为流行的Android构建系统。

2. Android Studio的模块类型和项目视图

Android Studio中的每个项目包含一个或多个含有源代码文件和资源文件的模块,这些模块可以独立构建、测试或调试,一个Android Studio的模块类型可以有以下几种:

Android应用程序模块 Android应用程序模块可能依赖于库模块,尽管许多Android应用程序只包含一个应用程序模块,构建系统会将其生成一个APK。

Android 库模块 Android库模块包含可重用的特定于Android的代码和资源,构建系统会将其生成一个AAR。

App 引擎模块 包含应用程序引擎集成的代码和资源。

Java 库模块 包含可重用的代码,构建系统会将其生成一个JAR包。

Android Studio3.3.2 中的Android项目视图如下所示。

Vep71s.png
所有构建文件在 Gradle Scripts 层级下显示,大概介绍下这些文件的用处。

  • 项目build.gradle:配置项目的整体属性,比如指定使用的代码仓库、依赖的Gradle插件版本等等。
  • 模块build.gradle:配置当前Module的编译参数。
  • gradle-wrapper.properites:配置Gradle Wrapper,可以查看 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper 这篇文章。
  • gradle.properties:配置Gradle的编译参数。具体配置见 Gradle官方文档
  • settings.gradle:配置Gradle的多项目管理。
  • local.properties:一般用来存放该Android项目的私有属性配置,比如Android项目的SDK路径。

这篇文章主要介绍项目build.gradle和模块build.gradle。

3.项目build.gradle

我们新建一个Android项目,它的项目build.gradle的内容如下:

buildscript {
    repositories {
        google()
        jcenter()   
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2' //1
    }
}

allprojects {
    repositories {
        google()
        jcenter()  
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
复制代码

注释1处配置依赖的Gradle插件版本,Gradle插件属于第三方插件,因此这里在buildscrip块中配置谷歌的Maven库和JCenter库,这样Gradle系统才能找到对应的Gradle插件。 如果使用 google() not found: 'google()' 错误,可以用如下代码替代:

maven { url 'https://maven.google.com' }
复制代码

如果你还不理解Gradle插件,可以查看 Gradle核心思想(五)通俗易懂的Gradle插件讲解 这篇文章。

4.模块build.gradle

新建一个Android项目,它的模块build.gradle的内容如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"






请到「今天看啥」查看全文


推荐文章
复利大王  ·  520怀孕事件?
8 小时前
复利大王  ·  卷疯了:食堂档口末位淘汰
昨天
复利大王  ·  北大软微男在女厕所偷拍!
2 天前
复利大王  ·  工行软开不续签?
2 天前
军事机密  ·  新出的视频,快看!
7 年前
陈果投资策略  ·  【安信策略】不同的基金,怎样的选择?
7 年前