Smali - 很多“移动对象”

问题描述

我正在使用 mt manager 在 dex 中编辑 Smali。

我发现有些类中有很多move-object大部分都是不必要的

move-object statements

它会影响性能吗?

解决方法

它会影响性能吗?

没有。当 smali 代码1被编译为本机代码时,优化器应该消除任何不必要的移动。

就其价值而言,这类似于 HotSpot(和类似的)Java 实现所使用的策略。

  • Java 编译器生成简单(非最佳)字节码
  • JIT 编译器在将字节码编译为本机代码时会进行大量优化工作。

1 - 严格来说,Smali 是 Dalvik 字节码的人类可读语法。发生优化的编译步骤将是将字节字节码编译为本机代码的步骤。这可能是“提前”或“及时”。