Ich versuche Protokollieren Sie die Start-Latenz meiner App. So wie ich es tue, wird die Startzeit der App auf Application.onCreate
festgelegt und eine öffentliche Methode bereitgestellt, die die Uhrzeit zurückgibt.Android - Probleme mit der Protokollierung der Start-Latenz
MyApplication extends Application {
Date startUpTime;
//Declare variables
@Override
public void onCreate() {
super.onCreate();
setStartupTime();
//other initializations
}
private void setStartUpTime() {
startUpTime = new Date();
}
public Date getStartUpTime() {
return startUpTime;
}
}
MyActivity extends Activity {
.
.
.
@Override
public void onStart(){
logStartUpLatency();
//other onStart stuff
}
private void logStartUpLatency() {
Date currentTime = new Date();
Date startTime = (MyApplication)getApplicationContext().getStartUpTime();
long latency = currentTime.getTime() - startTIme.getTime();
Log.d("Start up Latency is ", Long.toString(latency)):
}
Dies ist, wie ich meinen Start bin prüfung Latenz:
- adb installieren myapk
- die App ausführen, um die erste Start-up-Latenz zu erhalten. Ich kann sehen, dass die geloggte Latenz für den ersten Start korrekt ist.
- Führen Sie die App erneut aus, um die Startlatenz zu testen. Die protokollierte Latenz ist korrekt für den Start (oder eine beliebige Anzahl nachfolgender Starts)
- Jetzt habe ich den Versionscode und den Namen meiner App um 1 erhöht. Um ein Upgrade zu simulieren, habe ich den Befehl adb install -r myapk verwendet.
- Jetzt starte ich die App erneut, um die erste Startlatenz nach dem Upgrade zu testen, obwohl es 3 Sekunden dauert, ist die Latenz nicht in den Charts.
Weiß jemand, warum das passieren könnte?
aktualisieren
Also, wenn ich die apk mit "adb installieren -r myapk" installieren, wird die App geht nicht der Myapplication.onCreate()
durch.