文档章节

Gradle和Android Studio入门

python测试开发人工智能安全
 python测试开发人工智能安全
发布于 2016/03/09 16:31
字数 835
阅读 115
收藏 1

简介

作者博客:http://www.kevinpelgrims.com/
审稿的博客:http://www.peterfriese.de/


Android Studio May 2013发布,支持Gradle,基于JetBrains' IntelliJ IDEA,支持Linux, Mac OS X, and Microsoft Windows。
相比于Eclipse的,Android Studio有改进的用户界面设计,更好的内存监视器,更好的字符串翻译编辑器,可能的Android具体问题警告等,旨在Android开发者。增加了特殊的项目结构视图(Project有Packages和Project),更好地组织了Gradle脚本、drawables等资源。2014年12月发布的1.0之后,Android Developer Tools (ADT) for Eclipse不再有新功能,需要尽快迁移到Android Studio。

Gradle有较好的默认值、基于domain-specificlanguage (DSL 基于Groovy,一种基于JVM-based的语言,其他基于JVM-based的语言可以实现类似效果),脚本一般在文件build.gradle中,而不是XML。
Gradle的编译由一个或多个project组成、project由一个或多个task组成。每个build.gradle表示一个project,Task包含若干个Action(类似Java的方法)。

构建生命周期
工作流的动态模型:Directed Acyclic Graph (DAG)。这意味着所有的task依次处理,不可能有循环。无依赖的task会先执行。三个阶段如下:
•Initialization(初始化):创建项目实例。如果有多个模块,每个都有自己的build.gradle文件,并创建多个project。
•Configuration(配置):执行构建脚本,创建和配置每个project的task。
•Execution(执行):决定哪些task应该是执行。哪些任务的执行取决于传递的参数及当前目录。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

JCenter是预定义的maven仓库。以上为通常project视图根目录的build.gradle的配置。

模块目录的build.gradle头部的apply plugin: 'com.android.application'表示应用Android插件。如果是库,要改用library。

下面是Android特有的部分:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
}

上面的编译配置一般用最新版本。

gradle的建议代码结构图:

MyApp
├── build.gradle
├── settings.gradle
└── app
    ├── build.gradle
    ├── build
    ├── libs
    └── src
        ├── main
        │    ├── java
        │    │ └── com.package.myapp
        │    ├── res
        │    ├── drawable
        │    ├── layout
        │    └── etc.
        └── test
            └── com.package.myapp

/src/main/java The source code for the app
/src/main/res These are app-related resources (drawables, layouts, strings, and so on)
/libs These are external libraries (.jar or .aar)
/build The output of the build process


Android studio 如果选择小于API 21,会自动添加Android Support Library(包含appcompat)。

构建:Build菜单->Make Project, 快捷方式Ctrl + F9或Cmd + F9(Mac OS X)。工具栏和Gradle窗口也有类似快捷方式。

Gradle的不同版本可能不兼容,Gradle Wrapper可以下载指定版本的Gradle。Linux使用gradlew或Windows使用gradlew.bat代替gradle即可。

检查指定的版本是否存在:

# ./gradlew -v
Unzipping /root/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0/gradle-2.4-all.zip to /root/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0
Set executable permissions for: /root/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0/gradle-2.4/bin/gradle
------------------------------------------------------------
Gradle 2.4
------------------------------------------------------------
Build time:   2015-05-05 08:09:24 UTC
Build number: none
Revision:     5c9c3bc20ca1c281ac7972643f1e2d190f2c943c
Groovy:       2.3.10
Ant:          Apache Ant(TM) version 1.9.4 compiled on April 29 2014
JVM:          1.7.0_79 (Oracle Corporation 24.79-b02)
OS:           Linux 2.6.32-573.18.1.el6.x86_64 amd64

Windows使用:gradlew.bat –v

生成wrapper文件的方法:

# vi build.gradle
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
# gradle wrapper
:wrapper
BUILD SUCCESSFUL
Total time: 2.315 secs
This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.11/userguide/gradle_daemon.html

还可以指定版本:

gradle wrapper --gradle-version 2.4

生成的文件:

myapp/
├── gradlew
├── gradlew.bat
└── gradle/wrapper/
    ├── gradle-wrapper.jar
    └── gradle-wrapper.properties

    

# vi gradle-wrapper.properties 
#Tue Dec 08 19:12:35 CST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip

最后一个地址是可以修改的。   

© 著作权归作者所有

共有 人打赏支持
python测试开发人工智能安全
粉丝 186
博文 101
码字总数 382958
作品 0
邵阳
QA/测试工程师
私信 提问
给 Android 开发者的 Gradle 入门指南

本文的目的是为您提供关于 Gradle 的高级概述,以及在开发 Android 应用程序时如何适应整个构建系统。 我将通过 Gradle 和 Gradle 的 Android 插件的基础知识,以及新的 Android 项目附带的默...

oschina
2017/11/22
3K
2
error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己
2018/06/21
0
0
Android studio 使用心得(十)---android studio 多渠道打包(三)

关于使用android studio 如何打包 大家可以看这两篇文章 Android studio 使用心得(四)---android studio 多渠道打包 Android studio 使用心得(四)---android studio 多渠道打包(二) 真正的项...

veidy
2015/07/28
0
0
Android Studio 3.3 Canary 发布,包含重要的 bug 修复

Android Studio 3.3 Canary 已发布。该版本带来了不少的新特性,还修复了一些重要的 bug,例如在打包 APK 时,Gradle 会消耗大量内存,从而导致出现 Java 堆栈溢出的错误。 新特性 The flag...

局长
2018/06/30
1K
1
Gradle/Studio构建问题(Ant/Gradle)

> 使用Gradle遇到的问题及其他: Android Studio安装过程常见问题图解-- http://jingyan.baidu.com/article/fd8044fad5bdca5031137ab7.html 1. 将GitHub上的新项目导入Studio中 Pano360-mast......

shareus
2018/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 我都想和他们组成一个家庭了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @Sharon啊 :分享王菲的单曲《流年》有生之年狭路相逢终不能幸免,手心突然忽然长出纠缠的曲线。 《流年》- 王菲 手机党少年们想听歌,请使劲...

小小编辑
今天
293
12
CentOS7利用systemctl添加自定义系统服务

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下. CentOS7的每...

linuxprobe16
今天
1
0
RabbitMQ入门

RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间...

watermelon11
今天
19
0
今天的学习

自动加载:方法一 function __autoload( $className ){在这里,完成加载B这个类文件的工作。}class A{} //这是一个类$a1 = new A(); //这里没有自动加载的发生,因为A这个类...

墨冥
今天
4
0
印刷工艺步骤

印刷厂从收到订单到交付整个流程,一般涉及到以下步骤 1.设计(经过软件如cdr,psd,ai等等设计需要印刷的名片,宣传单,画册等物料); 2.排版拼版(在电脑软件这区域完成); 3.出版、出硫...

focusone
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部