android - 如何以及什么将 Java 字节码转换为 Android dex 文件?

标签 android dalvik

Android 中如何将 java 字节码转换为 dex 文件?

我知道 Android 用户所做的唯一部分工作就是让他们免于许可问题,使系统执行速度快、内存需求低以及其他更多功能,因为它是基于寄存器的 VM。

但是我能告诉它这样做的部分叫什么名字呢?

最佳答案

浏览下面的网址并阅读所有详细信息 Detail URL

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

  1. Android Assets 打包工具 (aapt) 获取您的应用程序资源文件,例如 AndroidManifest.xml 文件和您的 Activity 的 XML 文件,并编译它们。还生成了一个 R.java,因此您可以从您的 Java 代码中引用您的资源。

  2. aidl 工具可将您拥有的任何 .aidl 接口(interface)转换为 Java 接口(interface)。

  3. 您所有的 Java 代码,包括 R.java 和 .aidl 文件,都是 Java编译器编译后输出.class文件。

  4. dex 工具将 .class 文件转换为 Dalvik 字节码。您包含在项目中的任何第 3 方库和 .class 文件也会转换为 .dex 文件,以便将它们打包到最终的 .apk 文件中。

  5. 所有非编译资源(如图片),编译资源,以及 .dex 文件被发送到 apkbuilder 工具打包成 一个 .apk 文件。

  6. 构建 .apk 后,必须先使用调试 key 或发布 key 对其进行签名 可以安装到设备上。
  7. 最后,如果应用程序在 Release模式下签名,您 必须将 .apk 与 zipalign 工具对齐。对齐最终的 .apk 减少应用程序在设备上运行时的内存使用量。

enter image description here

关于android - 如何以及什么将 Java 字节码转换为 Android dex 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24570534/

相关文章:

android - 在 webview android 中加载 URL 的问题

java - Java 编程中的实用程序类

android - 获取二值图像中非几何线的坐标

android - dalvik.system.PathClassLoader 在 Intel 设备上找不到 jni

android - Xamarin 运行时与 Dalvik

android - 在没有混淆的情况下使用 Proguard 和 Android

android - Xamarin 安卓 : Change EditText's bottom border color if it contains a value

android - Firebase addValueEventListener 响应时间有点慢?

java - 当 OOM 发生时,如何让 dalvik 转储整个应用程序堆内存

java - 反编译的 Dalvik 类 - 并非所有导入都可用