zoukankan      html  css  js  c++  java
  • Android项目的目录结构(转)

    在Eclipse中,一个基本的Android项目的目录结构如图2-20所示。

    图2-20  Android应用工程文件的组成 1. src目录——程序文件 在里面保存了程序员辛辛苦苦直接编写的程序文件。和一般的Java项目一样,src目录下保存的是项目的所有包及源文件(.java),res目录下包含了项目中的所有资源。例如,程序图标(drawable)、布局文件(layout)和常量(values)等。不同的是,在Java项目中没有gen目录,也没有每个Android项目都必须有的AndroidManifest.xml文件。 .java格式的文件是在建立项目时自动生成的,这个文件是只读模式,不能更改。R.java文件是定义该项目所有资源的索引文件。先来看看HelloAndroid项目的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文件便自动生成了所有资源的索引。 2. AndroidManifest.xml文件——设置文件 AndroidManifest.xml是一个控制文件,在里面包含了该项目中所使用的Activity、Service、Receiver,看下面“HelloAndroid”项目中的AndroidManifest.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="5" /> < /manifest> 在上述代码中,intent-filter描述了Activity启动的位置和时间。每当一个Activity(或者操作系统)要执行一个操作时,它将创建出一个Intent的对象,这个Intent对象能承载的信息可描述你想做什么、你想处理什么数据、数据的类型以及一些其他信息。而Android则会和每个Application所暴露的intent-filter的数据进行比较,找到最合适的Activity来处理调用者所指定的数据和操作。下面来仔细分析AndroidManifest.xml文件,如表2-1所示。 表2-1 AndroidManifest.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必须有一个<activity>标记对应,无论它给外部使用或是只用于自己的package中。如果一个Activity没有对应的标记,你将不能运行它。另外,为了支持运行时查找Activity,可包含一个或多个<intent-filter>元素来描述Activity所支持的操作
    android:name 应用程序默认启动的Activity
    intent-filter 声明了指定的一组组件支持的Intent值,从而形成了Intent Filter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签、icon和其他信息
    action 组件支持的Intent action
    category 组件支持的Intent Category。这里指定了应用程序默认启动的Activity
    uses-sdk 该应用程序所使用的sdk相关版本
     

    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一样。 在Android中还有一个露脸的文件,那就是布局(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> 在上述代码中,有以下几个布局和参数。 Ÿ      <LinearLayout></LinearLayout>:线性版面配置,在这个标签中,所有元件都是按由上到下的顺序排成的。 Ÿ      android:orientation:表示这个介质的版面配置方式是从上到下垂直地排列其内部的视图。 Ÿ      android:layout_width:定义当前视图在屏幕上所占的宽度,fill_parent即填充整个屏幕。 Ÿ      android:layout_height:定义当前视图在屏幕上所占的高度,fill_parent即填充整个屏幕。 Ÿ      wrap_content:随着文字栏位的不同而改变这个视图的宽度或高度。 在上述布局代码中,使用了一个TextView来配置文本标签Widget(构件),其中设置的属性android:layout_width为整个屏幕的宽度,android:layout_height可以根据文字来改变高度,而android:text则设置了这个TextView要显示的文字内容,这里引用了@string中的hello字符串,即String.xml文件中的hello所代表的字符串资源。hello字符串的内容“Hello World, HelloAndroid!”这就是在HelloAndroid项目运行时看到的字符串。 注意:上面介绍的文件只是主要文件,在项目中需要自行编写。在项目中还有很多其他文件,那些文件很少需要编写,所以在此就不进行讲解了

  • 相关阅读:
    方法集锦3_字符串_python
    171. 乱序字符串
    149. 买卖股票的最佳时机(回顾)
    150. 买卖股票的最佳时机 II
    平方根的计算
    平方根的计算
    对话Roadstar投资人:一家自动驾驶公司之死(三) ...
    对话Roadstar投资人:一家自动驾驶公司之死(三) ...
    Axure遮罩 or 灯箱
    Axure遮罩 or 灯箱
  • 原文地址:https://www.cnblogs.com/zhixing/p/2748852.html
Copyright © 2011-2022 走看看