1

私はアンドロイドプロジェクトを開始しようとしており、現在インターネットからいくつかのサンプルコードを見ています。ただし、どのクラスがどの関数を処理しているかを判断するのが難しい場合があります。

だから私は移入を開始します:

Log.d(LogUtils.DEBUG_TAG + getClass().getName(), new Exception().getStackTrace()[0].getMethodName() + " starts.");

あらゆる機能に。

プロジェクト内のすべての関数にこのステートメントを自動入力する簡単な方法があるのだろうか?

ありがとう、ジョー

4

1 に答える 1

2

このコードをログに使用しています。呼び出されたクラスとメソッド名に関する情報が自動的に提供されます。

public static void log(final String msg)
{

    final Throwable t = new Throwable();
    final StackTraceElement[] elements = t.getStackTrace();

    final String callerClassName = elements[1].getFileName();
    final String callerMethodName = elements[1].getMethodName();

   String TAG = "[" + callerClassName + "]";

   Log.d(TAG, "[" + callerMethodName + "] " + msg);

}

次に例を示します。

log("Hello World");

あなたにあげる:

[MainActivity.java] [onCreate] Hello World

これで、メソッドがonCreateメソッドを使用してMainActivity.javaファイルから呼び出されたことがわかります。

このステートメントをプロジェクト内のすべての関数に自動入力する簡単な方法があるかどうか疑問に思いますか?

手動で追加する必要はありません。ただし、上記のメソッドでブール変数を使用して、ログのオン/オフを切り替えることができます。

完全なソースコードはここにあります。

于 2012-08-20T08:07:01.843 に答える