一,Android Studio主要目录及文件简介
build:构建目录,相当于Eclipse中默认Java工程的bin目录。
libs:依赖包
src:
main
java Java代码
res 资源文件
layout App布局及界面元素配置
menu App菜单配置
values
dimens.xml 定义css的配置文件
strings.xml 定义字符串的配置文件
styles.xml 定义style的配置文件
AndroidManifest.xml App基本信息(名称、版本、SDK、权限等等)
ic_launcher-web.png App图标
build.gradle:Gradle构建脚本
二,详细介绍
android的两种构建方式
目前android主要有两种构建方式,一种基于ant(传统的),另一种是13年Google/IO上新推出基于Gralde的构建(Android Studio)。从sdk的samples的例程也可以看到api18后的例程的项目目录结构也变了。
简单的看一下两种构建方式的目录结构,我们以当前最新sdk19为例
-
传统的ant构建(Eclipse和Idea默认的Android结构)
$ANDROID_HOME/samples/android-19/legacy/ActionBarCompat
res/ src/ AndroidManifest.xml
这是最简单的结构,可能还会有assets,libs等目录,也就是我们在ide新建一个android项目的骨架结构啦Orz
-
基于Gradle的Android Studio构建目录
$ANDROID_HOME/samples/android-19/ui/DoneBar
DoneBarSample/ src/ main/ java/ res/ AndroidManifest.xml tests/ src/ AndroidManifest.xml build.gradle # DoneBarSample子项目的gradle构建脚本 gradle/ # gradle临时文件夹,不用管 build.gradle # 根项目(DoneBar)的gradle构建脚本 gradlew # gradle-wrapper在windows平台运行脚本(有了这个在本地可以无需安装Gralde) gradlew.bat # gradle-wrapper在linux,mac平台下的运行脚本(效果同上) settings.gradle # gradle多项目的项目申明文件 README.txt
看起来,Gradle好像更搞得更复杂了,但是,gradle的优势在于多项目的构建。实际上,1方案只是一个我们项目核心的源代码而已,没有任何的依赖。通常情况下,当我们写android应用时,会依赖第三方库,如果是个jar还好办,但是不少情况下同时需要引入第三方的资源文件(比如说actionbar-compat,actionbar-sherlock等),这样就相当于把第三方库作为一个项目给引入到我们这个独立的项目中来了(并且这里面的项目之间的依赖还得自己去调控,比如说咱们的项目依赖于support-v4, 那好,我们把v4引入然后在项目中申明依赖关系,接下来咱们的项目依赖support-v7-appcompat,导入这个库,尼玛,这个库不仅有jar,还有资源文件,那好把这两个引入并声明好依赖关系,这时,你会发现项目依旧报错,因为v7那个jar依赖于v4那个jar...)
很讨厌是不是?还好啦,不过配多了你就觉得蛋疼了。所以,就是为什么Gradle比较有优势的地方了。对于以上的问题,我们只需要在项目中的build.gradle
声明
dependencies { compile "com.android.support:support-v4:$supportLibVersion" compile "com.android.support:support-v13:$supportLibVersion" // compile project(':your project') // compile ('libs/*.jar') // all your jar in the libs dir }
这只是最简单的应用,gradle还提供了很多构建的特性,比如直接把第三方库作为一个子项目依赖进来,具体参阅其文档
2. Eclipse 的 Project 等同于Android Studio的 Module 。
Eclipse 的 workspace 等同于Android Studio的 Project 。