购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.2 分析Android应用工程文件

知识点讲解:光盘:视频\知识点\第4章\分析Android应用工程文件.avi

讲解完Android的整体结构之后,接下来开始讲解Android工程文件的组成。顶层的Android应用程序通常使用Eclipse+Java组合来实现,在Eclipse工程中,一个基本的Android项目的目录结构如图4-2所示。

图4-2 Android应用工程文件组成

在本节的内容中,将详细讲解Android应用程序工程文件中各个组成部分的具体信息。

4.2.1 src程序目录

src程序目录下保存了开发人员编写的程序文件。和一般的Java项目一样,src目录下保存的是项目的所有包及源文件(.java),包含了项目中的所有资源,例如,程序图标(drawable)、布局文件(layout)和常量(values)等。不同的是,在Java项目中没有gen目录,也没有每个Android项目都必须有的AndroidManfest.xml文件。

.java格式文件是在建立项目时自动生成的,这个文件是只读模式,不能更改。R.java文件是定义该项目所有资源的索引文件。例如下面是某项目中R.java文件的代码。

package com.yarin.Android.HelloAndroid;
public final class R {  
    public static final class attr {  
    }  
    public static final class drawable {  
        public static final int icon=0x7f020000;  
    }  
    public static final class layout {  
        public static final int main=0x7f030000;  
    }  
    public static final class string {  
        public static final int app_name=0x7f040001;  
        public static final int hello=0x7f040000;  
    }  
} 

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

4.2.2 设置文件AndroidManfest.xml

文件AndroidManfest.xml是一个控制文件,里面包含了该项目中所使用的Activity、Service和Receiver。例如下面是某项目中文件AndroidManfest.xml的代码。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.yarin.Android.HelloAndroid" 
      android:versionCode="1" 
      android:versionName="1.0"> 
    <application android:icon="@drawable/icon" 
       android:label="@string/app_name"> 
        <activity android:name=".HelloAndroid" 
                  android:label="@string/app_name"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
    <uses-sdk android:minSdkVersion="9" /> 
</manifest>

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

表4-1 AndroidManfest.xml分析

4.2.3 常量定义文件

下面我们看看在资源文件中对常量的定义,例如文件String.xml的代码如下所示。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
  <string name="hello">Hello World, HelloAndroid!</string> 
    <string name="app_name">HelloAndroid</string> 
</resources> 

上述常量定义文件的代码非常简单,只定义了两个字符串资源,请不要小看上面的几行代码。它们的内容很“露脸”,里面的字符直接显示在手机屏幕中,就像动态网站中的HTML一样。

4.2.4 UI布局文件

布局(layout)文件一般位于res\layout\main.xml目录,通过其代码能够生成一个显示界面。例如下面的代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView    
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
    android:text="@string/hello" 
    /> 
</LinearLayout> 

在上述代码中,有以下几个布局和参数。

在上述布局代码中,使用了一个TextView来配置文本标签Widget(构件),其中设置的属性android:layout_width为整个屏幕的宽度,android:layout_height可以根据文字来改变高度,而android:text则设置了这个TextView要显示的文字内容,这里引用了@string中的hello字符串,即String.xml文件中的hello所代表的字符串资源。hello字符串的内容“Hello World,HelloAndroid!”这就是我们在HelloAndroid项目运行时看到的字符串。

注意: 上面介绍的文件只是主要文件,在项目中需要我们自行编写。在项目中还有很多其他的文件,那些文件很少需要我们编写,所以在此就不进行讲解了。 g4IB/i3QTTwEwcDpXWeWRiEXqVKLUGF0PmH2AicmzlnZeG66jwIIefw4Z9TlR9tR

点击中间区域
呼出菜单
上一章
目录
下一章
×