Android项目目录结构文件分析
AndroidStuidio新建一个项目后会生成各种文件,了解各个文件的作用更好的帮助自己理解和纠错能力,所以记录下
在project视图,一个新项目可看到如下项目结构
1、.gradle 和 .idea
这两个目录存放Android Stuido自动生成的文件,无需关心,不需要编辑
2、app
该目录下存放项目中的代码、资源文件等,开发工作也主要是在该目录下
3、build
该目录包含一些编译时自动生成的文件
4、gradle
该目录包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好而是会自动根据本地缓存情况决定是否联网下载gradle。
5、.gitgnore
该文件主要用来指定目录或文件排除在版本控制之外
6、build.gradle
该文件是项目全局的gradle构建脚本,通常不需要修改
repositories的闭包中声明了jcenter(), jcenter()是一个代码托管仓库,Android开源项目很多都托管在该库中,声明了配置后,我们的项目就可以引用jcenter上的开源项目。然后dependencies闭包中使用classpath声明了一个Gradle插件,为什么声明该插件??因为Gradle不是专门为Android项目而开发的,因此需要生命该插件来构建Android项目。
7、gradle.properties
该文件是全局gradle配置文件,该文件中配置的属性会影响项目中所有的gradle编译脚本
8、gradlew 和 gradlew.bat **
这两个文件用来在命令行界面中执行gradle命令
9、XXX.iml**
iml文件是所有IntelliJ IDEA项目自动生成的文件,用于标识这是一个IntelliJ IDEA项目,无需修改该文件的任何内容
10、local.propertoes
该文件用于指定本机中的Android SDK路径,通常是自动生成的,不要需要修改。如果Android SDK路径发生了改变,也需要在该文件中进行修改。
11、setting.gradle
该文件用于指定项目中所有引入的模块,
接下来,看下开发目录app中的内容
1、build 该目录包含编译时自动生成的文件,不过内容更多,我们无需关心
2、libs 该目录存放项目中用到的第三方jar包,系统会自动把该目录下的jar包添加到构建路径中
3、src
androidTest
该目录是用来写测试用例的,可对项目进行一些自动化测试
main 开发中主要用到的文件目录
java 该目录存放项目的java代码
res 该目录存放项目中用到的图片、布局等所有资源文件。
AndroidManifest,xml
该文件是项目的配置文件,程序中所有的四大组件都要在该文件中进行注册,给应用程序的权限声明也在该文件中。
4、test
该文件下用来编写Unit Test 测试用例,是对项目自动化测试的另一种方式
5、.gitgnore
该文件用于将app模块内的指定目录文件排除在版本控制之外
6、app.iml
IntelliJ IDEA 项目自动生成的文件
7、build.gradle
app模块的gradle构建脚本,该文件会在很多项目构建相关的配置
第一行应用了一个插件,一般有两个之可选:'com.android.application'表示这是一个应用模块,'com.android.library'表示这是一个库模块。
然后一个android闭包,配置项目的各种属性,
defaultConfig闭包对项目进行更多的细节配置。
buildTypes闭包用于指定生成安装文件的相关配置,通常只会有两个闭包debug和release,debug闭包用于生成测试版安装文件的配置,release闭包用于省城正式版安装文件的配置。minfyEnabled 用于指定是否对项目进行混淆 proguardFiles用于指定混淆时使用的规则文件,默认指定了两个proguard-android.txt是Android SDK目录下的,里面编写当前项目通用的混淆规则。proguard-rules.pro是当前项目根目录下的,里面编写的是当前项目特有的混淆规则,
最后dependencies闭包,用来指定当前项目的依赖关系,通常AndroidStudio项目有三种依赖方式:本地依赖、库依赖、远程依赖。
本地依赖:对本地jar包或目录添加依赖关系
库依赖:对项目的库模块添加依赖关系
远程依赖:对jcenter库开源项目的依赖
8、**proguard-rules.pro **
该文件用于指定项目代码的混淆规则
在Github上提交代码需要忽略的文件
需要忽略的文件
1、.idea文件夹
2、.gradle文件夹
3、所有的build文件夹
4、所有的.iml文件
5、local.properties文件。
方式一:使用Settings添加
在File--Settings--Version Control-- Ignored Files中进行相关的配置,
方式二:配置.gitgnore文件(项目根目录和moudle下均配置)
配置好后,提交项目就会自动忽略该文件了。