本节书摘来自异步社区《Android 应用案例开发大全(第二版)》一书中的第1章,第1.7节Android应用程序的项目结构 ,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.7 Android应用程序的项目结构
Android 应用案例开发大全(第二版)
从上面的项目中读者已经知道了通过Android SDK可以自动生成一个项目包,但是没有对项目包里的内容进行介绍,本节对项目包中的内容进行一一介绍,项目包如图1-35所示。
src源代码目录:该目录存放Android应用程序所有的源代码。该目录项有不同的包,包中对应开发的源程序,开发人员开发的主要精力都集中在开发src目录下内容。
gen文件夹目录:该目录存放了Eclipse的ADT插件自动生成的R.java文件。实际上R.java定义了一个R类,它包含了应用中用户界面、图像、字符串等各种资源与之相对应的资源编号(id)。这些资源编号都是系统自动生成的,即有一资源对象,系统就为此在R类中生成相应资源编号,好比一本字典。
提示
Android应用程序中通过R类别来实现对资源的应用。同时,编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应用程序节省空间。
res资源目录:该目录下定义了drawable、layout及values 3个目录,下面对这3个目录一一进行介绍。
drawable目录:该目录下有drawable-hdpi,drawable-ldpi,drawable-mdpi 3个文件夹,分别用来存放不同分辨率的图片资源,用于不同分辨率的手机的开发,开发人员可以通过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文件中也可以指定权限、安全控制及测试,这些功能在以后的开发中会经常用到。