3 votes

Besoin d'une clarification sur les paramètres du développeur

Nous avons une application sur mesure qui utilise un WebView pour jouer des animations CSS stockées localement.

J'aimerais obtenir des éclaircissements complets pour savoir si les options suivantes du développeur peuvent avoir un impact sur les animations jouées dans le WebView :

  • Échelles d'animation et de transition
  • Rendu GPU forcé
  • Désactiver les superpositions matérielles
  • Ne pas conserver les activités
  • Limiter les processus d'arrière-plan

EDIT - Puis-je également avoir une explication sur ce que "Disable Hardware overlays" fait exactement ? Est-ce que le fait de l'activer pourrait être utile dans n'importe quel scénario ?

3voto

lord-ralf-adolf Points 1063

Tout d'abord, ces options sont destinées à des raisons de développement, principalement pour que les développeurs puissent obtenir différents résultats de débogage pour chaque situation à laquelle leur application peut être confrontée.

Pour la première partie de votre question :

Ces options affecteront-elles la lecture des animations dans un webView ?

Je vais lancer les options une par une :

  1. Échelles d'animation et de transition :

Cette option est destinée à l'animation system-core, celle qui est incluse dans l'application framwork-res.apk et autre cadre système ou dans toute application Android sous res/anim android animation using XML

Ces animations sont utilisées par le système pour passer d'une vue à l'autre ou par des applications tierces pour passer d'une vue à l'autre des activités ou pour jouer des animations. Animation and transition scales seules ces animations seront affectées, puisque votre application utilise la vue Web pour rendre et jouer les animations, elle ne sera pas affectée par ces séances.

  1. Rendu GPU forcé :

Comme vous le savez peut-être déjà, il existe deux types de rendu dans les ordinateurs et les téléphones. software rendering et Hardware rendering La première est quand l'écran est affiché par le CPU lui-même, la seconde est quand le GPU est celui qui rend l'écran, dans Android le système décide quand et où l'utiliser. softrendering o hardrendering si vous activez cette option, le système choisira toujours le GPU pour rendre l'écran, ce qui peut vous donner un petit gain de performance car le CPU restera libre pour d'autres opérations, mais la consommation d'énergie peut augmenter (corrigez-moi si je me trompe) le GPU utilise plus d'énergie que le CPU.

  1. Ne pas conserver les activités :

Cette option tue toute activité dès qu'elle passe à l'arrière-plan, ce qui signifie que dès que vous quittez une activité, elle est détruite et que lorsque vous revenez à cette activité, elle en démarre une nouvelle au lieu de reprendre la session de prévisualisation, ce qui peut ne pas affecter votre application lorsque vous êtes dessus, mais dès que vous la quittez, elle est détruite. Cette option peut vous donner un peu plus de performances car toutes les autres applications du téléphone ne fonctionneront pas en arrière-plan, ce qui peut libérer des ressources (notez que les services d'arrière-plan ne seront pas tués par cette option, seules les activités qui ne sont plus affichées seront tuées).

  1. Limiter les processus d'arrière-plan

Pour celle-ci, je citerai @Dan Hulme en cette réponse

Le paramétrage de cette option force Android à arrêter chaque processus dès qu'il est est vide (c'est-à-dire lorsqu'aucun service n'est lancé et qu'aucune activité n'est à l'écran pour cette application).

Pour être clair : cette option n'empêchera pas les applications qui s'exécuteraient normalement en arrière-plan de le faire. l'arrière-plan de le faire. Votre client de messagerie continuera à s'exécuter périodiquement pour vérifier le courrier, s'il est configuré pour le faire. Les applications qui utilisent Google Cloud Messaging pour recevoir des messages push provenant de serveurs (tels que Gmail et Facebook) seront toujours en mesure de le faire. L'option option serait mieux nommée "Limite des processus d'arrière-plan mis en cache", puisqu'elle car elle limite les applications qui, autrement, apparaîtraient avec cette étiquette dans le gestionnaire d'applications.

La prochaine fois que chaque application doit démarrer, Android doit charger l'application à partir du stockage, depuis le début. Cela consomme plus d'énergie et prend plus de temps que l'exécuter à nouveau lorsque le processus était en mémoire. Cela ne signifie pas seulement Cela ne signifie pas seulement que vous lancez délibérément une activité à partir de l'application. Cela signifie également que le client de messagerie doit être chargé après chaque fois qu'il veut vérifier le courrier électronique. Au fil du temps, cela peut entraîner une perte de batterie considérable.

Comme il s'agit d'une option de développement, elle peut également déclencher des bogues rares dans certaines applications. certaines applications, et les développeurs de ces applications peuvent ne pas être enclins à les corriger. Par exemple, sur les appareils Nexus fonctionnant sous la version 4.2.2, lorsque cette option est activée, l'application Calendrier intégrée continue de se redémarrer avec ce message. est activée, l'application Calendrier intégrée continue de se redémarrer avec cette option. l'option est activée, car l'arrêt du processus d'arrière-plan en cache entraîne la suppression du fournisseur de contenu du calendrier. le fournisseur de contenu du calendrier, ce qui provoque une boucle de redémarrage des redémarrant les uns les autres pour vérifier les mises à jour du calendrier. Si cela Si cela se produit, la boucle épuisera très rapidement votre batterie.

Comme vous pouvez le lire, cette option n'affectera pas votre demande. Tous les effets secondaires de cette option sont indiqués dans la citation précédente.

Pour la deuxième partie de votre question :

Que fait exactement "Désactiver les superpositions matérielles" ?

Pour répondre à cette question, je vais définir ce qu'est Hardware Overlays :

En informatique, l'incrustation matérielle, un type d'incrustation vidéo, fournit une méthode de rendu d'une image sur un écran d'affichage avec une mémoire tampon dédiée à l'intérieur du matériel vidéo de l'ordinateur. Cette technique vise à améliorer l'affichage d'une image vidéo rapide, telle qu'un jeu vidéo, un DVD ou le signal d'une carte TV. La plupart des cartes vidéo fabriquées depuis 1998 environ et la plupart des lecteurs multimédias prennent en charge la superposition matérielle. La superposition est un tampon dédié dans lequel une application peut effectuer un rendu (généralement une vidéo), sans avoir à supporter le coût de performance important lié à la vérification de l'écrêtage et du chevauchement du rendu par d'autres applications. Le framebuffer dispose d'un support matériel pour importer et rendre le contenu du tampon sans passer par le GPU ou le CPU.

Pour revenir à votre question, si vous désactivez cette fonction, le système Android n'autorisera pas les superpositions matérielles, ce qui peut réduire les performances. En d'autres termes, sans superposition matérielle, toutes les applications qui affichent des choses à l'écran partageront la mémoire vidéo et devront constamment vérifier les collisions et les coupures pour rendre une image correcte, ce qui peut coûter beaucoup de puissance de traitement. Avec une superposition matérielle, chaque application obtient sa propre portion de mémoire vidéo, ce qui élimine le besoin de vérifier les collisions et les coupures. En fait, l'utilisation de superpositions matérielles peut réduire considérablement l'utilisation du CPU, donc je la laisserais activée dans votre cas.

Comme je l'ai dit précédemment, ces options permettent aux développeurs d'obtenir différents résultats de débogage pour différents scénarios auxquels leurs applications peuvent être confrontées.

Références Superpositions matérielles Wikipédia / Superpositions de matériel sur ComputerHope.com

0 votes

Excellent, merci beaucoup ! Cela va beaucoup nous aider. Serait-il correct de supposer que si quelqu'un affirme que l'utilisation de ces paramètres a permis une augmentation des performances, il s'agit probablement d'un effet placebo ?

0 votes

Comme je l'ai dit dans la réponse, le gain de performance, s'il y en a un, sera faible et à peine perceptible, donc si quelqu'un prétend qu'il y a eu un gain de performance significatif, il est probable que ce soit un "effet placebo" ou un mensonge.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X