Pour les praticiens techniques, souvent, ce n'est pas qu'ils ne savent pas comment le faire, mais qu'ils ne savent pas quoi faire. Aujourd'hui, j'ai rassemblé quelques expériences sur comment ? pour optimiser les applications Android, un total de huit dimensions.
Pourquoi ?1. 🎜>
En plus du fait que l'interface ci-dessus est trop complexe et que le rendu n'est pas terminé à temps, il y a aussi le problème du surdessin. ce qu'on appelle le surdessin signifie qu'un certain pixel est dessiné plusieurs fois dans le même cadre, dans une interface utilisateur à plusieurs niveaux, si l'interface utilisateur invisible est également dessinée, alors les pixels de ces zones qui se chevauchent seront dessinés plusieurs fois, ce qui gaspille beaucoup de ressources CPU et GPU. Le surdessin se produit également lorsque l'arrière-plan se chevauche, par exemple, la mise en page a son propre arrière-plan et la sous-vue a son propre arrière-plan
Comment détecter. ?
2. Optimisation de la mémoirePourquoi ?
Comment optimiser ?
Utilisez raisonnablement plusieurs processus, tels que des lecteurs de musique, qui peuvent être divisés en processus principaux et processus de lecture
Considérez les files d'attente limitées lorsque vous utilisez des files d'attente asynchrones
Si vous pouvez clairement connaître la taille du HashMap, définissez sa capacité lors de l'initialisation
3. Optimisation de la puissance
La puissance est une ressource très précieuse pour les appareils mobiles. En tant que développeur, il y en a. Il est nécessaire de prendre en compte l'utilisateur et de réduire la consommation d'énergie. Les enquêtes montrent qu'en général, seulement environ 30 % de l'énergie est consommée par les fonctions de base du programme, telles que le rendu de l'interface, et les 70 % restants sont consommés par les rapports de données et les mises à jour de localisation. et notifications en arrière-plan.
Afficher les statistiques de consommation électrique de l'application dans les options du téléphone
Utilisez Battery Historian Tool pour afficher la consommation électrique détaillée
Réduire la nombre de réveils d'écran Avec la durée, utilisez WakeLock correctement.
Lorsque vous retardez des opérations non essentielles vers l'état de charge, telles que le rapport de journal, cela peut être effectué pendant la charge de nuit. Ceci peut être utilisé avec JobScheduler
Lorsque vous utilisez des capteurs pour collecter des données, n'oubliez pas d'annuler l'enregistrement une fois qu'il n'est plus nécessaire.
Réduisez la communication réseau et fusionnez la communication.
Utilisez la fonction de positionnement de manière rationnelle, réduisez la fréquence des mises à jour de localisation et utilisez des exigences de positionnement de précision différente en fonction de la situation réelle
4. Optimisation du réseau
Aujourd'hui, presque toutes les applications doivent être connectées à Internet. L'optimisation du réseau peut améliorer l'expérience d'une part et réduire le trafic et la consommation d'énergie. utilisateurs ou fournisseurs de services réseau, et aucun développeur ne doit supposer que les ressources réseau sont illimitées
Utilisez les outils de trafic réseau dans. Android Studio pour afficher les requêtes réseau
Utilisez Monitor dans Android Studio
Utilisez des outils de capture de paquets tels que Fidder ou Charles pour analyser les paquets de données réseau
Assurez-vous de mettre en cache lorsque cela est nécessaire, qu'il s'agisse d'images ou de données ordinaires, utilisez LruCache et DiskLruCache pour créer votre propre système de mise en cache et concevoir des stratégies de mise en cache en fonction de scénarios réels
Évitez une synchronisation réseau excessive, fusionnez les requêtes réseau associées
Déterminez la stratégie de demande en fonction du scénario réel et évitez d'utiliser des fréquences d'intervalle fixes pour les opérations réseau. Par exemple, lors de la connexion au WiFi et de la recharge, la fréquence de demande peut être élevée. Après l'échec de la première demande réseau, l'intervalle de temps peut être doublé. utilisé pour le prochain
pour réduire la quantité de transmission de données et compresser les données transmises. Si la transmission est destinée aux images, vous devez choisir le format d'image approprié et demander des images avec les spécifications appropriées. en fonction de la taille d'affichage. Pour les données ordinaires, vous pouvez envisager d'utiliser des ProtocolBuffers pour réduire la taille des données transmises
Dans certains cas, une connexion directe IP peut être utilisée, ce qui peut réduire le DNS. temps de résolution d'une part, et empêcher le piratage de nom de domaine d'autre part
5. Démarrer l'optimisation
L'optimisation du démarrage ne semble pas si nécessaire, mais d'un point de vue psychologique, des vitesses de démarrage plus rapides ont tendance à donner aux utilisateurs l'implication psychologique de bonnes performances , efficacité et fiabilité, il est facile pour les utilisateurs d'en avoir une bonne impression, vous laissant la possibilité d'impressionner les utilisateurs plus tard
dans onCreate
Utilisez adb shell am start -W [packageName]/[packageName.MainActivity]
pour mesurer le temps de démarrage à froid
Réduisez les opérations complexes et fastidieuses dans onCreate()
OnCreate() et attachBaseContext() de l'application réduisent également les opérations complexes et fastidieuses, mais pour de nombreuses applications, cet A un grand nombre d'opérations d'initialisation pour les composants et les services seront effectuées ici. Si possible, envisagez l'initialisation parallèle
Fournissez une fenêtre de démarrage personnalisée, par exemple en affichant une image comme fenêtre de démarrage en définissant un thème.
Mise en page optimisée
6. Optimisation du volume
Pour les utilisateurs, qu'il s'agisse de l'espace utilisateur, du réseau ou du temps, ce sont toutes des ressources. L'optimisation du volume est un élément important de l'économie de ressources pour les utilisateurs. . Si vous créez actuellement des produits SDK, l'optimisation de la taille est tout aussi importante
Utilisez Android Lint pour vérifier les ressources inutilisées
Si vous pouvez exercer 100 % de vos capacités, n'en exercez pas seulement 50 %. important pour l'application. Ce n'est pas une mauvaise chose. Si deux voitures sont vendues aux utilisateurs au même prix, je pense que la plupart des gens choisiront celle qui a les meilleures performances7. Optimisation des performances
Étant donné que l'activité de chaque produit est différente, il est difficile d'avoir un plan d'optimisation général. Voici deux autres objectifs à considérer :
Si possible, l'activité en série Paralléliser
La valeur par défaut est ARGB_8888
<span style="font-size:14px;">ARGB_8888</span>
, où ARGB représente Qu'est-ce que la transparence, rouge, vert, bleu, chaque valeur est enregistrée sur 8 bits, c'est-à-dire qu'un pixel occupera 4 octets, soit un total de 32 bits.
Et<code style="font-family:'Source Code Pro', monospace;font-size:12.6px;color:rgb(63,63,63);"><span style="font-size:14px;">ARGB_4444</span>
ARGB_4444
C'est similaire à ce qui précède, mais chaque valeur est enregistrée avec 4 bits, c'est-à-dire qu'un pixel occupera 2 octets, soit un total de 16 bits. <span style="font-size:14px;">RGB_565</span>
<span style="font-size:14px;">RGB_565<br> </span>
Utilisez ensuite 5 bits, 6 bits et 5 bits pour enregistrer chaque valeur. Il n'y a pas de transparence. Chaque pixel occupera 2 octets, un total de 16 bits <span style="font-size:14px;">ALPHA_8</span>
<br>ALPHA_8
<span style="font-size:14px;">ARGB_8888</span>
: Ce pixel seule la transparence de sauvegarde occupera 1 octet, soit un total de 8 bits. Dans les applications pratiques, il est recommandé d'utiliser
et <span style="font-size:14px;">RGB_565</span>
ARGB_8888<span style="font-size:14px;">RGB_565</span>
<span style="font-size:14px;">RGB_565</span>
<a href="http://www.php.cn/course/list/56.html" target="_self">RGB_565</a>
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!