Résumé : L'article présente de manière exhaustive comment améliorer les performances des applications mobiles sous des aspects tels que l'optimisation de la taille des applications mobiles, la conception de l'API d'application, la conception de l'architecture, l'affichage adaptatif, le démarrage rapide, etc. voici la traduction.
L'année dernière, sur le vol de retour de Londres, j'ai rencontré une personne qui travaillait dans l'industrie de la téléphonie mobile. Au cours des 20 dernières années, il a été responsable de l'adoption des nouvelles technologies dans une grande entreprise que l'on peut qualifier d'entreprise leader.
Au cours de nos 8 heures de vol ensemble, il a mentionné certaines choses auxquelles j'ai pensé récemment. Il estime que les applications mobiles et leurs performances continuent d'être livrées. En fait, il ne peut même pas auditer les performances des applications mobiles pour voir l'ampleur des améliorations.
Après avoir atterri à San Francisco, j'ai contacté davantage de personnes du secteur de la téléphonie mobile pour en savoir plus sur ce sujet et j'ai constaté qu'elles avaient toutes des points de vue similaires. La qualité du code et le cadre de base sont les seules choses dont tout le monde discute.
J'ai immédiatement réfléchi à la façon de créer des applications sur Simform, d'explorer de très bonnes pratiques, de suivre ces pratiques, d'établir des benchmarks et de percer les applications existantes, qui peuvent atteindre des milliards de dollars.
Les facteurs suivants affecteront grandement la qualité des applications mobiles :
Taille de l'application
Performances de l'application
Directives spécifiques à la plateforme
Conception architecturale
Voyons maintenant comment les optimiser de manière simple avec des étapes faciles à adopter pour rendre les applications mobiles plus rapides.
Réduire la taille de l'application
Les téléphones mobiles ne disposent pas de GPU puissants, cependant, les téléphones bas de gamme occupent la majorité de la part de marché d'Android. Ils ne prennent même pas en charge la 2G ou la 3G, et télécharger une application volumineuse dont vous avez besoin immédiatement serait un cauchemar pour les utilisateurs. Sur un téléphone aussi bas de gamme, moins une application prend de place, mieux c'est.
Optimisez le réseau
Le texte d'abord, l'image ensuite
Optimisez le réseau, essayez d'abord de charger des données texte. Les affichages de contenu basés sur des images au sein de l'application peuvent ensuite être chargés de manière asynchrone.
Évitez les demandes de réseau en double
Ces applications Volley familières sur Android en sauront plus sur cette demande. Lorsque l'application fonctionne mal, l'application Android peut utiliser Volley pour envoyer deux requêtes au serveur en même temps. Vous pouvez supprimer une requête et la requête sera supprimée, mais la réponse de l'application sera qu'il n'y a pas de requête de ce type. Ce n'est pas seulement un problème de fonctionnalité, les requêtes en double augmentent également la congestion du système et dégradent les performances des applications, en particulier lorsqu'il y a des millions d'utilisateurs d'applications. Imaginez que si le nombre de requêtes double, le nombre de serveurs sera doublé. Ensuite, lorsque vous voudrez réduire les coûts, vous serez très désespéré.
Comprenez et effectuez des ajustements en fonction de la qualité de la connexion
Supposons qu'une application doive décider si elle est disponible en fonction des conditions du réseau. Les applications peuvent modifier la qualité du contenu fourni en fonction des conditions de réseau dans lesquelles se trouve actuellement l'utilisateur, garantissant ainsi que l'utilisation des applications n'échoue pas.
Conception d'API efficace
La façon dont une API est conçue aura un impact énorme sur les performances des applications. Une conception d’API incomplète ou paresseuse augmentera la charge de travail de l’application. Les solutions de contournement sur l'API mettent souvent trop à rude épreuve les limites du réseau.
Concevez la charge API de l'application mobile pour vous assurer que l'application présente les caractéristiques suivantes :
Cohérence : les développeurs doivent connaître les attentes et il n'y a pas de marge de manœuvre lorsqu'il s'agit de concevoir la cohérence de l'API.
Complétude : dispose d'une solution de contournement simplifiée.
Un excellent moyen de concevoir une charge utile d'API avec cohérence et exhaustivité, en commençant par l'interface utilisateur et jusqu'aux données, améliorant ainsi les performances de l'application . N'envoyez pas toutes les requêtes à l'API depuis votre téléphone, uniquement celles qui sont réellement nécessaires.
Optimiser les images dans votre application
Pour optimiser les images dans votre application, vous pouvez :
Utiliser des images vectorielles
Fournir des images de taille dynamique
Utilisez des filtres de couleur au lieu d'utiliser des ensembles d'images de couleurs différentes
Utiliser une image mise en cache
Utilisez des bibliothèques comme Picasso et Fresco
Cache les données pour une optimisation hors ligne
Lorsque le réseau est médiocre, lors de l'obtention de données, toutes les données que vous avez obtenues seront affichées. Cela permettra :
Réduire la charge du serveur
Réduire le nombre d'utilisations de la radio mobile et réduire la consommation électrique des applications mobiles
Si vous ne disposez pas d'une équipe de test, vous pouvez essayer de passer votre téléphone en mode avion pour tester les performances hors ligne de votre application.
Assurez-vous que l'application s'adapte à la taille de l'écran de votre téléphone
Il y a beaucoup de discussions sur la taille de l'écran qui ont été évoquées, et Android a soulevé de gros sourcils parce que en fait, il existe des milliers d'appareils, chacun avec sa propre résolution et sa propre taille d'écran.
Comme la meilleure stratégie :
Construire pour les petits et moyens écrans
Optimiser MDPI et HDPI
Mettre en œuvre un flux d'interface utilisateur adaptatif
Vous n'avez pas des centaines d'appareils qui testent la résolution et la taille de l'écran ? Testez avec la configuration de l'émulateur.
Utilisation de la mémoire dans Android
Afin de fournir aux utilisateurs de téléphones mobiles la possibilité d'effectuer plusieurs tâches à la fois, Android fixe des limites sur la quantité de mémoire utilisée par chaque application. Ces limites ne sont pas. statique, change avec l'augmentation ou la diminution des applications de téléphonie mobile.
Tenez compte des limitations de la RAM tout au long du processus de développement d'applications, ainsi que du fait que les applications exécutées en arrière-plan occuperont des ressources inutiles.
Vous pouvez cependant optimiser l'application par les moyens suivants :
Limiter la durée de validité du service, pensez à utiliser le service d'intention pour limiter la durée de vie du service
Lorsque l'utilisateur passe à une interface différente, libérez les ressources de l'interface utilisateur
Utilisez une structure de code économe en mémoire
Minimiser l'utilisation de la bibliothèque externe
À quelle vitesse l'application démarre-t-elle ?
Top 25 des applications en moyenne sur PlayStore avec des temps de lancement allant de 800 ms à 4,5 s. Désormais, 4,5S est trop pour la plupart des cas d’utilisation.
En fin de compte, l’application doit se lancer rapidement !
Pour optimiser le temps de démarrage de votre application iOS, les éléments suivants doivent être pris en compte :
Intégrer un petit nombre de dylibs
Fusionner les classes Objective-C
Éliminer les logiciels d'initialisation statique
Utiliser davantage de Swift, comme Apple le recommande
Mesurez les résultats avec DYLD_PRINT_STATISTICS
Évitez d'utiliser dlopen()
Dans Android, le Les situations suivantes affectent généralement le temps de démarrage de l'application :
Instanciation multi-vues
Contenu à forte consommation de ressources tel que le décodage de bitmaps
Exécuter la mise en page
Rendre les applications plus rapides dans Android :
Ne pas afficher les éléments dont vous n'avez pas besoin au premier lancement dans l'interface utilisateur partie, utilisez des espaces réservés hiérarchiques, qui peuvent être affichés à volonté à l'avenir
Évitez la confusion causée par l'allocation de mémoire et effectuez le ramassage des ordures autant que possible
Utilisez des outils comme Apteligent pour surveiller et optimiser les temps de démarrage des applications
Évitez le code d'initialisation dans les objets d'application
Note Live, un récent application lancée, cette première application lancée se comportera différemment.
Réduisez les réveils de l'appareil
Réveiller fréquemment le téléphone réduira considérablement les performances du système. Cela consomme des ressources système. Vous pouvez limiter les intentions de réveil auxquelles votre application répondra.
Considérez les téléphones Android bas de gamme
Tous les utilisateurs d'Android ne disposent pas des derniers téléphones à mémoire 2G+. Lorsque nous examinons les appareils Android disponibles, nous constatons une forte répartition en termes de capacités des appareils.
Lorsque la plupart des développeurs développent et optimisent des applications en termes de performances, ils commettent une grave erreur. Ils optimisent leurs applications pour les mauvais appareils, souvent avec des appareils haut de gamme disponibles pour les tests.
Une bonne règle de base est qu'une variété d'appareils doivent être utilisés pour optimiser les performances des applications. De cette façon, les développeurs peuvent effectuer des tests croisés.
Différentes vitesses
Interface et résolution
Mémoire faible
Fréquence d'images fluide
Sur iOS et Android, la fréquence d'images maximale pour l'affichage des animations et des gestes est de 60 ips.
Si la fréquence d'images est inférieure à 60 ips, les utilisateurs se sentiront généralement bloqués.
Afin d'atteindre une fréquence d'images de 16 ms (équivalent à 60 ips), le code utilisé pour l'affichage dans l'application doit être exécuté dans un délai de 16 ms. C'est là que vous remarquerez dans Android à quel point 5 ms de temps de récupération de place coûtent cher.
Évaluons l'impact que cela aura sur les utilisateurs finaux. Lorsque vous dépassez la limite de 16 ms, vous obtenez souvent une fréquence d'images légèrement inférieure d'environ 59 ips. Ce n'est pas grave, non ?
Faux !
Ce qui se passe, c'est que si l'application dépasse une fois la limite de 16 ms, elle ne peut pas utiliser la fenêtre pour la même image et doit attendre l'image suivante.
Bien que l'application n'ait mis que 19 ms à s'afficher, elle a manqué la fenêtre d'affichage et le temps d'affichage à l'utilisateur est devenu deux fois plus long. Vous savez, de cette façon, les utilisateurs penseront que l’application est très mauvaise.
Récupération des données utilisateur sur de nouveaux appareils
Les utilisateurs passent souvent beaucoup de temps à configurer des applications sur leurs téléphones afin qu'ils fonctionnent comme ils le souhaitent. Lors de la réinstallation d'une application, la plupart des utilisateurs s'attendent à ce que leurs paramètres d'origine restent disponibles.
L'enregistrement des données de configuration permet d'améliorer la qualité des applications :
Toute configuration modifiée par l'utilisateur
Notification des paramètres push
Si l'utilisateur l'a consultée sur un nouvel écran Accédez à l'écran de bienvenue et à l'introduction
Découvrez la consommation potentielle
Il est important de supprimer les problèmes potentiels de votre application. Des problèmes potentiels peuvent provoquer des erreurs d’application et interrompre souvent l’ensemble de l’application. Les statistiques montrent que si une application s'exécute lentement, plus de 50 % des utilisateurs la désinstalleront dans les 24 heures.
Traitez efficacement les problèmes potentiels associés :
Lorsque l'état du réseau n'est pas bon, vous pouvez limiter la source de facteurs de problèmes potentiels provenant de tiers
Réduisez le nombre de problèmes potentiels problèmes pouvant être utilisés sur les téléphones mobiles Besoin d'API potentiellement consommatrices
Optimisation des applications iOS pour gérer le multitâche
Supposons qu'un utilisateur utilise votre application. L'application s'affichera bien à 60 ips et terminera tout le travail en 9 ms. Comme le montre la figure ci-dessous :
Désormais, lorsque l'utilisateur ouvre la deuxième application sur le téléphone, il faut également environ 7 ms pour terminer tout le travail. Cela ressemble maintenant à ce qui suit :
Vous pouvez voir que pour afficher à une fréquence d'images de 60 images par seconde, les deux applications combinées ont mis 16 ms.
Supposons que l'utilisateur ouvre une autre application à une fréquence d'images de 60 ips et que le travail soit terminé en 10 ms. L'heure actuelle est de 9+7+10=26 ms, ce qui signifie que la fréquence d'images de démonstration de l'application est de 40 ips au lieu de 60 ips.
Les utilisateurs de l'application ont commencé à remarquer des retards dans le programme, et presque la même chose s'est produite avec le GPU et la mémoire.
Vous vous souvenez quand les applications n'arrêtaient pas de planter ?
D'accord, jetons un coup d'œil au scénario d'une application exécutée sur l'appareil.
Maintenant, en introduisant une autre application dans la scène, nous allons toujours bien et il nous reste encore un peu de mémoire.
Quand on introduit une autre application dans la scène, le système n'a pas de mémoire à allouer. Le système tuera un processus pour libérer des ressources.
C'est pourquoi le développement d'applications est si difficile (pour ceux qui s'en soucient vraiment)
Résoudre ces défis nécessite un peu de compréhension de l'écosystème iOS. Voyons comment optimiser votre application pour le multitâche :
Vous pouvez utiliser des outils pour identifier et corriger les bugs
Priorisez votre niveau de travail, faites ne bloque pas le fil de discussion principal
Ensemble d'outils d'identification et de gestion
Utiliser le cache et répondre aux alertes de mémoire
Utilisez le système de mémoire virtuelle pour augmenter le recyclage de la mémoire
Faites des compromis
Si quelqu'un peut suivre 50 % de cela, il le fera découvrez Les performances des applications ont été grandement améliorées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!