Android项目目录结构
Android项目目录结构
- 1. 顶层目录
- 2. 重要的顶层文件和目录
- 3. app模块目录结构
- 4. 重要的**app**模块文件和目录
- 5. 典型的 **build.gradle** 文件内容
典型的Android项目结构的详细介绍。
1. 顶层目录
MyAndroidApp/
├── .gradle/
├── .idea/
├── app/
├── build/
├── gradle/
├── build.gradle (Project level)
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── README.md
2. 重要的顶层文件和目录
- .gradle/: Gradle的缓存目录。
- .idea/: IntelliJ IDEA和Android Studio的配置文件目录。
- app/: 应用模块的源代码和资源文件目录。
- build/: 项目的编译输出目录。
- gradle/: 包含Gradle包装器文件。
- build.gradle (Project level): 顶级构建脚本文件。
- gradle.properties: 用于配置Gradle构建系统的属性文件。
- gradlew: Unix系统上的Gradle包装器脚本。
- gradlew.bat: Windows系统上的Gradle包装器脚本。
- settings.gradle: 包含项目的模块设置。
3. app模块目录结构
app/
├── build/
├── libs/
├── src/
│ ├── androidTest/
│ │ └── java/
│ │ └── com/example/myandroidapp/
│ │ └── ExampleInstrumentedTest.java
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/myandroidapp/
│ │ │ ├── MainActivity.java
│ │ │ └── ... (其他Java文件)
│ │ ├── res/
│ │ │ ├── drawable/
│ │ │ ├── layout/
│ │ │ ├── mipmap/
│ │ │ ├── values/
│ │ │ └── ... (其他资源目录)
│ │ ├── AndroidManifest.xml
│ └── test/
│ └── java/
│ └── com/example/myandroidapp/
│ └── ExampleUnitTest.java
├── build.gradle (Module level)
└── proguard-rules.pro
4. 重要的app模块文件和目录
- build/: 编译输出目录。
- libs/: 放置本地库文件,如 .jar 文件。
- src/: 源代码目录。
- androidTest/: 用于存放Android仪器测试的代码。
- main/: 用于存放主应用程序代码和资源。
- java/: 存放Java源代码。
- res/: 存放应用的资源文件(如布局、图片、字符串等)。
- AndroidManifest.xml: 应用的清单文件,描述应用的组件和配置信息。
- test/: 用于存放单元测试代码。
- build.gradle (Module level): 模块级构建脚本文件。
- proguard-rules.pro: ProGuard配置文件,用于代码混淆。
5. 典型的 build.gradle 文件内容
Project-level build.gradle
buildscript {ext.kotlin_version = '1.5.31'repositories {google()mavenCentral()}dependencies {classpath 'com.android.tools.build:gradle:7.0.3'classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()mavenCentral()}
}task clean(type: Delete) {delete rootProject.buildDir
}
Module-level build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'android {compileSdkVersion 33defaultConfig {applicationId "com.example.myandroidapp"minSdkVersion 21targetSdkVersion 33versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"implementation 'androidx.core:core-ktx:1.9.0'implementation 'androidx.appcompat:appcompat:1.6.0'implementation 'com.google.android.material:material:1.8.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.4'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.5'androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}