技术开发 频道

Android的应用程序编译结果

  【IT168 技术文档】以HelloActivity工程为例,它经过编译后将生成out/target/common/obj/APPS/HelloActivity_intermediates/目录。
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.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


  在经过以上编译后,由原始目录development/samples/HelloActivity/中的内容结合目标文件out/target/common/obj/APPS/HelloActivity_intermediates/中的内容,将生成最终的APK包,这个包放置在out/target/product/generic/obj/APPS/HelloActivity_intermediates/目录中。
#####目标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工程三个目录为:
  原始目录:development/samples/HelloActivity/
  编译目录:out/target/common/obj/APPS/HelloActivity_intermediates/
  APK目录:out/target/product/generic/obj/APPS/HelloActivity_intermediates/

  其中整个out目录是Android在编译后才具有的。

0
相关文章