5

我试图了解为什么 Android SDK 需要 JDK。

  • Android SDK 不应该拥有它需要的所有 JDK Java 类(可能存在实现差异)?
  • JDK 中包含的所有工具都需要它吗?
  • 我们在构建 .dex 和 .apk 文件时是否使用 JDK?
  • 说 Android Java 类必须使用 Java 5 或 6 编译器合规性编写是什么意思?

谢谢

4

3 回答 3

8

和构建

典型构建的一般过程概述如下:

  • Android 资产打包工具 (aapt) 获取您的应用程序资源文件,例如 AndroidManifest.xml 文件和活动的 XML 文件,并编译它们。还生成了一个 R.java,因此您可以从 Java 代码中引用您的资源。
  • aidl 工具将您拥有的任何 .aidl 接口转换为 Java 接口。
  • 您的所有 Java 代码,包括 R.java 和 .aidl 文件,都由Java 编译器编译,并输出 .class 文件。
  • dex 工具将 .class 文件转换为 Dalvik 字节码。您在项目中包含的任何第 3 方库和 .class 文件也会转换为 .dex 文件,以便将它们打包到最终的 .apk 文件中。
  • 所有非编译资源(如图片)、编译资源和 .dex 文件都发送到 apkbuilder 工具打包成 .apk 文件。
  • 构建 .apk 后,必须使用调试或发布密钥对其进行签名,然后才能将其安装到设备上。
  • 最后,如果应用程序在发布模式下进行签名,您必须将 .apk 与 zipalign 工具对齐。当应用程序在设备上运行时,对齐最终的 .apk 会减少内存使用量。

更多参考在这里..

于 2013-08-28T14:26:57.707 回答
1

Android SDK 使用 JDK 将您的.java文件编译为.class字节码。

于 2013-08-28T14:00:21.927 回答
0

当您构建项目时,所有 .java 文件都将转换为 .class。您需要JDK。

现在adk的dx工具将所有.class文件转换为classes.dex文件,这个classes.dex文件在dalvik虚拟机上执行。

于 2013-08-28T14:17:39.127 回答