【问题标题】:Decompile apk, problems lambda反编译apk,问题lambda
【发布时间】:2017-08-02 19:20:33
【问题描述】:

Im Decompiled apk,分别出现了.java文件,但是有的文件名中有这样的“AudioPlayerActivity$$Lambda$1.java”,这个“$$Lambda$1”是什么??

【问题讨论】:

  • 那些是编译器自动生成的类。

标签: apk decompiler apktool


【解决方案1】:

“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 的代码)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2023-03-31
    • 2014-07-19
    • 2014-02-07
    • 2014-03-28
    • 2012-06-14
    相关资源
    最近更新 更多