投影机灯泡改led电路图:3.1.1 Android项目目录结构(1) - 51CTO.COM

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 08:05:43

3.1.1 Android项目目录结构(1)

有了前面两章的基础,现在我们再来打开上一章建立的HelloAndroid项目,分析其项目目录结构,对Android项目进一步的深入了解。首先启动Eclipse,展开"Package Explorer"导航器中的"HelloAndroid"项目,如图3-1所示。


和一般的Java项目一样,src文件夹是项目的所有包及源文件(.java),res文件夹中则包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常量(values)等。下面来介绍其他Java项目中没有的的gen文件夹中的R.java文件和每个Android项目都必须有的AndroidManfest.xml文件。

R.java是在建立项目时自动生成的,这个文件是只读模式,不能更改,R.java文件是定义该项目所有资源的索引文件。先来看看HelloAndroid项目的R.java文件,如代码清单3-1所示。

代码清单3-1 R.java

  1. package com.yarin.Android.HelloAndroid;  
  2.  
  3. public final class R {  
  4.     public static final class attr {  
  5.     }  
  6.     public static final class drawable {  
  7.         public static final int icon=0x7f020000;  
  8.     }  
  9.     public static final class layout {  
  10.         public static final int main=0x7f030000;  
  11.     }  
  12.     public static final class string {  
  13.         public static final int app_name=0x7f040001;  
  14.         public static final int hello=0x7f040000;  
  15.     }  

可以看到这里定义了很多常量,仔细一看就发现这些常量的名字都与res文件夹中的文件名相同,这再次证明R.java文件中所存储的是该项目所有资源的索引。有了这个文件,在程序中使用资源将变得更加方便,可以很快地找到要使用的资源,由于这个文件不能被手动编辑,所以当我们在项目中加入了新的资源时,只需要刷新一下该项目,R.java文件便自动生成了所有资源的索引。

AndroidManfest.xml文件则包含了该项目中所使用的Activity、Service、Receiver,我们先来打开HelloAndroid项目中的AndroidManfest.xml文件,如代码清单3-2所示。

代码清单3-2 AndroidManfest.xml

  1.  version="1.0" encoding="utf-8"?> 
  2.  xmlns:android="http://schemas.android.com/apk/res/android" 
  3.       package="com.yarin.Android.HelloAndroid" 
  4.       android:versionCode="1" 
  5.       android:versionName="1.0"> 
  6.      android:icon="@drawable/icon" 
    android:label="@string/app_name"> 
  7.          android:name=".HelloAndroid" 
  8.                   android:label="@string/app_name"> 
  9.              
  10.                  android:name="android.intent.action.MAIN" /> 
  11.                  android:name="android.intent.category.LAUNCHER" /> 
  12.              
  13.          
  14.      
  15.      android:minSdkVersion="5" /> 
  16.  

代码清单3-2中intent-filters描述了Activity启动的位置和时间。每当一个Activity(或者操作系统)要执行一个操作时,它将创建出一个Intent的对象,这个Intent对象能承载的信息可描述你想做什么,你想处理什么数据,数据的类型,以及一些其他信息。而Android则会和每个Application所暴露的intent-filter的数据进行比较,找到最合适Activity来处理调用者所指定的数据和操作。下面我们来仔细分析AndroidManfest.xml文件,如表3-1所示。

表3-1 AndroidManfest.xml分析

manifest

根节点,描述了package中所有的内容

xmlns:android

包含命名空间的声明。

xmlns:android=http://schemas.

android.com/apk/res/android,使得

Android中各种标准属性能在文件中使用,

提供了大部分元素中的数据

Package

声明应用程序包

application

包含package中application级别组件声

明的根节点。此元素也可包含application

的一些全局和默认的属性,如标签、icon、

主题、必要的权限,等等。一个manifest

能包含零个或一个此元素(不能大余一个)

android:icon

应用程序图标

android:label

应用程序名字

Activity

用来与用户交互的主要工具。Activity是用

户打开一个应用程序的初始页面,大部分

被使用到的其他页面也由不同的activity所

实现,并声明在另外的activity标记中。

注意,每一个activity必须有一个

标记对应,无论它给外部使用或是只用于

自己的package中。如果一个activity没有

对应的标记,你将不能运行它。另外,

为了支持运行时查找Activity,可包含一个

或多个元素来描述activity所支持的操作

android:name

应用程序默认启动的activity

intent-filter

声明了指定的一组组件支持的Intent值,从

而形成了IntentFilter。除了能在此元素下指

定不同类型的值,属性也能放在这里来描

述一个操作所需的唯一的标签、icon和其他信息

action

组件支持的Intent action

category

组件支持的Intent Category。这里指定

了应用程序默认启动的activity

uses-sdk

该应用程序所使用的sdk版本相关