美文网首页
Android 项目 目录结构文件分析以及在版本控制中需忽略的文

Android 项目 目录结构文件分析以及在版本控制中需忽略的文

作者: HappyGhh | 来源:发表于2018-07-05 16:21 被阅读0次
    Android项目目录结构文件分析

    AndroidStuidio新建一个项目后会生成各种文件,了解各个文件的作用更好的帮助自己理解和纠错能力,所以记录下
    在project视图,一个新项目可看到如下项目结构


    project.png

    1、.gradle 和 .idea
    这两个目录存放Android Stuido自动生成的文件,无需关心,不需要编辑
    2、app
    该目录下存放项目中的代码、资源文件等,开发工作也主要是在该目录下
    3、build
    该目录包含一些编译时自动生成的文件
    4、gradle
    该目录包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好而是会自动根据本地缓存情况决定是否联网下载gradle。
    5、.gitgnore
    该文件主要用来指定目录或文件排除在版本控制之外
    6、build.gradle
    该文件是项目全局的gradle构建脚本,通常不需要修改

    build_gradle.png

    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中的内容


    app.png

    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构建脚本,该文件会在很多项目构建相关的配置

    build_gradle.png

    第一行应用了一个插件,一般有两个之可选:'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中进行相关的配置,


    settings_ignored.png
    方式二:配置.gitgnore文件(项目根目录和moudle下均配置)
    image.png
    image.png

    配置好后,提交项目就会自动忽略该文件了。

    相关文章

      网友评论

          本文标题:Android 项目 目录结构文件分析以及在版本控制中需忽略的文

          本文链接:https://www.haomeiwen.com/subject/tcfpuftx.html