反编译apk,问题lambda

时间:2017-03-12 19:59:51

标签: apk decompiler apktool

Im Decompiled apk分别出现.java文件,但有些文件的名称是" AudioPlayerActivity $$ Lambda $ 1.java",这是什么" $$ Lambda $ 1& #34; ...

1 个答案:

答案 0 :(得分:3)

" AudioPlayerActivity $$ LAMBDA $ 1.java"这些基本上是在" AudioPlayerActivity.java"内写的匿名代码块,现在是" AudioPlayerActivity.java"可以有任意数量的匿名代码块,因此在对其进行反编译时,所有这些块都会按顺序转换为单独的类,并在末尾添加数字。让我们举一个例子,我有一个HelloWorld.java类,它包含一个块

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

        }
    });

和像这样的按钮上的clicklistener的另一个匿名块。

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

            }
        });

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