2016-05-11 12 views
0

Gibt es eine Möglichkeit, die Lifecycle-Aktivität in ABD Logcat zu überwachen, ohne die Log("some activity"); auf den Code setzen?Logcat Aktivitätslebenszyklus ohne setzen Logon Code

PS: Ich weiß, dass die Existenz von https://github.com/stephanenicolas/loglifecycle

Ich möchte, dass meine App-Lebenszyklus überwachen können, ohne alle Protokolle zu beschreiben, oder sogar den Lebenszyklus von jeder App in einem verwurzelten Gerät installiert zu überwachen.

+0

Seien Sie präziser über das, was Sie wollen „Monitor“. Ist dies nur für die Entwicklung gedacht, sodass Sie sehen können, wann die Lebenszyklus-Ereignisse aufgerufen werden? Oder brauchst du etwas in einer Live-Produktions-App? – Karakuri

+0

Ich brauche den Logcat auf einer Live-App. Mein Ziel ist es, das gesamte Logcat auf einem funktionierenden Gerät unabhängig von der App zu erhalten, um die Leistung in Benchmarks der Übertaktung zu sehen. –

Antwort

2

Ja, gibt es.

erweitern Sie die Anwendungsklasse. Dort überschreiben onCreate und Sie können dann rufen

registerActivityLifecycleCallbacks(new MyActivityLifecycleCallbacks()); 

Wo „MyActivityLifecycleCallbacks()“ eine Klasse, die die ActivityLifecycleCallbacks-Schnittstelle implementiert. Mit diesen Schnittstellen können Sie Aktivitätenlebenszyklusaufrufe für solche Dinge abfangen. In der Tat habe ich genau das, was Sie in meiner app, indem er erklärt die impl der Schnittstelle als statische innere Klasse meiner Anwendung Erweiterung sind zu beschreiben:

private static final class MyActivityLifecycleCallbacks implements ActivityLifecycleCallbacks { 

    public void onActivityCreated(Activity activity, Bundle bundle) { 
     Log.d("","onActivityCreated:" + activity.getLocalClassName()); 
    } 

    public void onActivityDestroyed(Activity activity) { 
     Log.d("","onActivityDestroyed:" + activity.getLocalClassName()); 
    } 

    public void onActivityPaused(Activity activity) { 
     Log.d("","onActivityPaused:" + activity.getLocalClassName()); 
    } 

    public void onActivityResumed(Activity activity) { 
     Log.d("","onActivityResumed:" + activity.getLocalClassName()); 
    } 

    public void onActivitySaveInstanceState(Activity activity, 
              Bundle outState) { 
     Log.d("","onActivitySaveInstanceState:" + activity.getLocalClassName()); 
    } 

    public void onActivityStarted(Activity activity) { 
     Log.d("","onActivityStarted:" + activity.getLocalClassName()); 
    } 

    public void onActivityStopped(Activity activity) { 
     Log.d("","onActivityStopped:" + activity.getLocalClassName()); 
    } 
}