作家
登录

Gradle for Android第二篇( Build.gradle入门 )

作者: 来源: 2017-04-10 16:02:53 阅读 我要评论

  •        }  
  •    } 
  •    dependencies { 
  •       compile fileTree(dir: 'libs', include: ['*.jar']) 
  •       compile 'com.android.support:appcompat-v7:22.2.0' 
  •     }    
  • 插件

    该文件的第一行是Android应用插件,该插件我们在上一篇博客已经介绍过,其是google的Android开辟团队编写的插件,可以或许供给所有关于Android应用和依附库的构建,打包和测试。

    Android

    该办法包含了所有的Android属性,而独一必须得属性为compileSdkVersion和buildToolsVersion:

    • compileSdkVersion:编译该app时刻,你想应用到的api版本。
    • buildToolsVersion:构建对象的版本号。

    构建对象包含了很多实用的敕令行敕令,例如aapt,zipalign,dx等,这些敕令可以或许被用来产生多种多样的应用法度榜样。你可以经由过程sdk manager来下载这些构建对象。

    1. defaultConfig { 
    2.        applicationId "com.gradleforandroid.gettingstarted" 
    3.        minSdkVersion 14 
    4.        targetSdkVersion 22 
    5.        versionCode 1 
    6.        versionName "1.0" 
    7.  

    base插件定义潦攀例如assemble和clean义务,Java插件定义了check和build义务,这两个义务不在base插件中定义。

    第一个属性是applicationId,该属性复写了AndroidManifest文件中的包名package

    name,然则关于applicationId和package

    name在AndroidManifest.xml有两个感化:其作为一个app的独一标示,并且其被用在了R资本文件的包名。

    Gradle可以或许很轻松的构建不合版本的app,应用构建变种。举个例子,其可以或许很轻松的创建一个免费版本和付费版本的app。这两个版本须要分隔的标示码,所以他们可以或许以不合的app涌如今各大年夜应用市廛,当然他们也可以或许同时安装在一个手机中。资本代码和R文件必须拥有雷同的包名,不然你的资本代码将须要改变,这就是为什么Android开辟团扼要将package name的两大年夜功能拆分开。在AndroidManifest文件中定义的package name依然被用来作为包名和R文件的包名。而applicationid将被用在设备和各大年夜应用市廛中作为独一的标示。

    接下来将是minSdkVersion和targetSdkVersion。这两个和AndroidManifest中的<uses-sdk>很像。minSdkVersion定义为最小支撑api。

    versionCode将会作为版本号标示,而versionName毫无感化。

    所有的属性都是重写了AndroidManifest文件中的属性,所以你没须要在AndroidManifest中定义这些属性了。

    buildTypes办法定义了若何构建不合版本的app,我们将鄙人一篇博客中有所介绍。

    依附包

    依附模块作为gradle默认的属性之一(这也是为什么其放在了Android的外面),为你的app定义了所有的依附包。默认情况下,我们依附了所有在libs文件下的jar文件,同时包含了AppCompat这个aar文件。我们将会鄙人一篇博客中评论辩论依附的问题。

    让我们开端tasks吧

    如不雅你有很多模块在一个工程下,你可以这么定义你的project文件。

    如不雅你想知道你若干tasks可以用,直接运行gradlew tasks,其会为你展示所有可用的tasks。当你创建了一个Android工程,那么将包含Android tasks,build tasks,build setup tasks,help tasks,install tasks,verification tasks等。

    根本的tasks

    android插件依附于Java插件,而Java插件依附于base插件。

    base插件有根本的tasks生命周期和一些通用的属性。

    这些tasks的商定含义:

    • assemble: 集合所有的output
    • clean: 清除所有的output
    • check: 履行所有的checks检查,平日是unit测试和instrumentation测试
    • build: 履行所有的assemble和check

    Java插件同时也添加了source sets的概念。

    Android tasks

    android插件持续了这些根本tasks,并且实现了他们本身的行动:

    • assemble 针对每个版本创建一个apk
    • clean 删除所有的构建义务,包含apk文件
    • check 履行Lint检查并且可以或许在Lint检测到缺凳?停止履行脚本
    • build 履行assemble和check

    默认情况下assemble tasks定义了assembleDebug和assembleRelease,当然你还可以定义更多构建版本。除了这些tasks,android 插件也供给了一些新的tasks:

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)