Android studio学习

一,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为例

  1. 传统的ant构建(Eclipse和Idea默认的Android结构)

$ANDROID_HOME/samples/android-19/legacy/ActionBarCompat

res/
src/
AndroidManifest.xml

这是最简单的结构,可能还会有assets,libs等目录,也就是我们在ide新建一个android项目的骨架结构啦Orz

  1. 基于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.  EclipseProject 等同于Android Studio的 Module
     Eclipseworkspace 等同于Android Studio的 Project




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章