在Android Studio中,首先展开前面的Plugin_Test项目,会看到如图1-57所示的目录结构。
任何一个新建的项目都会默认使用Android模式的项目结构,但这并不是真实的目录结构,而是被Android转换过的,这种结构简洁明了,适合快速开发,模式结构可以切换,在AndroidStudio中,提供了以下几种项目结构类型,如图1-58所示。
图1-57 Android模式的项目结构
图1-58 切换项目模式结构
现在将项目切换到Project模式,就是真实的项目结构了,如图1-59所示。
下面说明项目结构的内容,看完之后会感觉没有想象的复杂。
1..gradle和.idea
该目录中放置的都是AndroidStudio自动生成的文件,一般不用管它。
2.app
项目中的代码、资源都在这个目录中,我们进行的开发工作都在这个目录中进行。
3.build
这个目录一般也不需要操作,包含一些编译自动生成的文件。
图1-59 Project模式项目结构
4.gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。这个目录中包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否联网下载gradle。Android Studio默认不使用gradle wrapper的方式。如果需要打开,则在Android Studio主界面中单击File>Settings命令进行设置,如图1-60所示。
5.gitignore
这个文件用来指定将指定的文件或目录排除在版本控制之外,在Git部分将详细介绍。
6.build.gradle
该文件为这个项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。
7.gradle.properties
这个文件是全局的gradle的配置文件,这里的配置将会影响到项目中所有gradle编译脚本。
图1-60 Gradle设置
8.gradlew和gradlew.bat
这两个文件用来在命令行界面中执行gradle命令,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的。
9.Plugin_Test.iml
Iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(Android Studio是基于Intel-liJIDEA开发的),用于标识是一个IntelliJ IDEA项目,不需要修改。
10.local.properties(www.xing528.com)
这个文件用于指定本机中的Android SDK路径,通常内容是自动生成的,除非本机的Android SDK位置发生了变化。
11.settings.gradle
这个文件用于指定项目中所有引入的模块。由于Hel-loWorld项目中只有app模块,因此该文件中只引入app一个模块。通常是自动完成的。
现在整个目录介绍完了,您会发现,除了app目录外,大多数文件和目录是自动生成的,一般不需要修改。app目录中的内容是我们介绍的重点,如图1-61所示。
下面分析这些内容。
1.build
这个目录和外层的build目录类似,主要包含一些在编译自动生成的文件,一般不需要关心。
图1-61 app目录中的结构
2.libs
如果项目中使用到了第三方jar包,就需要把这些jar包都放在libs目录下,放在这个目录下的jar包会被自动添加到构建路径中。
3.androidTest
此处是用来编写AndroidTest测试用例的,可以对项目进行一些自动化测试。
4.java
存放java源代码。
5.res
存放项目的资源,和Eclipse的res目录内容相同。
6.AndroidManifest.xml
Android应用程序的配置文件,声明了Android里边的组件和相关配置信息、添加的权限。和Eclipse的AndroidManifest.xml基本相同。
7.test
用来编写UnitTest测试用例的,是对项目进行自动化测试的另一种方式。
8..gitignore
这个文件用来指定将app模块内指定的文件或目录排除在版本控制之外,作用和外层的.gitignore类似。
9.app.iml
IntelliJ IDEA项目自动生成的文件,不需要修改。
10.build.gradle
这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关配置。
11.proguard-rules.pro
这个文件用于指定代码的混淆规则,当代码开发完成后打包成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。