Android项目目录结构

1. Android 项目目录结构示例
MyAndroidApp/
│
├── .gitignore
├── build.gradle
├── settings.gradle
├── local.properties
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
│
└── app/
├── build/
├── libs/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── myandroidapp/
│ │ │ ├── MainActivity.java
│ │ │ └── OtherActivity.java
│ │ │
│ │ ├── res/
│ │ │ ├── layout/
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_other.xml
│ │ │ │
│ │ │ ├── values/
│ │ │ │ ├── strings.xml
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ │
│ │ │ ├── drawable/
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── background.png
│ │ │ │
│ │ │ └── mipmap/
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │
│ │ └── AndroidManifest.xml
│ │
│ ├── androidTest/
│ │ └── java/
│ │ └── com/
│ │ └── example/
│ │ └── myandroidapp/
│ │ └── MainActivityTest.java
│ │
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── myandroidapp/
│ └── MainActivityUnitTest.java
│
└── proguard-rules.pro
2. 项目根目录
项目根目录是整个 Android 项目的起点,包含了所有的源代码、资源文件和配置文件。
主要包括以下内容:
- .gitignore:指定在使用 Git 版本控制时需要忽略的文件和目录,通常包括编译生成的文件和本地配置文件。
- build.gradle:项目级的 Gradle 构建脚本,定义了项目的构建配置和依赖项。可以在这里添加全局依赖和插件。
- settings.gradle:指定项目中所有引入的模块,通常情况下,Android Studio 会自动管理这个文件。
- local.properties:用于指定本机中的 Android SDK 路径,通常内容都是自动生成的。
- gradle/:包含 Gradle 的相关文件和配置,通常包括 Gradle Wrapper 的配置文件,允许项目在不同环境中使用相同版本的 Gradle。
- .idea/:存放 Android Studio 的项目配置文件,通常不需要手动修改。
3. app/
这是 Android 项目的核心目录,包含了应用的所有源代码和资源。
3.1. src/
- main/:主要的代码和资源文件。
- java/:包含应用的 Java 或 Kotlin 代码,通常按包名组织。例如,
com.example.myandroidapp。在这里,你会找到主要的 Activity 类、Fragment 类、ViewModel 类等。 - res/:存放资源文件,包括布局、图片、字符串等,进一步细分为多个子目录:
- layout/:XML 布局文件,定义每个 Activity 的用户界面。例如,
activity_main.xml,其中包含了 UI 组件的排列和属性。 - values/:存放各种属性值的 XML 文件,如:
strings.xml:存放应用中的字符串资源,便于国际化。colors.xml:定义应用使用的颜色,便于统一管理。styles.xml:定义应用的样式和主题,便于统一管理 UI 风格。dimens.xml:定义尺寸值,便于在不同屏幕上保持一致的 UI。
- drawable/:存放图形资源,如位图文件(PNG、JPEG 等),可以根据不同的屏幕密度创建不同的子目录(如
drawable-mdpi、drawable-hdpi等)。 - mipmap/:存放应用图标,通常包括不同分辨率的图标文件。
- layout/:XML 布局文件,定义每个 Activity 的用户界面。例如,
- AndroidManifest.xml:重要的配置文件,定义了应用的基本信息、组件、权限等。它指定了应用的入口 Activity、主题、图标等信息。
- java/:包含应用的 Java 或 Kotlin 代码,通常按包名组织。例如,
3.2. androidTest/
用于编写仪器化测试代码,通常用于 UI 测试。
测试代码可以访问应用的真实环境,确保应用在不同设备上的表现一致。
3.3. test/
用于编写单元测试代码,通常用于逻辑测试。
这里的测试代码不依赖于 Android 框架,可以在本地 JVM 上运行,适合快速验证业务逻辑。
4. build/
这个目录是 Gradle 构建过程中生成的文件,通常不需要手动修改。
它包含了构建输出、临时文件等。
5. gradle/
包含 Gradle 的相关文件和配置,通常包括 Gradle Wrapper 的配置文件,允许项目在不同环境中使用相同版本的 Gradle。
6. gen/
该目录用于存放由 Android 开发工具自动生成的文件,如 R.java 文件。
这个文件包含了所有资源的 ID,供代码中引用。
7. 其他重要文件
- gradlew 和 gradlew.bat:这两个文件用于在命令行界面中执行 Gradle 命令。
gradlew用于 Linux 或 Mac 系统,gradlew.bat用于 Windows 系统。 - gradle.properties:全局的 Gradle 配置文件,在这里配置的属性将会影响到项目中所有的 Gradle 编译脚本。
- proguard-rules.pro:代码混淆配置文件,定义了在构建 APK 时如何混淆代码,保护应用的源代码。
8. 资源文件的组织
在 res 目录下,资源文件的组织方式非常重要,以下是一些常见的子目录及其用途:
- res/layout/:存放 XML 布局文件,定义 Activity 和 Fragment 的 UI 结构。
- res/values/:存放各种属性值的 XML 文件,包括:
dimens.xml:定义尺寸值,便于在不同屏幕上保持一致的 UI。styles.xml:定义应用的主题和样式,便于统一管理 UI 风格。
- res/drawable/:存放图形资源,如位图文件(PNG、JPEG 等),可以根据不同的屏幕密度创建不同的子目录(如
drawable-mdpi、drawable-hdpi等)。 - res/mipmap/:存放应用图标,通常包括不同分辨率的图标文件。
9. AndroidManifest.xml 的详细解析
AndroidManifest.xml 是每个 Android 应用的核心文件,包含了以下重要信息:
- 应用的包名:唯一标识应用的名称。
- 组件声明:包括 Activity、Service、BroadcastReceiver 等,定义了应用的各个组件。
- 权限声明:指定应用需要的权限,如访问网络、读取存储等。
- 应用的主题和图标:定义应用的外观和标识。
- 最小 SDK 版本:指定应用运行所需的最低 Android 版本。
10. 总结
理解 Android 项目的目录结构及其各个文件的作用对于开发者来说至关重要。
合理的目录结构不仅有助于组织代码和资源,还能提高团队协作的效率。
通过清晰的结构,开发者可以更轻松地管理项目,确保代码的可读性和可维护性。
掌握这些基本知识将为后续的开发工作打下坚实的基础。