0
私はAndroidでいくつかのシステムAPIをフックしたいが、それらのいくつかは静的メソッドです。だから私は反射や他の方法でJava静的メソッドをフックすることができますか?どのようにJavaの静的メソッドにフックするには?
私はAndroidでいくつかのシステムAPIをフックしたいが、それらのいくつかは静的メソッドです。だから私は反射や他の方法でJava静的メソッドをフックすることができますか?どのようにJavaの静的メソッドにフックするには?
Javaはサルのパッチ適用をサポートしていません(たとえば、javascriptのように)。これを達成する唯一の方法は、自分のクラスローダーを操作し、クラスを返す前にクラスをインストルメントすることです。これは明らかにAndroidシステムAPIでは機能しません。
apiへの独自の呼び出しを代行して特定の場合に置き換える場合は、apiのファサード(静的ではないメソッド)を作成し、ファサードからアクセスします。その後、ファサード上のデコレータを使用して、その動作を即座に変更することができます。
フックで男性は何ですか?おそらくリスナーに登録していますか? –
私が意味するのは、ターゲットメソッドをラッパーメソッドで置き換えることです。パラメータを読み込んだり、返された結果を変更したりすることができます。 –