码迷,mamicode.com
首页 > 移动开发 > 详细

Android基础(1)--工程目录结构分析

时间:2015-01-28 21:15:46      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

一般来说,android项目结构大体是相同的,由于adt中使用的android SDK版本为4.4.2,所以就以这个版本的项目目录来分析。

技术分享

这是一个完整的项目目录结构,下面我们就依次分析每个文件的作用。

 

1. src目录

技术分享

顾名思义,就是存放java源代码的地方。

 

2. gen目录

技术分享

是java自动生成的文件,不能手动修改。

其中,android.support.v7本质上就是java library,通常还会有v4,v13。

Android Support V4:是最早(2011.4)实现的库。用在Android 1.6(API level 4)或者更高版本之上,它包含了相对V4,V13大多的功能。

Android Support V7:这个包是为了考虑Android 2.1(API level 7)及以上版本而设计的,但是v7是要依赖v4这个包的,也就是如果要使用,两个包得同时被引用。 v7支持了Action bar。

Android Support V13:这个包的设计是为了Android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。

为什么要有support库呢?

如果在低版本Android平台上开发一个应用程序,而应用程序又想要使用高版本才拥有的功能,就需要使用support库。

如何使用?

首先要保证Android Support Library 被安装;

 

然后在工程中增加(例如 support-v4 Library)

在ADT中需要按照以下步骤:
1、右击当前工程,查找Properties
2、选择Java Build Path
3、选择Libraries tab,点击右边面板的Add External JARs按钮
4、选择android-support-v4.jar文件,这一文件的常见路径为:YOUR_DRIVE\android-sdks\extras\android\support\v4\android-support-v4.jar
5、完成添加后,选择Order and Export标签,确认即可。

 

BuildConfig.java文件:早先的版本并没有这个文件,它是Android ADT更新后来添加的,它的作用是代码的辅助检查,在整个工程中不断自动检测。

R.java文件:默认有attr、drawable、layout、string等四个静态内部类,每个静态内部类分别对应着一种资源,如layout静态内部类对应layout中的界面文件,其中每个静态内部类中的静态常量分别定义一条资源标识符,如public static final int main=0x7f030000;对应的是layout目录下的main.xml文件。

  当开发者在res/目录中任何一个子目录中添加相应类型的文件之后,ADT会在R.java文件中相应的内部类中自动生成一条静态int类型的常量,对添加的文件进行索引。如果在layout目录下再添加一个新的界面,那么在public static final class layout中也会添加相应的静态int常量。相反当我们在res目录下删除任何一个文件,其在R.java中对应的记录会被ADT自动删除。

  R.java文件除了有自动标示资源的索引功能之外,还有另外一个主要的功能,如果res目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的APK包中,这样可以节省Android手机的资源。

 

3.  工程中引用的第三方jar包

技术分享

 

4. assets目录

技术分享

用于存放应用程序中使用的外部资源文件,程序可以通过I/O流对目录中的文件进行读写,存放在此目录下的文件都会被打包到发布包中。

 

5. bin目录

技术分享

输出文件夹,如生成的APK文件。

AndroidMainfest.xml必要文件,描述了package中的全局数据,包括了package中暴露的组件(activities, services, 等等),它们各自的实现类,各种能被处理的数据和启动位置。

  此文件一个重要的地方就是它所包含的intent-filters。这些filters描述了activity启动的位置和时间。每当一个 activity(或者操作系统)要执行一个操作,例如:打开网页或联系簿时,它创建出一个intent的对象。它能承载一些信息描述了你想做什么,你想 处理什么数据,数据的类型,和一些其他信息。Android比较了intent对象中和每个application所暴露的intent-filter中 的信息,来找到最合适的activity来处理调用者所指定的数据和操作。

技术分享

  除了能声明你程序中的Activities, Content Providers, Services, 和Intent Receivers,你还能指定permissions和instrumentation(安全控制和测试)在AndroidManifest.xml文 件中。

  

6. libs目录

技术分享

用于存放第三方库。

 

7. res目录

技术分享

res/drawable-hdpi(WVGA、FWVGA):保存高分辨率图片资源。

res/drawable-ldpi:保存低分辩率图片资源。

res/drawable-mdpi(HVGA):保存中等分辨率图片资源。

res/drawable-xhdpi(720P):保存高分辨率图片资源。

res/drawable-xxhdpi(1080P):保存高分辨率图片资源。

图片资源可以使用Resources.getDrawable(id)可以获得资源类型。

res/layout:存放所有的布局文件,主要是用于排列不同的显示组件,在Android程序中要读取此配置。

  layout目录内默认布局文件是activity_main.xml,可以在该文件内放置不同的布局结构和控件,来满足项目界面的需要,也可以新建布局文件。

可以看到layout下有两个xml文件:

这是因为Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被 拉 长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布 局。因此,我们今天的主角Fragment登场了。

为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像 Activity一样包含布局。Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个 Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题。Fragment 2包含了TextView和 ImageView,来显示书的详细内容和图片。

res/values:   存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:arrays.xml:定义数组数据;(在个这个xml命名的时候可以随便起名,因为最后用的时候只是用到写在这个xml文件中的array的名字)

menu:存放定义了应用程序菜单资源的XML文件。

values, values-v11, values-v14:存放定义了多种类型资源的XML文件。

Android基础(1)--工程目录结构分析

标签:

原文地址:http://www.cnblogs.com/troy-sxj/p/4257054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!