// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getfield 17 me/empirical/android/application/fillmemory/MainActivity$4$1:this$1 Lme/empirical/android/application/fillmemory/MainActivity$4;
// 6: getfield 28 me/empirical/android/application/fillmemory/MainActivity$4:this$0 Lme/empirical/android/application/fillmemory/MainActivity;
// 9: bipush 10
// 11: aload_0
// 12: getfield 17 me/empirical/android/application/fillmemory/MainActivity$4$1:this$1 Lme/empirical/android/application/fillmemory/MainActivity$4;
// 15: getfield 28 me/empirical/android/application/fillmemory/MainActivity$4:this$0 Lme/empirical/android/application/fillmemory/MainActivity;
// 18: invokestatic 34 me/empirical/android/application/fillmemory/MainActivity:access$300 (Lme/empirical/android/application/fillmemory/MainActivity;)Landroid/widget/Button;
// 21: invokestatic 38 me/empirical/android/application/fillmemory/MainActivity:access$100 (Lme/empirical/android/application/fillmemory/MainActivity;ILandroid/widget/Button;)V
// 24: aload_0
// 25: monitorexit
// 26: return
// 27: astore_1
// 28: aload_0
// 29: monitorexit
// 30: aload_1
// 31: athrow
// 32: astore_1
// 33: goto -9 -> 24
// Local variable table:
// start length slot name signature
// 0 36 0 this 1
// 27 4 1 localObject Object
// 32 1 1 localException Exception
// Exception table:
// from to target type
// 2 24 27 finally
// 24 26 27 finally
// 28 30 27 finally
// 2 24 32 java/lang/Exception
此代码是用于填充ram内存的android应用程序的一部分。此代码存在于函数中以填充10 mb的ram内存。任何人都可以解释它的工作,因为我没有字节码的经验,请建议几个网站,以掌握快速的字节码知识。谢谢。
答案 0 :(得分:2)
bytecode
是 JVM(Java虚拟机)的指令集。 Java程序员实际上不必理解bytecode
。 JVM使用bytecode
使javaprogram可移植,这意味着它可以在任何平台上运行(Windows,MAC,UNIX,LINUX .........)。
平台上的JRE解释字节码并将其转换为平台的本地ObjectCode。
你可以参考This Link 了解更多详情
答案 1 :(得分:1)
从名称MainActivity$4$1
判断,此代码必须来自MainActivity
内嵌套匿名类中的方法。
Java代码应该是这样的:
synchronized (this) {
try {
methodInMainActivity(MainActivity.this, 10, methodThatReturnsButton(MainActivity.this));
} catch (Exception localException) {}
}
您可以在Internet上找到许多Java字节码教程。但是,最终的参考是:The Java Virtual Machine Instruction Set。