Android Studio的使用
版本:Android Studio1.3,Windows系统
截止到2015年8月1号,Android Studio已经更新到正式版的1.3版本了。之前一直用Eclipse开发(简称ec),也没考虑用Google自家的IDE,而且当时还没有发布正式版本。但现在Google一直竭力推荐的IDE也要成为以后开发Android的热门工具,而且像GitHub等开源社区也都在使用Android Studio,大家都亲切地叫他as,所以以后有人跟你说as的时候不要再用茫然的眼神问人家as是什么东东了。
Android Studio基于IntelliJ IDEA(我猜是IntelligenceJava Integrated Development Environment Architecture “智能Java集成开发环境架构”的简称),使用更加灵活的Gradle构建系统。Android Studio的目录结构和Eclipse有很大不同。在Eclipse中我们会在一个Workspace工作区中新建好几个工程(Project),但在Android Studio中一个AS窗口只能新建一个Project,但这个Project下面可以有多个Module,Module可以是一个完整的应用。不必纠结Android Studio中的Project相当于Eclipse中的什么,我们只需要组建好一个完整的Project就行了。下面是官网的对于EC和AS项目结构的对应图:
Eclipse ADT | Android Studio |
---|---|
Workspace | Project |
Project | Module |
Project-specific JRE | Module JDK |
Classpath variable | Path variable |
Project dependency | Module dependency |
Library Module | Library |
AndroidManifest.xml | app/src/main/AndroidManifest.xml |
assets/ | app/src/main/assets |
res/ | app/src/main/res/ |
src/ | app/src/main/java/ |
tests/src/ | app/src/androidTest/java/ |
还有工程视图(Project View)的对比:
Eclipse ADT | Android Studio Project View | Android Studio Android View |
---|---|---|
其实工程视图和文件系统的目录结构基本一致:
谷歌说,为了更加灵活地进行构建、定制想要的输出,将AndroidManifest.xml文件中的部分元素(比如编译版本、应用id等)拿出来,放到build.gradle文件defaultConfig块和productFlavors块的属性中。
目录及文件的作用:
①build.gradle(Project: HelloAndroid)
工程范围内的构建脚本。主要是指定maven仓库,要依赖的gradle插件。
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { jcenter() }}
②build.gradle(Module: app)
模块范围内的构建脚本。主要是指定构建插件,android程序构建设置,以及依赖的库。
apply plugin: 'com.android.application'android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.smc.helloandroid" minSdkVersion 15 targetSdkVersion 22 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:22.2.1'}
③gradle.properties(Globle Properties)
全局的Gradle设置。
org.gradle.daemon=true
④proguard-roles.pro(ProGuard Rules for app)
指定应用程序的混淆规则。
# Add project specific ProGuard rules here.# By default, the flags in this file are appended to flags specified# in D:\Program Files\Java\Android\sdk/tools/proguard/proguard-android.txt# You can edit the include path and order by changing the proguardFiles# directive in build.gradle.## For more details, see# http://developer.android.com/guide/developing/tools/proguard.html# Add any project specific keep options here:# If your project uses WebView with JS, uncomment the following# and specify the fully qualified class name to the JavaScript interface# class:#-keepclassmembers class fqcn.of.javascript.interface.for.webview {# public *;#}
⑤gradle.properties(Project Properties)
工程范围内的Gradle设置。
# Project-wide Gradle settings.# IDE (e.g. Android Studio) users:# Gradle settings configured through the IDE *will override*# any settings specified in this file.# For more details on how to configure your build environment visit# http://www.gradle.org/docs/current/userguide/build_environment.html# Specifies the JVM arguments used for the daemon process.# The setting is particularly useful for tweaking memory settings.# Default value: -Xmx10248m -XX:MaxPermSize=256m# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8# When configured, Gradle will run in incubating parallel mode.# This option should only be used with decoupled projects. More details, visit# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects# org.gradle.parallel=true
⑥settings.gradle(Project Settings)
指定要构建的子工程(模块)。
include ':app'
⑦local.properties(SDK Location)
为构建系统指定计算机特定属性,例如SDK安装目录。
## This file is automatically generated by Android Studio.# Do not modify this file -- YOUR CHANGES WILL BE ERASED!## This file must *NOT* be checked into Version Control Systems,# as it contains information specific to your local configuration.## Location of the SDK. This is only used by Gradle.# For customization when using a Version Control System, please read the# header note.#Wed Aug 05 20:12:26 CST 2015sdk.dir=D\:\\Program Files\\Java\\Android\\sdk
描述:
.idea
存放IntelliJ IDEA设置的目录。比如说你的工程哪个文件被打开了,当前阅读到第几行啊,工作区的字符编码是什么啊等等都会存储下来。
app
存放应用程序模块的文件的目录。
build
存放工程所有模块构建输出的目录。
gradle
存放gradle-wrapper文件。
.gitignore
指定Git应该忽略跟踪的文件。
build.gradle
构建系统的定制。你可以编辑这个文件来指定应用程序模块默认的构建设置,也可以设置keystore和key alias的路径以便构建工具能在发行模式构建时对你的应用进行签名。该文件是工程的组成部分,所以保持它在一个源码修订控制系统(source revision control system)。
gradle.properties
工程范围内的Gradle设置。
gradlew
Unix的Gradle启动脚本。
gradlew.batWindows的Gradle启动脚本。
local.properties为构建系统指定计算机特定属性,例如SDK安装目录。由于文件中指定了SDK的本地安装目录,,local.properties就不应该包含在源码修订控制系统(source revision control system)中。
settings.gradle
指定要构建的子工程(模块)。
.iml由IntelliJ IDEA创建的模块文件来存储模块信息。
快捷键:
快速打开某个类(class):ctrl+n
快速打开其他文件:ctrl+shift+n
代码补全:ctrl+空格 给变量起名时可以用
查找类/方法/变量在整个工程中出现的位置:alt+f7
快速预览类/方法文档描述:ctrl+q
跳转到类/方法/变量的定义处:ctrl+b 或ctrl+左键单击 快速预览其定义或内容(ctrl+shift+i)
在当前编辑的文件中快速导航:ctrl+f12 然后按enter或f4确定选中,可直接通过拼写快速定位。
重命名类/方法/变量:shift+f6
重写类的方法:ctrl+o
实现接口的方法:ctrl+i
智能类型补全:ctrl+shift+空格 在new语句、return语句、赋值语句、回调函数的参数列表等地方使用。快速强制类型转换(在“(”后面按ctrl+shift+空格)
自动生成Constructor、Getter等方法:alt+insert
包裹if、try/catch等语句块:ctrl+alt+t 快速完成结构(ctrl+shift+enter)
跳转到抽象方法的实现:ctrl+alt+b
快速选中逻辑区域:ctrl+w 或 左键双击 可以多次按ctrl+w来扩展选中的区域
提取出变量来简化复杂语句:ctrl+alt+v
注释:ctrl+/ 或 ctrl+shift+/ ctrl+/进行单行注释或解注释,ctrl+shift+/是多行
快速复制粘贴:ctrl+d 没选中任何块时就复制当前行
回到上次更改代码的地方:ctrl+shift+backspace 可多次按
最近浏览的文件:ctrl+e
删除所有不必要的换行和空格:ctrl+shift+j
上下移动代码:ctrl+shift+↑ 或 ctrl+shift+↓