【问题标题】:Heap object (i.e. class instance) representation difference between Dalvik and JVMDalvik 和 JVM 之间的堆对象(即类实例)表示差异
【发布时间】:2016-09-04 19:19:19
【问题描述】:

在 Dalvik VM 和 JVM 中,堆中的对象是如何分别在对象大小和字段顺序方面表示的。它们是一样的吗(像镜子一样)?

是否可以将 DVM 中的堆对象迁移到 JVM?例如,对于DVM堆中的每个对象,在JVM中分配一个相同类型的对象,然后逐字节(或逐字段)复制内容。

【问题讨论】:

  • 不可能迁移它们而不丢失可能存在的任何差异。例如,对象序列化将以对象序列化规范的协议附录中定义的标准格式对它们进行序列化。 XML 和 JSON 序列化使用也是标准化的中间文本格式。你的问题毫无意义。
  • @EJP 谢谢。但是通过转储堆并将其转换为标准的 .hprof 文件,堆对象确实可以被标准 JVM 内存分析器理解。比如link 所以我觉得可能是可行的。

标签: java android jvm heap-memory dalvik


【解决方案1】:

没有。内存中的表示将与其他 VM 完全不同。内存中的表示会因 Android 版本而异,无论是运行 art 还是 dalvik,甚至可能会因运行相同版本 Android 的不同设备而有所不同。

您在该级别尝试做的任何事情非常脆弱,并且可能只能在单个设备或少量设备上运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2014-05-27
    • 2017-09-13
    • 2013-01-24
    • 1970-01-01
    • 2010-11-15
    相关资源
    最近更新 更多