文档章节

Android实战技巧之十一:Android Studio和Gradle

yolinfeng
 yolinfeng
发布于 2015/06/14 12:18
字数 1554
阅读 65
收藏 0
点赞 0
评论 0

经过两个多月的AS体验,我认为是时候将Android的开发环境迁移到AS上了。目前最新版本是1.0.2(大年30当天升级到1.1.0),除了UI控件拖拽偶尔崩溃的问题(Ubuntu),其他功能用来还是十分流畅和高效。打动我的有如下几个特色:

  • 智能感知体验特好,堪比VS
  • 布局预览,手写布局后预览页面即时显示,便于布局调整和优化
  • 编辑速度飞快流畅,毫无eclipse的卡顿
  • 布局或源码中有图标和颜色的预览,十分直观
  • 调试时体验极佳
  • 集成了Terminal,喜欢命令行操作的伙伴不用额外启动终端了。

总之一句话,就是用起来特别爽!


Android Studio 源于IntelliJ IDEA的社区版,构建工具是Gradle这个下一代的构建工具,再加上Google为Android定制的一些工具,那么AS必然会成为Android开发工具的经典款。

Android Studio的安装

Adnroid官网上不去,我们可以到其他网站下载AS,然后再升级到1.0.2。
AS对系统的要求不低,不过我这i7处理器+8G内存还是毫无压力啊。

Windows

Microsoft® Windows® 8/7/Vista/2003 (32 or 64-bit)
2 GB RAM minimum, 4 GB RAM recommended
400 MB hard disk space
At least 1 GB for Android SDK, emulator system images, and caches
1280 x 800 minimum screen resolution
Java Development Kit (JDK) 7
Optional for accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality

Mac OS X

Mac® OS X® 10.8.5 or higher, up to 10.9 (Mavericks)
2 GB RAM minimum, 4 GB RAM recommended
400 MB hard disk space
At least 1 GB for Android SDK, emulator system images, and caches
1280 x 800 minimum screen resolution
Java Runtime Environment (JRE) 6
Java Development Kit (JDK) 7
Optional for accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality

On Mac OS, run Android Studio with Java Runtime Environment (JRE) 6 for optimized font rendering. You can then configure your project to use Java Development Kit (JDK) 6 or JDK 7.
Linux

GNOME or KDE desktop
GNU C Library (glibc) 2.11 or later
2 GB RAM minimum, 4 GB RAM recommended
400 MB hard disk space
At least 1 GB for Android SDK, emulator system images, and caches
1280 x 800 minimum screen resolution
Oracle® Java Development Kit (JDK) 7

下载后将其解压到你指定的路径。我在Ubuntu下工作,就直接将其放到/opt下了。解压后内容如下:

android-studio3$ ls
bin  build.txt  gradle  Install-Linux-tar.txt  lib  license  LICENSE.txt  NOTICE.txt  plugins

值得一说的是,gradle就在这里,一会儿我们可以直接用gradle去做简单的编译工作。首先,我们要执行bin下的studio.sh启动AS,就像Install-Linux-tar.txt中说的,我们可以将这个bin目录放到系统变量中,以后启动AS只需输入studio.sh即可。比如我在.bashrc中添加如下内容:

export PATH="$PATH:/opt/android-studio3/bin"
export PATH="$PATH:/opt/android-studio3/gradle/gradle-2.2.1/bin"

首次启动会检测sdk并升级到最新,如果不用代理,这一步我们无法通过,AS就不会启动成功。解决办法就是将自己的Adnroid SDK Manager配好代理到国内的镜像,请参照《Android实战技巧之九:最新Android开发环境(Eclipse+ADT+Android 5.0) 》,顺利通过升级后,AS会成功启动。后面的事情就简单了,界面清晰明了,就像你用其他IDE一样,上手很快。但是项目结果变化很大(与Eclipse相比),快捷键变化也很大,都要适应一段时间。下载一份Keymap打印出来,用到了就看看,会很快进入状态。

Tips:
打开项目后修改sdk和jdk路径,设置如下:File –>Other Settings –>Default project Structure
如果你喜欢黑色风格的主题,那么切换到吸血鬼Darcula主题是个不错的选择:File–>Settings–>Appearance–>Theme


Gradle

项目中有两个build.gradle文件,如下:

$ find -name build.gradle
./app/build.gradle
./build.gradle

项目根目录下的build.gradle只做了比较commen的配置,app下的build.gradle是针对此app更细致的配置:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.linc.arrowfall"
        minSdkVersion 17
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

Make Project(Ctrl+F9)时,右下角Gradle Console就会打印如下信息:

Executing tasks: [:app:compileDebugSources]

Configuration on demand is an incubating feature.
:app:preBuild
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava
:app:compileDebugNdk
:app:compileDebugSources

BUILD SUCCESSFUL

Total time: 10.23 secs

先放下AS中的Gradle,我们先从Gradle命令行说起。刚刚提到AS中自带的Gradle路径在android-studio3/gradle/gradle-2.2.1/bin下,将其加入到环境变量(如上),这样在如何位置都可以使用gradle工具了。下面来作一下gradle最简单的使用:

$ gradle -v

------------------------------------------------------------ Gradle 2.2.1 ------------------------------------------------------------

Build time:   2014-11-24 09:45:35 UTC
Build number: none
Revision:     6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a

Groovy:       2.3.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.7.0_71 (Oracle Corporation 24.71-b01) OS: Linux 3.13.0-45-generic amd64

gradle是正常工作了,下面来个hello world吧。新建一个build.gradle文件,加入如下代码:

task helloworld << {
        println 'hello world'
}

这个task只输出一条log,执行如下命令:

$ gradle -q helloworld
hello world

参数-q只是打印log,这个task也就是此功能而已。
在此目录下执行gradle –gui,调出图形界面的gradle,看看helloworld的其他信息。

编译Java程序
现在尝试编译一个最简单的Java程序,在刚刚的目录下新建目录和文件如下:

$ mkdir -p src/main/java/com/linc; vim src/main/java/com/linc/HelloWorld.java

代码内如如下:

package com.linc;

public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("hello, world");
    }
}

build.gradle文件与src目录平级,内如只有一行:

apply plugin: 'java'

此时运行gradle build:

$ gradle build
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 2.206 secs

此时的目录结构变为如下所示:

$ tree -L 6
.
├── build
│   ├── classes
│   │   └── main
│   │       └── com
│   │           └── linc
│   │               └── HelloWorld.class
│   ├── dependency-cache
│   ├── libs
│   │   └── helloworld.jar
│   └── tmp
│       ├── compileJava
│       └── jar
│           └── MANIFEST.MF
├── HelloWorld.java
└── src
    └── main
        └── java
            └── com
                └── linc
                    └── HelloWorld.java

运行编译好的java程序:

$ java -cp build/classes/main/ com.linc.HelloWorld
hello, world

Gradle的初体验就到这里,更复杂的构建任务还在后头。有了AS这个强大的工具,Android开发会变得越来越有乐趣!


参考:

http://www.gradle.org/documentation
http://www.android-studio.org/index.php/88-download/

本文转载自:http://blog.csdn.net/lincyang/article/details/43853259

共有 人打赏支持
yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
ubuntu12.04 安装Android Studio笔记

Ubuntu安装Android Studio 说明 安装教程参考stormzhang的博客 所有的软件在这里(已经备份到自己的pan) 注:此笔记在gitbook下完成,扔到osc上看看对markdown的支持如何?(结果是gitbook太...

cyper
2015/01/30
0
16
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--靠自己
06/21
0
0
Google将专注于Android Studio,放弃Eclipse+ADT

上周Android的官方博客发表声明:Google将在年底结束对Eclipse+ADT的开发以及停止支持,把重心完全转移到Android Studio。对于很多使用Eclipse的Android开发者而言,他们必须接受一个全新的I...

yushulx
2015/07/07
0
0
使用gradle构建android项目(续)

在几个月之前,我已经写过一篇使用gradle构建android项目的博客了http://blog.isming.me/2014/05/20/android4gradle/,那篇文章已经介绍了如何使用gradle进行项目构建,以及为谷歌会推荐使用g...

码农明明
2014/11/21
0
12
Android JNI学习(二)——实战JNI之“hello world”

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头
05/09
0
0
Gradle/Studio构建问题(Ant/Gradle)

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

shareus
05/11
0
0
关于Android Studio 和 Gradle的那些事儿

本文为刘小米作者原创,转载请注明出处,否则将依法追究版权 在进入正题之前,先拉个家常,本周进了一个很nice的团队,欣赏我们的Leader TutorChen,让项目开发变得有趣,乐于分享,并且耐心...

刘小米
2014/12/07
0
5
android项目两种构建方式的整合(Eclipse/idea和Android Studio)

github文章备份,获得更好的阅读体验 android的两种构建方式 目前android主要有两种构建方式,一种基于ant(传统的),另一种是13年Google/IO上新推出基于Gralde的构建(Android Studio)。从...

龙凯
2014/02/07
0
0
Android studio 使用心得(十)---android studio 多渠道打包(三)

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

veidy
2015/07/28
0
0
AndroidStudio、gradle、buildToolsVersion关系

使用AndroidStudio 开发也已经2年了,每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio、gradle、buildToolsVersion版本; 先来说说...

SuShine
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git GUI Client

Git GUI Client   这里我们为大家收藏了众多Git的GUI客户端,下载请点击这里

qwfys
8分钟前
0
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
12分钟前
2
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
18分钟前
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
33分钟前
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 #!/usr/bin/expectset passwd "123456"spawn rsync -av root@192.168.133.132:/tmp/12.txt /tmp/expect {"yes...

lyy549745
34分钟前
0
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
42分钟前
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
46分钟前
1
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0
nginx负载均衡

一、nginx 负载均衡 拓扑图: 主机信息: 1、负载均衡器1(lb1):192.168.10.205 RHEL7.5 2、负载均衡器2(lb2):192.168.10.206 RHEL7.5 3、web服务器1(web01):192.168.10.207 Centos...

人在艹木中
昨天
0
0
做了一个小网站

做了一个小网站 www.kanxs123.com

叶落花开
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部