Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Problèmes au démarrage de l'application - tâche de fond
#1
Depuis le début de mes tests d'AeroNav, j'ai connu pas mal de problèmes au démarrage de l'application avec probablement une bonne centaine de démarrage infructueux.
Toute une série de snapshots m'ont permis de reparcourir l'historique et de lister une série de cas rencontrés de façon assez récurrente, en espérant que cela aidera les développeurs à trouver les causes.

Vous verrez à la fin de ce post qu'à part le reboot, j'ai au moins trouvé une piste qui s'est avérée efficace pour débloquer une situation où je ne parvenais plus à démarrer AéroNav:

  1. L'application démarre, mais reste bloquée à une phase, le plus souvent 56/60 "SynthèseVocaleInitialise", qui dure en général plus longtemps (<10s) alors que les autres phases vont tellement vite qu'on n'a pas le temps de voir le message. Parfois, c'est sur la phase 26.01 "CarteSectionCritiqueDébut".
    => si on va voir la liste des tâches Android et qu'on clique sur la fenêtre qui montre l'application, elle redémarre aussitôt, ce qui laisse penser qu'elle ne tournait plus du tout, mais ce n'est pas certain (voir plus loin)
      
  2. L'application se bloque systématiquement au démarrage (phase 56) si le GPS est actif, mais démarre normalement si on le désactive au démarrage et qu'on le réactive plus tard.
    => c'était systématique avec une version précédente, mais ce n'est plus le cas actuellement.
      
  3. L'application termine son démarrage, mais redémarre aussitôt, et ce processus peut être répétitif.
    => je m'en suis sorti en "tuant" l'application et en redémarrant.
      
  4. Après le démarrage, une fenêtre rectangulaire vide s'affiche en haut de l'écran, couvrant 40% de la hauteur en mode portrait. Elle ne contient rien d'autre qu'un point rouge et un point blanc en haut à gauche.
    => elle ne disparaît pas par un "tap", mais bien avec le bouton retour Android et cela n'affecte pas le fonctionnement ensuite.
      
  5. L'application démarre normalement, mais n'offre aucune réaction aux clics, donc pas d'interactivité.
    Pourtant, elle continue à s'exécuter puisque le message "La tablette n'est pas connectée" apparait après un certain temps, sans toutefois accepter le clic qui devrait le faire disparaître.
    => Un clic sur la fenêtre AeroNav dans la liste des tâches a alors pour effet de relancer une séquence de démarrage de l'application.
      
  6. Quand je ne m'en sortais pas, j'ai fait un reboot et cela a résolu le problème.
    => Mais comme souvent dans ce cas, il est réapparu plus tard...
      
  7. En creusant le cas où l'application démarre normalement, mais n'offre aucune réaction aux clics, donc pas d'interactivité, je me suis aperçu qu'elle réagissait pourtant à l'arrêt du GPS avec le message "GPS HS" et qu'elle recentrait la carte à la mise en route du GPS en faisant disparaître le message "GPS HS" disparaît. Cela signifie que l'application tourne, mais n'accepte pas d'input de l'utilisateur.
    => pourtant, si on va voir la liste des tâches Android et qu'on clique sur la fenêtre qui montre l'application, elle redémarre aussitôt, ce qui n'est pas normal pour une tâche qui tournait!
      
  8. J'ai eu l'attention attirée, en fin de démarrage, par une petite fenêtre affichant pendant quelques secondes "Navigation AéroConcept continue en tâche de fond ...", et je suis donc allé voir de ce côté-là.

    => surprise: en retirant à AeroNav l'autorisation "Démarrer en arrière-plan", tout est rentré dans l'ordre.
    => depuis, je n'ai plus rencontré de problème de démarrage
    => et l'application ne repart plus à zéro quand j'y reviens après avoir affiché une autre application.
J'avais cru bien faire en accordant à l'application toutes les autorisations listées pour celle-ci, mais manifestement, c'est ainsi que j'avais introduit un problème: il vaut mieux retirer l'autorisation "Démarrer en arrière-plan".

Bien entendu, si cela a résolu un cas bloquant, cela ne veut pas dire que tous les problèmes sont résolus, mais c'est déjà un bon pas qui pourrait sans doute aider d'autres utilisateurs, en particulier si leur matériel tourne aussi sous MIUI 10.
EBTX, MUAC, Belga Radar.
Xiaomi MiMax
Répondre
#2
Bonjour,


surprise: en retirant à AeroNav l'autorisation "Démarrer en arrière-plan", tout est rentré dans l'ordre.
depuis, je n'ai plus rencontré de problème de démarrage
et l'application ne repart plus à zéro quand j'y reviens après avoir affiché une autre application.

Bonne nouvelle.
Les seules autorisations demandées par AeroNav sont :
- accès au stockage (lecture/écriture dans les mémoires de stockage).
- utilisation du GPS (position fine).
- communication réseau (accès aux serveurs de données, cartes, météo, ...).
- accès au vibreur.
- paramètres du système (réglage de la luminosité).


"Démarrer en tâche fond" ne correspond pas à une autorisation demandée par AeroNav.
Elle doit correspondre à une fonction de MIUI 10.

Android étant maître à bord, surtout lorsqu'une application passe en tâche de fond, une application, autre que AeroNav, demandant des ressources peut conduire celui-ci (Android) à prendre des décisions avec les répercutions inattendues sur les tâches en fond.

La fenêtre rectangulaire avec un point rouge et un autre blanc ne correspond à priori à rien de connu dans AeroNav.

Merci pour ce retour d'expérience surement utile pour des utilisateurs de MIUI.
Répondre
#3
(2019-02-14, 14:20:38)AeroConcept a écrit : "Démarrer en tâche fond" ne correspond pas à une autorisation demandée par AeroNav.
Elle doit correspondre à une fonction de MIUI 10.

Android étant maître à bord, surtout lorsqu'une application passe en tâche de fond, une application, autre que AeroNav, demandant des ressources peut conduire celui-ci (Android) à prendre des décisions avec les répercutions inattendues sur les tâches en fond.

La fenêtre rectangulaire avec un point rouge et un autre blanc ne correspond à priori à rien de connu dans AeroNav.

Pour les autorisations, MIUI donne la possibilité de dire oui ou non la première fois qu'une appli les demande; l'utilisateur peut refuser et revenir sur sa décision plus tard. Normalement, MIUI n'affiche dans la liste que les autorisations demandées par l'application dans son manifeste; celle-ci est donc un mystère pour AeroNav, ou bien MIUI l'ajoute d'office si une autre demande est présente. 

Si j'avais validé cette autorisation dans la liste, c'est lors de mes tentatives pour résoudre les problèmes de démarrage déjà rapportés et que je voulais m'assurer que ce n'était pas à cause d'une autorisation refusée.
Apparemment, l'effet a été de passer directement l'application en arrière-plan à son démarrage tout en la laissant affichée au premier plan sans interactivité, avec en prime un redémarrage lors de sa réactivation.

Pour l'écran en question, je joins un snapshot d'écran.

Update: malgré la modification d'autorisation, j'ai encore eu des problèmes de démarrage après un import de 70 points où j'avais eu le message "l'application ne répond plus". Je me demande si la base de données ne souffre pas dans ces cas de figure si elle est interrompue pendant une mise à jour. J'ai refait "Optimisation des données" quand j'ai pu redémarrer, après pas mal d'essais infructueux + couper le GPS.
J'en viens à la conclusions que quand il n'est plus possible de démarrer l'application, il faut changer un élément et espérer que cela fonctionne. Dans un autre cas où l'appli ne bloquait à nouveau au démarrage, j'ai remis l'option "autoriser le démarrage en tâche de fond" et cela a débloqué le problème. 
D'où peut venir ce manque de reproductibilité de la phase de démarrage de l'application?
On dirait qu'il y a une compétition de vitesse entre diverses tâches et tout dépend de celle qui gagne.
Je remarque que des avertissement vocaux de zones arrivent avant même que le démarrage soit terminé.
Pourtant, il me semble avoir lu que le GPS ne serait plus pris en compte avant la fin du démarrage.
Huh 

Dernière trouvaille: j'ai maintenant des boutons vides quand je touche l'écran; les autres menus sont OK.
C'est sporadique et cela se résout en redémarrant l'application.
Voir dernière pièce attachée.


Pièces jointes Miniature(s)
       
EBTX, MUAC, Belga Radar.
Xiaomi MiMax
Répondre
#4
Bonjour a tous,
Bonjour Roger,
j'ai le même problème que toi sur Mipad4

j'ai essayé quelques réglages comme toi mais tout cela est au delà de mes compétences !
Répondre
#5
Tout d'abord, je précise que j'ai passé des dizaines d'heures à tester l'application, que j'apprécie beaucoup, sinon, j'aurais déjà "jeté l'éponge" depuis longtemps, précisément à cause du démarrage aléatoire de l'application.
C'est vraiment le gros "point noir": souvent, tout se passe bien, mais s'il y a un souci et qu'il faut redémarrer, il faut prier pour que tout se passe bien; si ce n'est pas le cas, on peut touiller longtemps avant de réussir à démarrer.

Ce que je vais dire est pure supputation puisque je n'ai aucune idée de l'architecture interne de l'application, mais j'ai quand même vu pas mal de chose en développement et debugging d'applications "temps réel" au travail.

Quand Aeronav démarre, j'ai l'impression que toute une série de tâches sont lancées en parallèle et que le succès dépend de l'ordre dans lequel ces tâches terminent leur préparation.  

Normalement, cela se gère par des rendez-vous ou des sémaphores, mais si le développeur a préjugé d'une séquence sur base de tests, il peut y avoir des surprises si des tâches sont plus rapides ou plus lentes que prévu.

Ainsi, sur mon MiMax, j'ai un HexaCore avec quatre processeurs A53 à; 1.4GHz et deux processeurs plus performants (A72). Si une tâches supposée lente tourne sur un A72 et qu'une tâche supposée plus rapide tourne sur un A53, le rendez-vous ne se fera pas et cela pourrait expliquer que l'appli reste bloquée en attente (deadlock) alors que certains éléments sont déjà bien opérationnels.

Souvent, dans cette situation, j'entend des messages d'avertissement de zone ou d'autres signes indiquant que le suivi GPS est déjà actif (ou que le GPS est détecté HS si c'est le cas) alors qu'on est toujours dans la séquence de chargement. Il arrive même que l'affichage soit déjà présent et opérationnel, mais que l'interactivité (réaction aux taps sur l'écran) n'est pas là et n'arrive jamais. Dans ce cas, afficher la liste des tâches/fenêtres actives (Android) et faire un tap sur Aeronav ne retourne pas à l'application, mais la relance, souvent sans succès.

Après des centaines de redémarrages parfois plus de 10 fois consécutives sans succès, mais avec des résultats qui peuvent différer à chaque fois, j'ai tenté autre chose: quand Aeronav rate son démarrage et que je ne parviens plus à le redémarrer jusqu'au bout, je change simplement quelque chose à ma configuration Android: si le GPS est actif, je le désactive, ou inversement, ou bien je démarre une autre application, ou bien j'active ou désactive le fameux paramètre "autoriser en tâche de fond". Là, miracle le démarrage se passe bien. C'est ce qui m'a conduit à penser à cette histoire d'hexacore avec deux types de processeurs...

Pour résumer, je compare Aeronav à un orchestre composé d'excellents musiciens, mais le chef d'orchestre va boire un verre avec le premier violon pendant que les autres accordent leurs instruments chacun pour soi et quand il revient, c'est la cacophonie.

Tout ceci par pour critiquer, mais en espérant que ces pures supputations pourront donner des pistes ou des idées aux développeurs pour finalement résoudre ce problème qui a certainement déjà eu un impact négatif sur la cote d'Aéronav dans le PlayStore. La cote serait certainement plus haute avec un démarrage fiable.
EBTX, MUAC, Belga Radar.
Xiaomi MiMax
Répondre
#6
Bonjour,

Merci pour votre intervention qui est très juste et pointue.

Le chef d'orchestre n'est pas parti boire un coup. Il participe à la mise en place de chacun.
Mais un nouvel instrument a été ajouté à l'orchestre en début d'année. Il convient qu'il trouve sa place.

Le programme était jusqu'à cette date au format 32 bits et l'ensemble tournait (jouait) sans trop de fausses notes.
Google a imposé que les développeurs proposent des programmes 32 et 64 bits.
Nous avons donc ajouté le format 64 bits au programme.

La réaction de certains appareils récents 64 bits semble différente des 32 bits.

Le programme utilise effectivement les notions de sémaphores, signaux entre taches, ....

Nous allons donc réviser cette phase de démarrage du programme.
Répondre
#7
Merci pour ce retour.

Vendredi dernier, j'ai fait une première utilisation d'AeroNav en vol (FK9) pour une toute petite navigation, histoire de confirmer que j'étais assez à l'aise avec l'appli pour ne pas me déconcentrer du pilotage et cela s'est très bien passé.
J'ai aussi testé à cette occasion l'enregistrement dans le log book et le rejeu du vol: tout OK.
Bonne idée d'avoir mis l'heure en bas à droite lors du rejeu.

J'ai aussi fait l'export du vol, que j'ai retrouvé dans trois formats dans le répertoire Exportation.
Un petit truc qui serait pratique: nommer les fichiers exportés avec les données date/heure du début du vol (affichés dans le carnet de vol) plutôt que la date/heure d'exportation.
EBTX, MUAC, Belga Radar.
Xiaomi MiMax
Répondre
#8
Également testé en vol samedi, et très satisfait pour l'instant..export des gpx et kml sur google earth pour rejouer le vol c'est parfait
Répondre
#9
La version de ce jour me paraît beaucoup plus robuste puisque mon taux de réussite au démarrage est passé de 10% à 100% ce matin, à part un plantage pas forcément lié à la mise en place des tâches mais peut-être au pivotement de l'écran.

Je remarque aussi que maintenant, tous les "musiciens" (message vocal,..) démarrent en même temps quand tout est prêt et pas dans le désordre et cela contribue certainement à la robustesse. 
Bravo à l'équipe: C'est un très gros progrès! 

J'ai juste observé une instabilité (redémarrage automatique) occasionnelle quand je réactive l'application après l'avoir laissée quelque temps en tâche de fond. J'ai pourtant désactivé l'économiseur de batterie pour Aeronav, mais cela pourrait venir de la gestion de mémoire Android.

Bravo aussi pour l'ergonomie de la nouvelle implémentation du changement d'unités et de l'accès aux paramètres!
Cool

Quelques petits trucs remarqués et qui pourraient faire l'objet d'un post séparé ou alors, je les reporte en réponse à l'annonce de la mise à jour quand elle sera affichée sur ce forum :
- Le message d'erreur de dimensionnement d'un tableau qui est encore apparu (déjà signalé dans un post récent).
 "La dimension 1 du tableau possède 38 éléments et vous tentez d'accéder à l'élément 39".
 Le message réapparaît après une fraction de seconde quand on clique sur OK.
 J'ai pu tester que pendant cette fraction de seconde, les menus répondent normalement.
- Des tuiles qui ne se chargeaient pas automatiquement malgré le flag "Automatique" coché.
 Observé avec deux cartes (satellite et Voyage1).
- Un message "Attention: il reste 9 cartes pas chargées" à la sortie du programme, malgré une attente et un wifi connecté.
 Résolu au démarrage suivant. Peut-être parce que j'ai changé de pièce dans la maison et donc de wifi pendant que AeroNav tournait.
- Un message "fonction temporaire permettant de solutionner un problème de carte qui se fige sur certains appareils".
 Comme la carte fonctionnait normalement, j'ai juste cliqué sur annuler.
- Un message "Route, modification en cours" qui apparaît en haut de l'écran toutes les 10s.
 Constaté alors que je testais en déplacement à pied à 5 km/h avec un simple "go to" vers ma maison.
 Peut-être lié à une réactualisation de l'heure prévue d'arrivée?
EBTX, MUAC, Belga Radar.
Xiaomi MiMax
Répondre


Atteindre :