我被卡在了别人开发的一个项目上。这是一个非常大的应用程序。因此,为了理解代码,我想知道流程,基本上是当前在我的手机上运行的活动的名称(代码中的Java文件)。我可以在所有活动中设置断点,但是否有其他方法?
我被卡在了别人开发的一个项目上。这是一个非常大的应用程序。因此,为了理解代码,我想知道流程,基本上是当前在我的手机上运行的活动的名称(代码中的Java文件)。我可以在所有活动中设置断点,但是否有其他方法?
你可以使用adb来实现。
在终端中输入命令adb shell dumpsys activity top
。
使用ActivityLifecycleCallbacks,您无需为所有活动添加处理。 只需进行一次注册即可,它适用于所有活动,就这样!
public class MyApplication extends Application implements
ActivityLifecycleCallbacks{
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onActivityStopped(Activity activity) {
Log.i("Tracking Activity Stopped", activity.getLocalClassName());
}
@Override
public void onActivityStarted(Activity activity) {
Log.i("Tracking Activity Started", activity.getLocalClassName());
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
Log.i("Tracking Activity SaveInstanceState", activity.getLocalClassName());
}
@Override
public void onActivityResumed(Activity activity) {
Log.i("Tracking Activity Resumed", activity.getLocalClassName());
}
@Override
public void onActivityPaused(Activity activity) {
Log.i("Tracking Activity Paused", activity.getLocalClassName());
}
@Override
public void onActivityDestroyed(Activity activity) {
Log.i("Tracking Activity Destroyed", activity.getLocalClassName());
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
Log.i("Tracking Activity Created", activity.getLocalClassName());
}
}
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new MyActivityLifecycleCallbacks());
}
private static final class MyActivityLifecycleCallbacks implements ActivityLifecycleCallbacks {
public void onActivityCreated(Activity activity, Bundle bundle) {
Log.v("Application","Created");
}
public void onActivityDestroyed(Activity activity) {
Log.v("Application","Destroyed");
}
public void onActivityPaused(Activity activity) {
Log.v("Application","Paused");
}
public void onActivityResumed(Activity activity) {
Log.v("Application","Resumed");
}
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
Log.v("Application","onActivitySaveInstanceState");
}
public void onActivityStarted(Activity activity) {
Log.v("Application","Started");
}
public void onActivityStopped(Activity activity) {
Log.v("Application","Stopped");
}
}
现在你可以在任何需要重写的方法中使用 activity.getLocalClassName()
。
这就是你所需要的一切。祝您调试愉快 :)
简单 -
在每个活动中重写onStart()方法并像这样打印日志 -
@Override
protected void onStart() {
super.onStart();
Log.d("TAG -> ", "YOUR_ACTIVITY_NAME");
}
当您的设备启动活动时,它将在logcat中打印日志。希望这能帮到您!
adb shell dumpsys activity top
。 - pskink