Javaを使用してアンドロイドでメソッドswizzlingを行うことは可能ですか?私はシステムメソッドを傍受し、そのパラメータを記録して、それを正常に処理したいと思っています。Javaを使用したAndroidのメソッドSwizzling
6
A
答えて
3
どのような環境でもJavaを使用することはできません。
多分、AOPを使用して同様の結果を得ることができます。
しかし、これで何ができるかはAndroidでは限られています。 Aspect-oriented programming in androidを参照してください。実際には、ターゲットコード(システムメソッド)をコンパイルしないので、コンパイル時の織り方(Androidで使用できるすべてのものと思われる)は、このケースでは役に立たないでしょう。この答えと同じように私は思います。
もう1つの考え方...私はあなたが一貫してこのロギングをしたいと思います。しかし、問題をデバッグするためにこれが必要な場合は、conditional breakpoint in Eclipseを使用して問題をデバッグすることができます。
条件式は、任意のJavaコードを含むことができ、 にブレークポイント条件は、トレースのような機能を実装できるように、複数の文が含まれていてもよいです。たとえば、条件文で を実行してから、( "System.out.println(...); falseを返す")を中止しないようにハードコードされた値を返すことができます。
Android SDKのメソッドで動作するかどうかは特に分かりません。しかし、Java SDKのメソッドで動作します。例えば、ここで簡単なコードは次のとおりです。
System.err.println("foo");
私はこのように、PrintStream.printで条件付きブレークポイントを作った:
:プログラムでのデバッグが、このときSystem.err.println("hello: " + arg0);
return false;
とコンソール出力
hello: foo
foo
JDKはデバッグシンボルでコンパイルされていないため、メソッドパラメータを名前で参照することはできませんが、arg0..argn
を使用することに注意してください。
関連する問題
- 1. Swiftのメソッドswizzling 3.1
- 2. Xcode8 + ipad。メソッドSwizzling UITableView backgroundColorクラッシュ
- 3. Android/Java:リフレクションを使用したメソッドの呼び出し?
- 4. NSLocaleメソッドswizzlingを使用してテスト目的でcurrentLocale出力を変更する
- 5. AndroidのclearApplicationUserData()メソッドを使用したキャッシュクリア
- 6. JavaテストJUnit(void)を使用したメソッド
- 7. Javaを使用したJavaアプレットの非静的メソッドへのアクセス
- 8. ArrayListを使用したandroid java insertsort
- 9. SIMBL swizzling in finder
- 10. isa-swizzling breaks KVO
- 11. Android Pre Lデバイスのジャックコンパイラを使用したJava 8の使用
- 12. 使用するJavaメソッドをオーバーライドするのScalaを使用したので、私は、Javaメソッド持って
- 13. Android - 他のJavaプロジェクトのメソッドを使用する方法
- 14. Javaを使用してAndroid用のクロスワードアルゴリズム
- 15. Javaでのマルチスレッドのrunメソッドを使用したメソッドの呼び出し
- 16. App Store - Method Swizzling Legality
- 17. Android Javaメソッド呼び出し
- 18. Java(Android)の静的クラス - 使用または使用しない
- 19. ループ内でのメソッドの使用、JavaおよびAndroid
- 20. Java + Selenium:@Factoryを使用したインスタンス別のメソッドのグループ化
- 21. Java同期メソッドの使用
- 22. java setカレンダーを使用した静的メソッドの日付フィールド
- 23. Java - 複数のonClickListenerを使用した効率的なメソッド
- 24. Java EEの非同期メソッドを使用したトランザクション管理
- 25. 独立したJavaファイルのメソッドを使用する
- 26. パラメータを使用したプライベート静的メソッドのJavaリフレクション
- 27. 特定のメソッドを使用したJava再帰バックトラック(数独)
- 28. Javaの再帰的メソッドを使用した暗号化ハッシュチェーン
- 29. toBinaryString()メソッドを使用したバイナリへのDecimal Java
- 30. Xamarin.Forms - async OnCreateメソッドを使用したAndroidのアクティビティ
これはandroid sdkのapiメソッドにも当てはまりますか? –