安卓应用程序中包含的文件

1.文件类型

        Android 应用程序一般包含在一个单一的文件夹中,即每一个 Android 应用程序是一个独立的工程,包含了以下文件:

        Android.mk:统一工程文件,在 SDK 开发中可以不需要;
        AndroidManifest.xml:工程描述文件,在其中定义了各种组件;
        Java 源代码:按照 Java 包的方式来组织目录结构,包括各个 Java 类的源代码;
        资源文件:包含 XML 文件、图片、原始数据文件等,其中表示界面情况的布局(Layout)文件比较重要。

2.文件结构

        安卓项目中文件结构如图所示:

3.文件编译

        在编译 Android 应用程序的过程中,Java 源代码使用 Sun JDK 将 Java 源程序编译成 Java 字节码文件(多个后缀名为.class 的文件),这一步骤和标准的 Java 一致,然后通过 Android 自带的工具软件 dex 把所有的字节码文件转成 dex 文件(单一文件 classes.dex)。

        AndroidManifest.xml 文件经过 Android 打包工具(aapt)处理后形成二进制格式 AndroidManifest.xml 文件,实质的内容与以前相同。 

        各个资源文件也经过 aapt 处理,其中布局等文本文件处理成二进制文件,图片等文件保持不变。
        最后将这三个部分组合成一个应用程序包(*.apk)。AndroidManifest.xml 描述文件、Java 源文件、资源文件是 Android 应用程序的三个部分;在编译之前的工程中是这三个部分,在编译之后 APK 包依然是由这三个部分组成的。 

        Android 应用程序的编译过程如图所示:

 

        如图所示,Android 源文件经过了标准的 Java 编译器的编译,又经过了 dx 工具的处理,标准的 Java 字节码作为整个 Android 编译的中间过程,最终生成的 dex 文件(classes.dex)是一个单一文件,将工程中所有的 Java源代码文件对应的字节码集成在一起。资源文件和 AndroidManifest.xml 文件通过 aapt 工具进行处理。 

4.程序运行

        在运行时,APK 包将首先进行“安装”,也就是将其中的 dex 文件进行优化,优化后的文件被保存到缓存区域,生成格式为 dey 的优化文件,然后 Dalvik 虚拟机将运行这些 dey 文件。如果应用程序包文件不发生变化,dey 文件不会被重新生成;在应用程序包发生更新的情况下,将重新由 dex 生成 dey。

5.安卓和原生java 字节码的区别

        Android 和标准 JAVA 开发的 JAR 包最大的不同在于,标准 JAVA 字节码是每个文件一个 Clash 文件,而Android 中的一个包将生成一个 Dex 文件。其中kotlin代码最终也是转化为java字节码运行,因此,一般认为二者在底层上并无差异。

6.扩展

        涉及kotlin在安卓开发中的应用可访问下方链接,下载电子书-------《Kotlin从零到精通Android开发》进行参考研究。

http://code.drjtrtj.xyz/downCode?id=4022

        电子书部分目录如下图所示:

 

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值