【发布时间】:2017-08-02 19:20:33
【问题描述】:
Im Decompiled apk,分别出现了.java文件,但是有的文件名中有这样的“AudioPlayerActivity$$Lambda$1.java”,这个“$$Lambda$1”是什么??
【问题讨论】:
-
那些是编译器自动生成的类。
标签: apk decompiler apktool
Im Decompiled apk,分别出现了.java文件,但是有的文件名中有这样的“AudioPlayerActivity$$Lambda$1.java”,这个“$$Lambda$1”是什么??
【问题讨论】:
标签: apk decompiler apktool
“AudioPlayerActivity$$Lambda$1.java”这些基本上是写在“AudioPlayerActivity.java”中的匿名代码块,现在“AudioPlayerActivity.java”可以有任意数量的匿名代码块,所以在反编译时,所有这些块都按顺序转换为单独的类,最后有一个数字。举个例子,我有一个类 HelloWorld.java 包含一个块
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
还有另一个匿名块,用于像这样的按钮上的点击侦听器。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
然后在反编译时,我会得到 3 个类 helloworld.smali、helloworld$1.smali(带有用于 runOnUithread 的代码)和 helloworld$2.smali(带有用于 onClickListener 的代码)。
【讨论】: