这段时间正在学习有关Android的知识,对在Eclipse下开发的Android项目的目录结构有了一定的了解,在此对目录结构做一个简单的介绍。下图是在Eclipse下Android项目展开的项目目录:
下面就对上图中各级目录结构及其作用做一个简单的介绍:
1. src文件夹
这个文件夹是放你写的项目的源代码用的,你用java写的源代码系统都会自动放在这个文件夹里面。
1 package com.example.day04_01;
2 import android.app.Activity;
3 import android.os.Bundle;
4
5 public class MainActivity extends Activity {//创建一个类然后这个类继承了Activity
、
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_main);
11 }
12
13 //Intent intent = getIntent();
14 //String name = intent.getStringExtra("name");
15 //String pwd = intent.getStringExtra("pwd");
16 //Toast.makeText(this, "name = " + name + ",password = " + pwd, 4000).show();
17
18 Intent inten = getIntent();
19 //User user = inten.
20 }
上面这段代码就是我在创建之初系统就在src文件夹自动生成一个java文件。
2. gen目录
它是系统自动生成源代码目录,自动生成R.java的源代码文件,它是res目录下的一个索引,根据res目录下的文件自动生成的。gen目录为资源数据创建的索引文件,通过内部类的常量的方式,把数据的内存地址和名字一一对应,而不用文件路径的形式,从而大大的提高了资源定位和检索速率。
R.java中有4个静态内部类,每个类都对应res目录下的一种资源,每个内部类都表示一个文件夹,文件夹都是小写,并且一一对应。res的命名规则是:小写英文字母,小写,横线下划线,不能出现大写字母。
1. public static final class attr{};//attribute
2。public static final class drawable {//这里面每条都记录了对应:Project/res/drawable-*下面的一张图片,默认格式是png
public static final int icon = 0x7f020000;
}
3.public static final class layout {//有多个布局文件,都是小写开头的。xml文件
public static final int main = 0x7f030000;
}
4.public static final class String {//1.只有一个String文件,里面每条记录都对应:Project/res/values/string.xml里面的每一条记录,里面存放的是自定义的字符串和值
//2.也可以定义别的属性和属性值文(arrays.xml:color.xml;dimens.cml;style.cml)
public static final int app_name= 0x7f040001;
public static final int HelloAndroid= 0x7f040000;//工程名字
}
因此R.java内部类和res文件对应关系为:
- 图片可绘制资源在drawable中
- 字符串资源在string中
- 布局xml文件在layout中
- 控件在id中
- 菜单资源在menu中
3. Android5.0.1
这是Android开发基础包,类似于rt.jar
4. Android Private Libares
这个里面有一个资源包和一个构建包,可以看作是一个引用
5. assets
资源目录,里面存储一些音频视频图片
6. bin文件夹
这个是输出文件夹,生成的二进制可执行文件目录,生成APK文件等。
7. libs文件夹
第三方jar包,微信,百度定位等。
8. res文件夹
它是你的资源目录,里面包含了你所创建的项目的资源文件并把它编译到应用程序中。你向资源目录中添加资源的同时,会被R.java自动记录下来。res目录下包含三个子目录:drawable,layout,values;
- drawable :(里面有hdpi,xhdpi,xxhdpi,mdpi,ldpi五种格式)里面包含的一些你创建的项目的应用程序需要用到的一些图片格式。
- layout :界面布局文件(main.xml入口布局文件,决定的当前界面控件的摆放方式,宽高颜色等), main.xml和src中的java文件是对应关系
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 tools:context="${relativePackage}.${activityClass}" >
7
8 <Button
9 android:id="@+id/btnLogin"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"
12 android:text="登陆"
13 />
14 <Button
15 android:id="@+id/btnRegister"
16 android:layout_width="wrap_content"
17 android:layout_height="wrap_content"
18 android:text="注册"
19 />
20
21
22 </LinearLayout>
- values :里面有一个很重要的string.xml文件(定义资源,存放自定义字符串和数值),它里面数据保存的形式是以键值对的方式。这个文件保存了客户能看到的所有的具体的内容,就是数据(也叫资源)。
9. AndroidMainfest.xml : 它是项目的总配置文件,是每个Android程序中必须的文件,位于整个项目的根目录,记录了应用程序中使用的各种组件。(以后再对下下面代码进行详细解释)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.day04_01"//第一个就是包名,可以修改,这里修改src里面的包名也要修改
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk//min:兼容的最小值,target:最高的值
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"//自动备份
android:icon="@drawable/ic_launcher"//启动的图标
android:label="@string/app_name"//app名字,就是在手机桌面的名字,对应string里app_name >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login" >
</activity>
</application>
</manifest>
作者:金帅
以上就是Android中主要的目录的介绍