2
Im Decompiled apk가 각각 .java 파일로 표시되었지만 일부 파일의 이름이 "AudioPlayerActivity $$ Lambda $ 1.java"인 경우 "$$ Lambda $ 1"이 무엇입니까 ??아파치 디 컴파일, 문제가 람다
Im Decompiled apk가 각각 .java 파일로 표시되었지만 일부 파일의 이름이 "AudioPlayerActivity $$ Lambda $ 1.java"인 경우 "$$ Lambda $ 1"이 무엇입니까 ??아파치 디 컴파일, 문제가 람다
"AudioPlayerActivity $$ Lambda $ 1.java"이들은 기본적으로 "AudioPlayerActivity.java"안에 작성된 코드의 익명 블록이며, 현재 "AudioPlayerActivity.java"는 임의의 수의 익명 코드 블록을 가질 수 있으므로 디 컴파일 중 모든 블록은 순차적 인 순서로 끝에서 번호가있는 별도의 클래스로 변환됩니다. 다음의 예제를 보자, 나는 블록
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
과 같은 버튼에에 ClickListener 또 다른 익명의 블록을 포함하는 클래스 HelloWorld.java 있습니다.
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
는 디 컴파일에 난과 (OnClickListener를위한 코드)하여 HelloWorld $의 2.smali (runOnUithread에 대한 코드) 3 개 클래스 helloworld.smali, helloworld를의 $의 1.smali을 얻을 것입니다.
이들은 컴파일러가 자동으로 생성 한 클래스입니다. – Antimony