Android – Problèmes liés à la journalisation de la latence de démarrage

J'essaie d' enregistrer la latence de démarrage de mon application . Ils le font, c'est définir l'heure de début de l'application sur Application.onCreate et fournir une méthode publique qui retourne l'heure.

 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)): } 

C'est ainsi que je teste la latence de démarrage:

  • Menu d'options de bouton d'action flottante Android
  • AppCompat Snackbar n'est pas centrée sur la tablette
  • Pourquoi l'audio téléchargé est-il corrompu lorsque le téléchargement est clairement réussi?
  • Qu'est-ce que setContentView (R.layout.main)?
  • AAR Android intègre la dépendance
  • Erreur FileProvider
    • Adb install myapk
    • Exécutez l'application pour obtenir la première latence de démarrage. Je peux voir que la latence enregistrée est correcte pour le premier démarrage
    • Exécutez l'application à nouveau pour tester la latence de démarrage. La latence enregistrée est correcte pour le démarrage (ou tout nombre de démarrages ultérieurs)
    • Maintenant, j'ajoute le code et le nom de la version de mon application par 1. Pour simuler une mise à jour, j'ai utilisé la commande adb install -r myapk.
    • Maintenant, je lance l'application à nouveau pour tester la première latence de démarrage après la mise à niveau, même si elle prend 3 secondes, la latence enregistrée est désactivée.

    Quelqu'un sait-il pourquoi cela pourrait se produire?

    Mettre à jour

    Donc, si j'installe l'apk en utilisant "adb install -r myapk", l'application ne parcourt pas Myapplication.onCreate() .

    3 Solutions collect form web for “Android – Problèmes liés à la journalisation de la latence de démarrage”

    Je suggère l'utilisation de la classe TimingLogger . Selon la documentation, vous pouvez facilement suivre le temps écoulé et même ajouter des fentes dans le processus.

    Ce

     TimingLogger timings = new TimingLogger(TAG, "methodA"); // ... do some work A ... timings.addSplit("work A"); // ... do some work B ... timings.addSplit("work B"); // ... do some work C ... timings.addSplit("work C"); timings.dumpToLog(); 

    Produit

     D/TAG (3459): methodA: begin D/TAG (3459): methodA: 9 ms, work A D/TAG (3459): methodA: 1 ms, work B D/TAG (3459): methodA: 6 ms, work C D/TAG (3459): methodA: end, 16 ms 

    La latence que vous calculez est en millisecondes. Date # getTime () renvoie le nombre de millisecondes depuis le 1er janvier 1970, minuit GMT.

    Le temps observé de 3 secondes est dû aux frais généraux pour la désinstallation de l'ancien et à l'installation de la nouvelle génération d'application.

    Donc, si j'installe l'apk en utilisant "adb install -r myapk", l'application ne parcourt pas Myapplication.onCreate (). Donc, cela répond à cette question. Je vais poser une question distincte sur pourquoi installer une application en utilisant "adb install -r myapk" puis démarrer myapk ne passe pas par MyApplication.onCreate ()

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.