移动知识Android-Android Studio

Android Studio 项目目录结构简析

2018-07-19  本文已影响57人  85f0853a1aeb

简单分析一下使用Android Studio创建项目后,项目目录内各部分的作用

首先创建一个新的MyAppliction项目(使用版本为Android Studio 3.3 Canary 3)
默认的结构为Android模式的项目结构,是经过转换过的,结构简洁明了,适合快速开发。

Android模式
点击左上角的Android切换成Project模式
Project模式
这个模式反映的就是Android项目的真实结构了。
现在从外向内切入。

一、外层结构

1. .gradle和.idea

目录下是Android Studio 自动创建的一些文件

2. app

项目内代码、资源均存放在这个目录下。

3. gradle


包含gradle wrapper 配置文件,使用gradle wrapper的方式不需要提前下载gradle,而是会根据本地的缓存情况来判断是否需要进行下载。

4. .gitignore

用来记录特定的目录或文件来排除在版本控制之外,具体参考Git

5. bulid.gradle

全局的gradle构建脚本,通常不需要进行修改。

6. gradle.properties

全局gradle配置文件,其中的属性会影响项目中所有gradle编译脚本。

7. gradlew和gradlew.bat

用来在命令行中执行gradle命令,前者在Linux或Mac中使用,后者在windows中使用。

8. local.properties

用于指定本机中的Android SDK路径

9. MyApplication.iml

用于标识Intellij IDEA 项目

10. setting.gradle

用于指定项目中所有引入的模块。
二、app目录内结构


1. build

编译时生成的文件

2. libs

使用第三方jar包时直接添加入该目录下,jar包会自动地被添加进构建路径里。

3. src

项目的主要代码和资源所在。

4. androidTest

用来编写Android Test测试用例,可以对项目进行一些自动化测试。

5. main

存放所有Java代码,可以构建子目录来规范管理代码

6. res

几乎是所有的资源都存放在这里,每个文件夹都有自己的功用。比如drawable内存放图片文件,layout为所有的布局xml文件,

7. AndroidManifest.xml

当前Android项目的配置文件,程序中定义的四大组件都在其中进行注册,以及程序的权限声明。

8. test

用来编写Unit Test测试用例

9. .gitignore

用于版本控制

10. app.iml

用于标识Intellij IDEA 项目

11. build.gradle

内层build.gradle为app模块内的gradle构建脚本,会指定项目构建相关配置。

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.1"
    defaultConfig {
        applicationId "com.example.a40136.myapplication"
        minSdkVersion 26
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
}

compileSdkVersion : 指定项目的编译版本
buildToolsVersion : 指定项目构建工具的版本
applicationId : 项目的包名
minSdkVersion : 指定最低兼容的Android版本
targetSdkVersion : 表示在该目标版本已经完成了充分的测试
versionCode : 项目的版本号
versionName : 项目的版本名

12. proguard-rules.pro

用于指定项目代码的混淆规则,防止项目完成后生成的安装包文件被人破解。

上一篇下一篇

猜你喜欢

热点阅读