2017-09-29 7 views
0

Android에서 일부 시스템 API를 연결하고 싶지만 그 중 일부는 정적 메서드입니다. 그래서 반사 또는 도구없이 xposed 같은 다른 방법으로 자바 정적 메서드를 후크 수 있습니까?어떻게 자바 정적 메서드에 후크?

+0

훅으로 무엇을하나요? 아마 청취자에게 등록 할까? –

+0

무슨 뜻입니까 대상 메서드를 래퍼 메서드로 바꿀 수 있으므로 매개 변수를 읽거나 반환 결과를 변경할 수 있습니다. –

답변

1

Java는 원숭이 패치를 지원하지 않습니다 (예 : 자바 스크립트에서 할 수있는 것처럼). 이것을 달성하는 유일한 방법은 자신의 클래스 로더를 사용하고 반환하기 전에 클래스를 계측하는 것입니다. 이는 안드로이드 시스템 API에서는 분명히 작동하지 않습니다.

api에 대한 호출을 가로 채서 특정 경우에 대체하려는 경우 (정적이 아닌 메소드 사용) api에 대한 facade를 작성하고 facade를 통해 액세스하십시오. 그런 다음 그 정면의 데코레이터를 사용하여 동작을 즉시 수정할 수 있습니다.