反编译apk,问题lambda

Decompile apk, problems lambda

我反编译apk,分别出现了.java个文件,但是有些文件中有这样的名字"AudioPlayerActivity$$Lambda.java",这个“$$Lambda$1”是什么??

"AudioPlayerActivity$$Lambda.java"这些基本上是写在"AudioPlayerActivity.java"里面的匿名代码块,现在"AudioPlayerActivity.java"可以有任意数量的匿名代码块,所以在反编译的时候,所有这些块被转换成单独的 classes,并在末尾按顺序排列一个数字。让我们举个例子,我有一个 class HelloWorld.java 其中包含一个块

runOnUiThread(new Runnable() {
        @Override
        public void run() {

        }
    });

还有另一个匿名块,用于像这样的按钮上的点击监听器。

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

然后在反编译时我会得到 3 classes helloworld.smali、helloworld$1.smali(带有 runOnUithread 的代码)和 helloworld$2.smali(带有 onClickListener 的代码).