Android:ActivityStackTrace
Android Activity의 Stack정보를 출력하는 방법에 대한 설명.
in ADB
커멘드 창에서 아래와 같이 사용하면 된다.
in Java
TOP Activity를 확인하는 유틸리티 클래스는 아래와 같다.
package com.zekitalk.cinema.util;
import java.util.List;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
import android.content.Context;
import android.util.Log;
/**
* 현재 Activity의 STACK정보를 조사할 수 있는 클래스.<br>
* 아래와 같이 권한을 추가해야한다.<br>
* <code>
* <uses-permission android:name="android.permission.GET_TASKS" />
* </code>
*
* @author cwlee
* @since 2013-09-26
*/
public class ActivityStackTrace {
public static final String kTagName = ActivityStackTrace.class.toString();
public static final int kDefaultGetRunningTaskNumber = 100;
/** 생성자를 지원하지 않는다. */
protected ActivityStackTrace() {
throw new UnsupportedOperationException();
}
public static void print(Context c) {
print(c, kDefaultGetRunningTaskNumber);
}
public static void print(Context c, int tasksize) {
print(c, c.getPackageName(), tasksize);
}
public static void print(Context c, String packagename, int tasksize) {
ActivityManager am = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
if (am != null) {
List<RunningTaskInfo> task_list = am.getRunningTasks(tasksize);
if (task_list != null && task_list.size() > 0) {
for (RunningTaskInfo cursor : task_list) {
if (packagename.compareTo(cursor.baseActivity.getPackageName()) == 0) {
Log.i(kTagName, cursor.topActivity.toString());
}
}
}
}
}
}