前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >速读原著-Android应用开发入门教程(应用程序包含的各个文件)

速读原著-Android应用开发入门教程(应用程序包含的各个文件)

作者头像
cwl_java
发布2020-01-15 10:39:00
4020
发布2020-01-15 10:39:00
举报
文章被收录于专栏:cwl_Javacwl_Java

5.2 应用程序包含的各个文件

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

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

在编译 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 工具进行处理。

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

Android 和标准 JAVA 开发的 JAR 包最大的不同在于,标准 JAVA 字节码是每个文件一个 Clash 文件,而Android 中的一个包将生成一个 Dex 文件。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5.2 应用程序包含的各个文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档