谷歌15年底停止支持其他集成开发环境, 而着重推出Android Studio工具, 而至今Android studio已发布稳定版, 本文主要对Android studio项目结构作介绍.
工程的目录介绍
1 Android模式:项目创建时的默认模式.

结构简单明了, 适合快速开发, 但不适合新手;
2 Project模式: 项目的真实目录结构.

- .gradle和.idea 自动生成,无需关心.
- app 项目中的代码,资源等几乎放在这个目录下.
- build 无需关心,该目录主要包含在编译时自动生成的一些文件.
- gradle 这个目录下包含gradle wrapper的配置文件.
- .gitignore 这个文件是用来将指定目录或文件排除在版本控制之外的.
- build.gradle 这是项目全局的gradle构建脚本,通常这个文件的内容是不需要修改的.
- gradle.properties 这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有grable编译脚本.
- gradlew和gradlew.bat 这两个文件是用来在命令行界面执行gradle命令的.
- HelloWorld.iml 自动生成,用于标识这是个Intellij IDEA项目,我们不需要修改任何内容.
- local.properties 这个文件用于指定本机的Android SDK路径,通常内容是自动生成的,我们不需要修改,除非你本机的Android SDK位置发生变化,那么将这个文件中的路径改成新的位置即可.
- setting.gragle 这个文件用于指定项目中所有引入的模块.通常情况下模块的引入都是自动生成的,需要我们手动修改这个文件的场景很少.
通过上面Project模式的外层目录结构介绍,你会发现,除了app目录之外,都多数文件和目录都是自动生成的,我们并不需要修改.
所以, app目录下的内容才是我们以后工作的重点
3 Project模式下app目录的介绍

- build 自动生成,不需关心.
- libs 如果你的项目中使用了第三方jar包, 就需要将这些jar包都放在libs目录下,放在libs目录下的jar包都会被自动添加到构建路径里去
- androidTest 此处用来编写Android Test测试用例的.
- java 该目录存放代码
- res 你项目中使用到的所以图片,布局,字符串等资源都放在这个目录中,这个目录下还有很多子目录,图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下,整个res目录并不会很乱.
- AndroidMainfest.xml 你项目的清单文件,程序中定义的四大组件需要在这个文件里注册,所需要的权限需要在这个文件中添加声明.
- test 此处用来编写Unit Test测试用例的
- .gitignore 这个文件是用来将app模块内指定目录或文件排除在版本控制之外的.作用跟外层的.gitignore文件类似.
- app.iml Intellij IDEA项目自动生成的文件,无需关心.
- build.gradle 这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置.
- proguard-ruels.pro 用于代码混淆
4 项目究竟如何运行起来的 -> 在清单文件中配置Activity: 配置启动界面.
打开清单文件(AndroidMainfest.xml文件),找到如下代码:
<activity android:name=".HelloWorldActivity" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
这段代码表示对HelloWorldActivity这个Activity在清单文件中进行注册,
        其中<intent-filter>标签中的
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        两行代码非常重要,表示HelloWorldActivity是这个项目的主Activity,当在手机上点击应用图标时,首先启动的就是这个Activity.  
5 详解build.gradle文件
HelloWorld项目中有2个build.gradle文件,一个是在最外层目录下,一个是在app目录下.
5.1 最外层目录下的build.gradle文件

图中build.gradle里的代码都是自动生成的,它们都是什么含义呢.  
首先,两处 repositories 的闭包中都声明了 jcenter() 这行配置,而 jcenter() 是一个代码托管仓库,有了这行配置之后,我们就可以在项目中轻松引用任何 jcenter 上的开源项目了
接下来, dependencies 闭包中使用 classpath 声明一个 Gradle 插件,因为 Gradle 并不是专门为构建 Android 项目而开发的, java,C++等很多种项目都可以使用 Gradle 来构建,因此我们使用 Gradle 来构建Android项目时,需要声明 com.android.tools.build:gradle:2.2.0 这个插件. 最后面的部分是插件的版本号,我用的是最新的2.2.0版本.
5.2 app目录下的build.gradle文件

这个文件中内容相对复杂,我们一行行分析.  
首先,第一行应用了一个插件,一般有两种值可选,
com.android.application 表示这是一个应用程序模块,
com.android.library 表示这是一个库模块.接下来,是一个大的 android 闭包.其中
- compileSdkVersion 用于指定项目的编译版本,
- buildToolsVersion 用于指定项目构建工具的版本.
- targetSdkVersion 指定的值表示你在该目标版本已经做过了充分的测试,系统将会为你的应用程序启动一些最新的功能和特性.
接下来,buildTypes 闭包中用于指定生成安装文件的相关配置.
- minifyEnabled 用于指定是否对项目的代码进行混淆,
true表示混淆, false表示不混淆.- proguardFiles 用于指定混淆时使用的规则文件,
第一个 proguard-android.txt 是在Android SDK目录下,里面是所有项目通用的混淆规则,第二个 proguard-rules.pro 是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则.接下来,dependencies 闭包用来指定当前项目所有的依赖关系. (Android Studio 中一共有3种依赖方式: 本地依赖,库依赖,远程依赖)
- compile fileTree 是一个本地依赖声明,它表示将libs目录下所有.jar后缀的文件都添加到项目的构建路径当中.
- compile 是远程依赖声明,有了这个远程依赖库声明后,Gradle 在构建项目时会先检查本地是否有这个库,没有会联网自动下载,然后添加到项目的构建路径当中.
- 至于库依赖声明这里没有用到,库依赖声明的基本格式是 compile project 后面加上要依赖的库名称.
- testCompile 是用于声明测试用例库的,我们暂时用不到,先忽略他就可以了
以上就是Android Studio目录的基本介绍.
掌握日志工具的使用
添加logcat过滤器
- 点击Android Studio 底部工具栏的Android Monitor,在右侧下拉选项中选择 Edit Filter Configuration.  
- 给过滤器起名为data,并且让它对名为data的Tag进行过滤.  
- 运行项目,查看日志即可.