src目录:按照项目Java包的目录结构保存了项目中所有Java源程序,也就是源代码;

lib目录:项目中用到的各种第三方Java库文件都位于这个目录下;在这个目录中包含了Android库文件的链接。通常情况下不需要对这个目录进行任何操作,当在开发过程中要确认某个Android类时候存在时,可以在这里进行查询。

assert目录:项目中用到的各种静态资源文件都存放在这个目录下,比如字体和第三方JAR文件等。

doc目录:该目录用于存放和项目相关的各种文档。

res目录:项目中用到的所有动态资源文件都存放在res目录下,这个目录存放与工程项目相关的各种资源文件。其中包含了大部分用于描述软件界面布局的XML文件和所有的图片文件(界面布局中会用到的图标,图片和动画)等。res目录又细分成如下3个子目录

drawable目录用于存放图像资源文件,比如图片和位图等;

layout目录用于存放用户界面xml布局文件;

values目录用于保存项目中用到的各种常量和字符串资源。

AndroidManifest.xml文件:这个文件在创建项目的时候由ADT自动生成。通过扩展名可以知道它是一个XML文件,其中包含了大量关于程序本身的信息,比如程序包含了哪些活动、服务和意图,哪个活动最先启动,程序需要从操作系统获得哪些许可(手机的某些功能是受限使用的,比如定位和拨出电话等),以及其他一些必要信息。该文件本质是一个XML文件,因此可以使用任何一款文本编辑器对其进行修改,不过通过ADT提供的图形编辑器编辑起来更加方便。 这个XML文件时应用程序的清单文件。在这个文件中设定了构建和安装该应用程序需要满足的一些条件。ADT插件为该文件提供了一个特殊的图形化编辑器。

Eclipse还会在项目的根目录创建两个文件夹,这两个文件夹在Package Exploer里是看不到的。其中.classpath文件夹用于保存标准Java类和类库的具体位置,而.project目录用于存放工程项目相关的一些信息。作为开发者来说永远不需要用到这两个目录。Eclipse会将Java源代码(src目录下的Java源代码)的编译结果存放到bin目录下。上面提到的这几个目录都位于项目的跟目录下,开发者不需要对它们做任何操作,因为Eclipse会自动维护它们。

下面用图形讲解:

android 如何创建目录结构图 分析说明android项目目录结构_android 如何创建目录结构图

一个android项目有如下目录:

 

src:这里放的是我们编写的源代码

gen:这里的是eclipse自动生成的文件,不用管它

asssts:放置文件

res:也是放置文件,不同的是res放置文件后在gen的,这个文件中生成相应的id值。而gen不会生成。

分辨率高(图片)

  分辨率低(图片)

  分辨率中(图片)

  布局

控制控件的位置大小等属性

  键值对

存储的都是键值对。键值对在R.java中会生成id

 

介绍AndroidManifest.xml文件的作用

android的配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.chesee"       //包名
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk android:minSdkVersion="10" />
 
    <application
        android:icon="@drawable/ic_launcher" //引用图片
        android:label="@string/app_name" >   //引用application的名字
        <activity
            android:name=".HelloworldActivity"  //包名.这个就是访问到类了。这个事类名
            android:label="@string/app_name" >  //引用标签
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />  //先启动这个activity
            </intent-filter>
        </activity>
    </application>
 
</manifest>

分析上面的xml文件:

【xmlns:android】:包含命名空间的声明。xmlns:android="http://schemas.android.com/apk/res/android",使得Android中各种标准属性能够在文件中使用,提供大部分元素的数据。

【package】:声明应用程序包。

【application】:包含package中application级别组件声明的根节点。此元素耶可包含application的一些全局和默认的属性,如标签、icon、主题、必要权限等。一个manifest能够包含零个或一个此元素,不能大于一个。

【android:icon】:应用程序图标。

【android:lebel】:应用程序名字。

【Activity】:用户交互工具。

【android:name】:应用程序默认启动的Activity。

【intent-filter】:声明了指定一组组件支持的Intent值,从而形成IntentFilter。

【action】:组件支持的Intent action 。

【category】:组件支持的Intent Category。指定应用程序默认启动的Activity。

【uses-sdk】: 应用程序所使用的sdk版本。

 

res文件夹中包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常量(values)。android项目中多了gen文件夹,里面是R.java文件,定义该项目所有资源的索引文件

android 如何创建目录结构图 分析说明android项目目录结构_xml_02

1 R.java文件是项目创建的时候自动生成,是只读文件,不能够更改。其代码如下:

package com.hanfeng.demo;    
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文件夹中的文件名字一样,说明了R.java文件存储了该项目中的所有资源索引。R.java文件的存在,方便资源的使用,当我们在项目中加入新资源,只需刷新项目,R.java文件就会自动生成所有资源的索引

String.xml 资源文件中的常量定义。代码如下:

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

从上面的代码可以看出,文件中定义的字符串资源常量"hello"、"app_name"指向了R.java文件中的字符串资源。

下面看如何使用定义的这些资源。我们可以通过Context的getResource实例化一个Resource对象,然后通过Resource的getSting方法获取指定索引的字符串。代码如下:

Resource r = this.getContext().getResource();   
String appname = ((String) r.getString(R.string.app_name)); 
 String hello = ((String) r.getString(R.string.hello));

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>】:线性版面配置,在这个标签中,所有元件都是按由上到下的排列排成。

【android:orientation】:表示这个介质的版面配置方式是从上到下的垂直地排列其内部视图。

【android:layout_width】:定义当前视图在屏幕上所占的宽度,fill_parent即填充整个屏幕。

【android:layout_height】:定义当前视图在屏幕上所占的高度。

【wrap_weight】:随着文字栏位的不同而改变这个视图的高度或宽度。

AndroidTest.java 项目的主程序文件。代码如下:

package com.hanfeng.demo;   
import android.app.Activity;   
import android.os.Bundle;    
public class AndroidTest extends Activity {     
 /** Called when the activity is first created. */     
 @Override      public void onCreate(Bundle savedInstanceState)
 {          super.onCreate(savedInstanceState);          
        setContentView(R.layout.main);     
 }  
}

主程序AndroidTest继承自Activity类,重写了void onCreate(Bundle
saveInstanceState)方法。在onCreate方法中通过setContentView(R.layout.main)设置Activity要显示的布局文件。