Android基础四 ---- Android工程目录分析

 

前面几篇都是根据安卓的Dev Guide翻译过来的,说实话我自己看着都有点乱,估计各位看官就更晕了...准备把前面几篇优化一下。

前面一篇我们讲了如何搭建开发环境,建立一个新工程并运行它。这篇我们讲一下,创建新工程后,工程的框架结构,这样大家都知道如何使用工程了。

官方文章在这里:

http://developer.android.com/guide/developing/projects/index.html

 


 一. 概述

下面这张图是我创建的一个新的工程,名字叫Test,展开之后的目录结构如下。

 


二. 目录详细分析

说一下工程中的目录吧,从上往下说:

1.src目录

  源码存放的地方,里面有一个test.com是包名。大家可以看到现在里面只有一个TestActivity.java文件,里面包含一个继承自Acitivity的类,这个文件是Android自动创建的,是一个默认的活动窗口。

 

2.gen目录:

  这个是文件夹是存放资源ID的。前面说过,在Android体系中,很多资源并不是直接通过地址访问的,而是Android为资源文件生成一个ID,然后在源码中通过ID来引用资源文件。在gen目录后面有句话Generated Java Files,意思是这个目录的内容是自动生成的,每当我们添加一个资源文件的时候,在gen目录的R.java文件中都会自动生成一个对应ID。

  在我刚创建的工程中,有如下的资源文件。有一个图片ic_launcher.png,一个布局文件main.xml,一个字符串文件strings.xml,都存放在res目录下,res是resource的缩写。在R.java中为这些资源文件自动生成ID,大家可以从图中看到。

  在R类的内部类drawable中,生成一个成员变量ic_launcher,对应的就是ic_launcher.png。在源码中需要引用这个图片是时候,就用R.drawable.ic_launcher来表示。layout类中的main变量对应main.xml。在string类中有两个变量app_name和hello,这个是对应strings.xml文件中的两个字符串。

  刚开始学习Android的时候,可能对这种模式不习惯,也不太理解这个gen目录是干什么的。我现在为止也不是很明白为什么用这种方式,只是猜测这种方式更贴近Java的面向对象思想,另外也易于维护。

 

3.Android2.2: 我在创建这个工程的时候,选择了2.2平台,那么将来在编译的时候,就是用2.2平台的SDK编译。

 

4.assets目录:

  存放应用程序资源的目录,和res目录的作用相同,都是存放应用程序资源(各种xml文件,音频视频文件,图片文件)。但是assets和res的区别是什么呢?区别就是资源文件的访问方式不同。存放在res目录中的资源文件,必须通过ID来访问,就是像R.layout.main这种资源ID的方式。存放在assets目录中的文件采用传统的地址访问方式。

 

5.bin目录:这个暂时用不到,这个目录中存放的是编译之后的应用程序即apk文件即其它编译后的文件,现在还没编译,所以是空的。


6.res目录

  存放应用程序资源的目录,和assets作用一样,区别上面已经讲过了,这里不赘述,说一下res目录下子目录。

  (1)drawable-hdpi,drawable-mdpi,drawable-ldpi

    这3个目录都是存放图片的目录,区别是同一张图片,我们需要三张不同分辨率的图片分别存在着三个目录中,搭载android系统的手机众多,屏幕分辨率也

  不同为了适应各个手机屏幕,我们需要同一图片的三种分辨率格式。

  (2)layout

    里面存放布局文件,xml格式的。布局文件用来定义屏幕上展示什么东西,格式是怎么样的,非常像HTML+CSS完成的工作。我们在创建Activity的时候,需

  要引用一个布局文件,来定义这个Activity的布局。

    下图展示了一个默认的布局文件。大家可以看到,有点像HTML加上内联式CSS。比如里面的TextView标签,表示在Activity里面显示一个文本,里面设置了

  宽度和高度,并且用android:text属性定义了这个textview里面要显示什么字符。

  

  (3)strings

  存放字符串文件,xml格式。下图就是一个字符串文件,非常简单,典型xml,大家都能懂。

  

 

7.AndroidManifest.xml:清单文件,这个就不说了,第三篇有具体说这个文件。

 

对于初学者来讲,我们需要知道下面这几个的用户:

src, gen, res, AndroidMainifest.xml文件,这4个就可以了,其它文件等我们进阶的时候再学习吧。


 

这是我写的第四篇Android日志了,全部是基础部分。后面再写就是实践部分了,因为Android开发是组件形式了,那么后面主要是写组件了,包括Activity, Service, Content provider, Broadcast receiver, 这也是所谓的android开发四大利器。现在也有把Intent作为重要组件的,并成为五大利器。

posted on 2012-03-05 23:02  难忘理想  阅读(2046)  评论(3编辑  收藏  举报

导航