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. Android/Java:リフレクションを使用したメソッドの呼び出し?
- 2. NSLocaleメソッドswizzlingを使用してテスト目的でcurrentLocale出力を変更する
- 3. JavaテストJUnit(void)を使用したメソッド
- 4. Javaを使用したJavaアプレットの非静的メソッドへのアクセス
- 5. SIMBL swizzling in finder
- 6. isa-swizzling breaks KVO
- 7. Android - 他のJavaプロジェクトのメソッドを使用する方法
- 8. App Store - Method Swizzling Legality
- 9. Java(Android)の静的クラス - 使用または使用しない
- 10. Android Javaメソッド呼び出し
- 11. ループ内でのメソッドの使用、JavaおよびAndroid
- 12. パラメータを使用したプライベート静的メソッドのJavaリフレクション
- 13. Java EEの非同期メソッドを使用したトランザクション管理
- 14. java setカレンダーを使用した静的メソッドの日付フィールド
- 15. プレーンなStringメソッドを使用したJava Parser HTML?
- 16. Javaを使用したAndroidでのrawパーティションへのアクセス
- 17. JOGLとAndroid OpenGLを使用したポータブルJavaアプリケーションの作成
- 18. EditTextを使用したJava/Androidダイアログ - 文字列のブールチェック
- 19. Javaを使用したphonegap作成テーブルへのアクセス - android
- 20. Java Reflectionを使用したテストケースでの保護されたメソッドへのアクセス
- 21. Java - guiceを使ったメソッドのインターセプト?
- 22. 宿題のためにJavaの再帰的メソッドを使用
- 23. C++/CLIを使用したVisual C/C++からのJavaメソッドの呼び出し
- 24. Javaでのメソッドのオーバーロード - リストタイプの使用
- 25. 別のメソッドでfindViewById変数を使用する方法。 JavaのAndroid
- 26. オプションのパラメータを使用したGroovyメソッド
- 27. RSpecを使用したApplicationControllerメソッドのスタブ
- 28. JDTを使用したメソッドの削除
- 29. Javascriptを使用したC#のWebservicesメソッド
- 30. オブジェクトを使用したメソッドのオーバーライド
これはandroid sdkのapiメソッドにも当てはまりますか? –