Android编程经典200例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 Android应用程序的项目结构

从上面的项目中读者已经知道了通过Android SDK可以自动生成一个项目包,但是没有对项目包里的内容进行介绍,本节对项目包中的内容进行一一介绍,项目包如图1-19所示。

图1-19 Android应用程序的项目结构

src源代码目录:该目录存放Android应用程序所有的源代码。该目录项有不同的包,包中对应开发的源程序,开发人员开发的主要精力都是在开发src目录下的内容。

gen文件夹目录:该目录存放了Eclipse的ADT插件自动生成的R.java文件。实际上R.java定义了一个R类,它包含了应用中用户界面、图像、字符串等各种资源与之相对应的资源编号(id),这些资源编号都是系统自动生成的,即有一资源对象,系统就为此在R类中生成相应的资源编号,好比一本字典。

提示:Android应用程序中通过R类别来实现对资源的应用。同时,编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应用程序节省空间。

res资源目录:该目录下定义了drawable、layout及values三个目录,下面对这三个目录一一进行介绍。

● drawable目录:该目录下有drawable-hdpi,drawable-ldpi,drawable-mdpi三个文件夹,分别用来存放不同分辨率的图片资源,用于不同分辨率的手机的开发,开发人员可以通过Resource.getDrawable(id)获得该资源。

● layout目录:该目录下包含了所有使用XML格式的界面描述文件。主要用于表述应用程序的用户界面布局,也用于描述用户界面和接口组件。

提示:开发人员也可以直接通过Java代码来创建用户界面,不过使用xml描述文件则更简单,架构更清晰,维护也更容易。在这里需要强调的是,如果在程序里面要使用这些用户界面组件,必须通过前面提到的R类来调用。

● values目录:该目录包含了使用XML格式的参数描述文件,读者可以在此添加一些额外的资源如字符串(string.xml)、颜色(color.xml)、样式(style.xml)和数组(arrays.xml)等。主要用于在代码中通过R类来调用它们,而不直接使用,这样就可将代码和资源分开管理,便于维护。

除了以上文件夹外,还有一个AndroidManifest.xml文件,该文件系统的控制文件,告诉系统如何处理创建的所有顶层组件,尤其是Activity、IntentReceiver、Service及ContentProvider,凡是需要用到的组件都要在此注册,同时该文件也是所有Android应用程序都需要的文件,其描述了程序包的全局变量,包括公开的应用程序组件和为每个组件的实现类,什么样的数据可以操作、在什么地方可以运行等。

这个文件中最重要的一个内容就是Intent过滤器,这些过滤器描述了何时在何种情况下让Activity启动。当一个Activity(或操作系统)想要执行一个动作,它将创建一个Intent对象。该对象包含了很多描述符,描述了想做的操作,如处理的数据、数据的类型,以及一些其他的信息。Android将Intent对象中的信息与所有公开的Intent过滤器比较,找到一个最能恰当处理请求的数据和动作的Activity。

提示:上述功能以外,AndroidManifest.xml文件中也可以指定权限、安全控制及测试,这些功能在以后的开发中会经常用到。