android - Dex 文件布局 - method_handles 和 call_site_ids 部分的偏移量和大小

标签 android dex

我正在尝试了解 Dalvik 可执行文件 (dex) 的文件布局,如 here 所述。 。但是,我无法找到布局中描述的 call_site_idsmethod_handles 部分的偏移量和长度。

大多数其他部分(string_idstype_ids)在 header 中都有偏移量和长度字段,或者被引用为距文件开头的偏移量。 call_site_itemmethod_handle_item 似乎都被称为其他地方各自部分的索引(例如,请参阅 VALUE_METHOD_HANDLE here)。

我查看了smali project的源代码作者:@JesusFreke,但它似乎无法处理这些部分。

我错过了什么吗?感谢您的帮助!

最佳答案

call_sites_ids 和 method_handles 部分仅在 dex 版本 38 中添加。该版本被编码为 dex magic 的一部分.

要查找 call_site_ids 和 method_handles 部分的偏移量和长度,您必须查看 map_list通常位于文件末尾的部分(请参阅: header_item 中的 map_off )。

call_site_items 放置在现有的 encoded_array 中数据部分。

关于android - Dex 文件布局 - method_handles 和 call_site_ids 部分的偏移量和大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781351/

相关文章:

android - dex 在 Android 上为 Scala 构建 Ant 时失败

android - 多个 dex 文件错误

android - 在android中使用smtp附加文件并发送邮件

java - 安装额外的 Java 依赖项到 React-Native 库

java - CRest日志请求/响应体

java - Kotlin 内联函数和 Android 方法计数

android - 无法执行 dex : Multiple dex files define Lcom/google/android/gcm/GCMBaseIntentService;

java - 将 Google Guava 添加到 Android 项目 - 显着减慢构建速度

智能手机和/或平板电脑的安卓开发

Android Studio,Junit4加入classpath后仍无法解析Junit