Android应用程序的源代码结构
时间:2010-08-27 来源:fly123456789
一:源代码结构
HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:
development/samples/HelloActivity/
|-- Android.mk
|-- AndroidManifest.xml
|-- res
| |-- layout
| | `-- hello_activity.xml
| `-- values
| `-- strings.xml
|-- src
| `-- com
| `-- example
| `-- android
| `-- helloactivity
| `-- HelloActivity.java
`-- tests
|-- Android.mk
|-- AndroidManifest.xml
`-- src
`-- com
`-- android
`-- helloactivity
`-- HelloActivityTest.java
其中tests是一个独立的项目,可以暂时不考虑。其他部分看作一个Android的一应用程序的工程。这个工程主要的组成部分如下所示:
AndroidManifest.xml:工程的描述文件,在运行时有用处
Android.mk:整个工程的Makefile
res:放置资源文件的目录
src/com/example/android/helloactivity/HelloActivity.java:这是JAVA类文件,这个文件的路径表示在Andorid的JAVA包的结构中的位置
二: 编译后
这个HelloActivity工程经过编译后将生成out/target/common/obj/APPS /HelloActivity_intermediates/目录,这个目录中的内容都是HelloActivity工程相关的。
out/target/common/obj/APPS/HelloActivity_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文件,也就是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程序经过编译后的各个类的字节码。
三:APK文件
apk文件是Android的JAVA虚拟机Dalvik安装和运行的文件,事实上这个apk文件将由编译的中间结果和原始文件生成。apk文件的本质是一个zip包。这个APK包解压缩后的目录结构如下所示:
out/target/product/generic/obj/APPS/HelloActivity_intermediates/package.apk_FILES/
|-- AndroidManifest.xml
|-- META-INF
| |-- CERT.RSA
| |-- CERT.SF
| `-- MANIFEST.MF
|-- classes.dex
|-- res
| `-- layout
| `-- hello_activity.xml
`-- resources.arsc
HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:
development/samples/HelloActivity/
|-- Android.mk
|-- AndroidManifest.xml
|-- res
| |-- layout
| | `-- hello_activity.xml
| `-- values
| `-- strings.xml
|-- src
| `-- com
| `-- example
| `-- android
| `-- helloactivity
| `-- HelloActivity.java
`-- tests
|-- Android.mk
|-- AndroidManifest.xml
`-- src
`-- com
`-- android
`-- helloactivity
`-- HelloActivityTest.java
其中tests是一个独立的项目,可以暂时不考虑。其他部分看作一个Android的一应用程序的工程。这个工程主要的组成部分如下所示:
AndroidManifest.xml:工程的描述文件,在运行时有用处
Android.mk:整个工程的Makefile
res:放置资源文件的目录
src/com/example/android/helloactivity/HelloActivity.java:这是JAVA类文件,这个文件的路径表示在Andorid的JAVA包的结构中的位置
二: 编译后
这个HelloActivity工程经过编译后将生成out/target/common/obj/APPS /HelloActivity_intermediates/目录,这个目录中的内容都是HelloActivity工程相关的。
out/target/common/obj/APPS/HelloActivity_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文件,也就是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程序经过编译后的各个类的字节码。
三:APK文件
apk文件是Android的JAVA虚拟机Dalvik安装和运行的文件,事实上这个apk文件将由编译的中间结果和原始文件生成。apk文件的本质是一个zip包。这个APK包解压缩后的目录结构如下所示:
out/target/product/generic/obj/APPS/HelloActivity_intermediates/package.apk_FILES/
|-- AndroidManifest.xml
|-- META-INF
| |-- CERT.RSA
| |-- CERT.SF
| `-- MANIFEST.MF
|-- classes.dex
|-- res
| `-- layout
| `-- hello_activity.xml
`-- resources.arsc
相关阅读 更多 +