http://androidtoast.iteye.com/blog/1159191
1.构建一个helloworld的android程序非常简单,直接new 一个android的项目,直接运行,一个helloworld的项目就完成了。这一篇主要详细讲一下android的项目目录结构以及源码关联。看图:
相对于J2EE项目结构的灵活,Android项目的结构显得比较固定,只要你弄清楚每个资源文件里面该放什么东西,就不会出现J2EE中,资源放错地方not found的问题。当然两者的相同之处还是很明显的,android项目中围绕着四大组件构建起来的业务逻辑,在JavaEE中你可以看作是Servlet或者SSH,每一个组件或者每一个框架都负责处理属于自己的东西。AndroidManifest.xml可以看做是web.xml。
src :包含应用程序的所有源代码
gen :gen下面的R类是自动生成的,这是一个非常顽强的类即使把它删除也会自动创建。这个类里面 包含很多内部类,每个内部类对应相应的资源文件。
- public final class R {
- public static final class attr {
- }
- //此类对应res资源包下的drawable
- public static final class drawable {
- //每一张图片都会生成一个唯一的整型标识符
- public static final int icon=0x7f020000;
- }
- //此类对应布局文件layout
- public static final class layout {
- //位布局文件生成的对应的标识符
- public static final int main=0x7f030000;
- }
- //对应values资源包主要用于国际化
- public static final class string {
- //为不同的字符串生成相对应的标识符
- public static final int app_name=0x7f040001;
- public static final int hello=0x7f040000;
- }
- }
public final class R {
public static final class attr {
}
//此类对应res资源包下的drawable
public static final class drawable {
//每一张图片都会生成一个唯一的整型标识符
public static final int icon=0x7f020000;
}
//此类对应布局文件layout
public static final class layout {
//位布局文件生成的对应的标识符
public static final int main=0x7f030000;
}
//对应values资源包主要用于国际化
public static final class string {
//为不同的字符串生成相对应的标识符
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
assets: 可以存放一些其他,额外的文件或者资源
res:资源文件包 drawable用于存放图片资源,layout用于存放布局文件,values用于存放程序所
需文字资源。着重说一下drawable,在之前的版本中,只有一个drawable,而2.1版本之后(包括 2.1)出现了drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。
他们的主要区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
AndroidManifest.xml:应用程序的描述文件,此文件定义应用程序的Activity,ContentProvider,Service,receiver以及意图过滤器。还定义了应用程序所需要的权限等等。
Default.properties:主要定义了应用程序最低的兼容版本。
Proguard.cfg:主要用于优化,压缩,混淆java字节码文件的工具。
2,开发中经常需要扩展或者自定义某些功能,这就需要对源代码有一些深入的了解。目前android 除了支持平板的3.0以上的版本源码还没有开放。其余版本都可以下载到。说一下如何关联源码。例如我关联android2.2版本的。
然后在Eclipse上新建一个android的程序,右键→properties→Java Buid Path
此时源码已经关联好了,但是还有一个类无法找到。Manifest.java 权限的清单文件。这个类定义了所有需要用到的权限。
重启Eclipse,查找一下该类,看下是否关联上!
有需要源码的留下邮箱。