HelloActivity 工程的源代码在Android 目录的development/samples/HelloAndroid/中,代码的
结构如下所示:
development/sample/HelloActivity/
|--Android.mk
|--AndroidManifest.xml
|--res
|---layout
| --hello_activity.xml
---values
----strings.xml
|--src
| --com
| --example
| --android
| --helloactivity
| --HelloWorld.java
----------------------------------------------------------------------------------------
其中tests 是一个独立的项目,可以暂时不考虑。其他部分看作一个Android 的一应用程序的工程。这个工程主要的组成部分如下所示:
AndroidManifest.xml : 工程的描述文件,在运行时有用处
Android.mk : 整个工程的Makefile
res : 放置资源文件的目录
src/com/example/android/helloactivity/HelloWorld.java:这是JAVA 类文件,这个文件的路径表示在Andorid 的
JAVA 包的结构中的位置, 这个包的使用方式为 : com.example.android.helloactivity。
编译的过程:
HelloWorld工程经过编译后将生成 out/target/common/obj/APPS/HelloWorld_intermediates/ 目录,这个目录中得内容都是HelloActivity工程相关的,更具体的说
与development/samples/HelloActivity/中得Android.mk文件相关
out/target/common/obj/APPS/He lloActivity_intermediates/
|-- classes.dex (字节码)
|-- classes.jar (JAR 文件)
|-- public_resources.xml (根据resources 结构生成的xml)
`-- src
|-- R.stamp
`-- com
`-- example
`-- android
`-- helloactivity
`-- R.java (resources 生成的文件)
classes.dex
是一个最重要的文件,它是给Android 的JAVA 虚拟机Dalvik 运行的字节码文
件。
classes.jar
是一个JAR 文件,JAR 的含义为Java ARchive,也就是Java 归档,是一种与平台
无关的文件格式,可将多个文件合成一个文件。解压缩之后的目录结构:(JAVA 标准编译得
到的类)
classes
|-- META-INF
| `-- MANIFEST.MF
`-- com
`-- example
`-- android
`-- helloactivity
|-- HelloActivity.class
|-- R$attr.class
|-- R$id.class
|-- R$layout.class
|-- R$string.class
`-- R.class
各个以class 为扩展名的文件,事实上是JAVA 程序经过编译后的各个类的字节码。