原文: https://howtodoinjava.com/android/android-tutorial-android-project-structure-files-and-resources/

在上一个教程中,我们了解了创建示例 android 应用并在 android 虚拟设备(AVD)中运行。 在本教程中,我将简要介绍 android 应用的项目结构,在 android 应用中创建的文件和文件夹及其用法。 这些信息将在以后的教程中进行更详细的讨论,但是目前,仅进行少量介绍将为进一步发展打下基础。

Android 教程:Android 项目结构,文件和资源 - 图1

Android 应用项目结构

1)项目根目录/文件夹

当您创建新的 Android 项目(例如,通过 android 创建项目)时,您会在项目的根目录中找到几项,包括:

  1. AndroidManifest.xml是描述正在构建的应用以及该应用正在提供哪些组件(活动,服务等)的 XML 文件。
  2. bin/文件夹,用于在应用编译后保存该应用(请注意:此目录将在您首次构建应用时创建。通常,在 Eclipse 中启用了“自动构建”功能,因此您将在获取后直接获得它 项目已创建。)
  3. res/文件夹,其中包含“资源”,例如图标,GUI 布局等,将与已编译的应用打包在一起
  4. src/文件夹,其中包含应用的 Java 源代码
  5. lib/文件夹,其中包含运行时所需的额外 jar 文件(如果有)
  6. asset/文件夹,其中包含您希望与应用打包在一起以部署到设备上的其他静态文件
  7. gen/文件夹包含 Android 构建工具生成的源代码

2)Java 源代码

创建项目时(例如,通过 android 创建项目),您为应用(例如com.howtodoinjava.DemoApp)提供了“主”活动的全限定类名。 然后,您会发现项目的src/树已经安装了包的目录树,还有代表您的主要活动的存根Activity子类(例如src/com/howtodoinjava/DemoAppMainActivity.java)。 欢迎您修改此文件,并根据需要将其他文件添加到src/树中,以实现您的应用。

首次在项目包的目录中编译该项目时,Android 构建链将创建R.java。 它包含许多与您在res/目录树中放置的各种资源相关联的常量。

您不应该自己修改R.java,让 Android 工具为您处理它。

3)Android 应用资源

您还将发现您的项目具有res/目录树。 它包含“资源” - 与您的应用打包在一起的静态文件,它们可以是原始形式,也可以是预处理形式。 在res/下可以找到或创建的一些子目录包括:

  1. res/drawable/用于图像(PNG,JPEG 等)
  2. res/layout/用于基于 XML 的 UI 布局规范
  3. res/menu/用于基于 XML 的菜单规范
  4. res/raw/用于通用文件(例如,音频片段,帐户信息的 CSV 文件)
  5. res/values/用于字符串,尺寸和类似内容
  6. res/xml/用于您希望随应用一起提供的其他通用 XML 文件

一些目录名称可能带有后缀,例如res/drawable-hdpi/。 这表明资源目录仅应在某些情况下使用 - 在这种情况下,可绘制资源应仅在具有高密度屏幕的设备上使用。

在我们的初始项目中,您将找到以下文件:

  • res/drawable-hdpi/icon.pngres/drawable-ldpi/icon.pngres/drawable-mdpi/icon.png, 是您的高,低和中密度屏幕的应用的占位符图标的三种表示形式
  • res/layout/main.xml,其中包含一个 XML 文件,该文件描述了用户界面的非常简单的布局
  • res/values/strings.xml,其中包含外部化的字符串,尤其是应用的占位符名称

4)当我们编译 android 项目时会发生什么

当您编译项目(通过 ant 或 IDE)时,结果进入项目根目录下的bin/目录。

Android 教程:Android 项目结构,文件和资源 - 图2

Android bin文件夹内容

特别:

  1. bin/classes/保存已编译的 Java 类
  2. bin/classes.dex包含从那些编译的 Java 类创建的可执行文件
  3. bin/resources.ap_保存您应用的资源,打包为 ZIP 文件(其中yourapp是应用的名称)
  4. bin/DemoApp.apk是实际的 Android 应用

.apk文件是一个 ZIP 存档,其中包含.dex文件,资源的编译版本,任何未编译的资源(例如,放入res/raw/的资源)和AndroidManifest.xml文件。

如果您构建应用的调试版本 - 您将DemoApp-debug.apkDemoApp-debug-aligned.apk作为 APK 的两个版本。 后者已使用 zipalign 工具进行了优化,以使其运行更快。

这就是这篇小介绍性文章的全部内容,讨论了默认情况下每个 android 应用创建的各种文件和文件夹。 我们将在以后的教程中根据需要更深入地讨论它们。

祝您学习愉快!