首页 > 代码库 > Android 解析 Android 项目组成

Android 解析 Android 项目组成

本文说明 Android 项目组成,虽然简单,但决不能忽视。

当你从简单 Hello World 程序,到会实现一些常见功能,比如,下拉(上拉)刷新最新(加载更多),消息处理(UI 通知更新),ViewPager 滑动效果,启动动画,访问网络文件,进行一些复杂的布局等等,在到调试一些开源项目,最后自己编写 Android 程序。可当调试一些开源项目时,尤其是那些比较大的开源项目,你会发现一些“意想不到”的情况,它们无论从界面,还是从功能,界面够炫,功能强大,也正因为如此,需要更多的资源,比如动画或声音效果,甚至使用三方的库,那就需要了解更多关于 Android 项目构成的问题了。

文件/文件夹 描述 是否必需

AndroidManifest.xml

应用程序描述文件,是每个 android 程序所必需的文件,位于工程的根目录下。此文件是是项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,指定应用程序中使用的服务权限(如 GPS 服务、互联网服务、短信服务等)。

  • 应用程序包名,该包名也会作为该应用的唯一标识;
  • 应用程序所包含的组件,如 Activity(即 <activity.../> 元素)、Service、BroadcastReceiver 和 ContentProvider 等;
  • 应用程序兼容的最低版本;
  • 应用程序使用系统所需的权限声明,如 <uses-permission android:name="android.permission.INTERNET" />,允许 Android 访问网络。
  • 其他程序访问该程序所需要的权限。

gen

该目录存放的所有内容都是自动生成的,该目录中最重要是 R.java。R.java 是个中介文件,在建立项目时自动生成,这个文件是只读模式的,不能更改。R.java 文件是自动产生的 R 类,R 类中包含很多静态类,且静态类的名字都与 res 中的一个名字对应,就像是个资源字典。其中包含了用户界面、图像、字符串等对应各个资源的标识符,R 类定义了该项目所有资源的索引。

例如,xml 界面文件中有一个 ID 为 tv 文本框控件,即 android:id="@+id/tv",那么通过 R.id.tv 就可以找到这个控件。

通过 R.java 可以很快地查找到所需要的资源,同时,编译器也会检查 R.java 列表中的资源是否被使用,没被使用到的资源不会被编译到软件中,这样可以减少在手机占用的空间。

bin

在使用 Eclipse 开发时,可以不用关心 bin 目录。如果在 Eclipse 中看不到,可以到资源管理器下面查看。

src

包含应用程序的所有 Java 源代码。

assets

其他任何资源的文件夹和文件的集合。除了提供 res 目录存放资源文件外,Android 在 assets 目录也可以存放资源文件,assets 目录下的资源文件不会在 R.java 自动生成 id,所以读取 assets 目录下的文件必须指定文件的路径,可以通过 AssetManager 类来访问这些文件。

res

资源目录,它包含项目中的资源文件并将其编译进应用程序中,向此目录添加资源时,会被 R.java 自动记录。res目录存放所有程序中用到的资源文件。“资源文件”指的是资料文件、图片等。该目录包含 drawable,anim,layout,values,xml 和 raw 子文件夹。

drawable

包含应用程序使用的图像资源(*.png、*.jpg)。Android 1.5 及以下版本目录是 drawable,Android 1.5 以上版本有 3 个:drawable-hdpi、drawable-mdpi 和 drawable-ldpi。
  • drawable-hdpi 放高质量的图片。
  • drawable-mdpi 放中质量图片。
  • drawable-ldpi 放低质量的图片。

虽然是 3 个目录,但在使用 R 文件访问时,与 Android 1.5 及以下版本一样的。

anim

包含用 xml 描述的应用程序使用的动画效果的配置文件。

layout

包含应用程序的布局 xml 文件。你应该创建通过使用 xml 描述界面的布局,而不是通过 Java 编码实现界面布局。

values

包含应用程序的常量资源,包括字符串,样式和颜色。如在 strings.xml 存放各种文字,以及存放不同类型的数据,像 arrays.xml、colors.xml、styles.xml 等。

例如:有一个 main.xml 布局文件,若在其中访问 strings.xml 文件的 hello 常量资源,可以"@+string/hello"方式;而在程序中访问方式为 R.string.hello。一般形式是:R.<资源类型>.<资源名称>

raw

包含附加的数据和非 xml 数据,例如 MP3 文件。使用 Eclipse 创建 Android 工程时,默认情况下不会在 res 目录下面创建这个目录,如果需要,可以自己创建。它可以通过 I/O 流访问,如应用中内置音频文件,就可以放置在这个目录下面。访问方式为 R.raw.xxx 方式。

menu

菜单,主要放置设计的 OptionsMenu 和 ContextMneu 的菜单项。使用 Eclipse 创建 Android 工程时,默认情况下不会在 res 目录下面创建这个目录,如果需要,可以自己创建。

Android 4.1

该文件夹下包含 android.jar 文件,这是一个Java 归档文件,其中包含构建应用程序所需的所有的Android SDK 库(如 Views、Controls)和 APIs。通过 android.jar 将自己的应用程序绑定到 Android SDK 和 Android Emulator,这允许你使用所有 Android 的库和包,且使你的应用程序在适当的环境中调试。

project.properties

记录项目中所需要的环境信息,比如 Android 版本等。

例如:关于 Android API 的信息 android-19,表明采用的是 Android 4.4.2。最近调试 oschina 项目,该项目必须是 android-15,即 Android 4.0.3 版本。