当前位置:网站首页>Partage des dernières questions d'entrevue pour Android haute fréquence, Introduction aux compétences d'entrevue pour le développement d'Android

Partage des dernières questions d'entrevue pour Android haute fréquence, Introduction aux compétences d'entrevue pour le développement d'Android

2021-09-15 08:21:25 A soif de connaissance

Le saut d'octets pose cette question de trois côtés,J'ai fait le tri ici,J'espère que ça aidera tout le monde.,Bienvenue à combler les lacunes.

Séparation du traitement des données et du chargement des vues

Nous savons que,Extraire les données à distance doit être asynchrone,Après avoir retiré les données, on les a peut - être jetées à la hâte VH Traitement,En fait...,Logique de traitement des données nous devrions également mettre le traitement asynchrone,Voilà. Adapter In notify change Après,ViewHolder Vous pouvez facilement et sans pression faire la logique de liaison des données et des vues,Par exemple,:

mTextView.setText(Html.fromHtml(data).toString())

     
  • 1.

Ici. Html.fromHtml(data) La méthode peut prendre du temps,Il y a plusieurs TextView Ça prendrait plus de temps,Cela provoquera la chute du cadre、Katon.,Et si vous combinez cette étape avec un fil asynchrone réseau,Du point de vue de l'utilisateur,Au mieux, le temps de rafraîchissement du réseau est un peu plus long.

Optimisation des données

Pager pour extraire les données distantes,Cache les données distantes extraites,Augmenter la vitesse de chargement secondaire;Pour ajouter ou supprimer des données via DiffUtil Pour rafraîchir localement les données,Au lieu de rafraîchir les données globalement.

Optimisation de la disposition

Réduire la peinture de transition

Réduire le niveau de mise en page,Vous pouvez envisager d'utiliser la personnalisation View Pour réduire la hiérarchie,Ou une disposition plus rationnelle pour réduire les niveaux,Non recommandé à RecyclerView Utilisé dans ConstraintLayout,Il y a beaucoup de développeurs qui ont déjà indiqué que son utilisation est encore pire,Les liens pertinents sont:Is ConstraintLayout that slow?、constraintlayout 1.1.1 not work well in listview.

Diminution xml Documentation inflate Temps

Ici. xml Les documents ne comprennent pas seulement layout De xml,Y compris drawable De xml,xml Documentation inflate Sortez! ItemView C'est en prenant du temps IO Fonctionnement,Surtout quand Item Avec une faible probabilité de réutilisation,Avec Type Augmentation de,Ce genre de inflate Les pertes sont considérables,À ce stade, nous pouvons utiliser le Code pour générer la mise en page,C'est - à - dire: new View() De la façon dont,Il suffit de comprendre xml Les propriétés de chaque noeud dans API C'est tout..

Diminution View Création d'objets

Un peu compliqué Item Il y aura beaucoup de View,Et beaucoup View La création de,Pour simplifier autant que possible ItemView;Conception ItemType Heure,Oui, beaucoup. ViewType Les parties qui peuvent être partagées sont conçues autant que possible pour être personnalisées View,Diminution View Construction et nidification de.

Autres

Les autres ne signifient pas que ce n'est pas important,Mais je ne peux pas les classer,Certaines de ces actions peuvent avoir un impact sur votre RecyclerView Il y a une grande optimisation.

  • Mise à jour RecycleView Version vers 25.1.0 Et plus Prefetch Fonction,Références RecyclerView Préfet de données.
  • Si Item Si la hauteur est fixe,Peut être utilisé RecyclerView.setHasFixedSize(true); Pour éviter requestLayout Gaspiller des ressources;
  • Paramètres RecyclerView.addOnScrollListener(listener); Pour arrêter le chargement pendant le glissement.
  • Si vous n'avez pas besoin d'animation,Peut passer ((SimpleItemAnimator) rv.getItemAnimator()).setSupportsChangeAnimations(false); Désactiver l'animation par défaut pour une plus grande efficacité.
  • C'est exact. TextView Utiliser String.toUpperCase Pour remplacer android:textAllCaps=“true”.
  • C'est exact. TextView Utiliser StaticLayout Ou DynamicLayout Personnalisation pour View Pour le remplacer..
  • Par réécriture RecyclerView.onViewRecycled(holder) Pour récupérer les ressources.
  • Adoption RecycleView.setItemViewCacheSize(size); Pour agrandir RecyclerView Cache pour,Utiliser l'espace pour changer le temps pour améliorer la fluidité du roulement.
  • Si plusieurs RecycledView De Adapter C'est pareil,Comme imbriqué RecyclerView Il y a le même Adapter,Peut être réglé par RecyclerView.setRecycledViewPool(pool); Pour partager un RecycledViewPool.
  • C'est exact. ItemView Réglage de l'auditeur,Pas pour tout le monde Item Tous les appels addXxListener,Tout le monde devrait partager XxListener,Selon ID Pour effectuer différentes opérations,Optimisation de la consommation de ressources due à la création fréquente d'objets.
  • Adoption getExtraLayoutSpace Pour augmenter RecyclerView Espace supplémentaire réservé(En dehors de la plage d'affichage,Il devrait y avoir plus d'espace mis en cache),Comme suit:
new LinearLayoutManager(this) { 
@Override protected int getExtraLayoutSpace(RecyclerView.State state) {
 return size; 
} 
};

     
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

Si votre chemin vers l'avant manque de direction,C'est bon. Cliquez sur mon【CodeChinaProjet Open Source】Rejoignez notre cercle et apprenez à communiquer avec les développeurs Android!

  • AndroidManuel complet pour l'apprentissage avancé

     Dernière haute fréquence Android Partage des questions d'entrevue , Android Develop interview Skills Introduction _Développement mobile

  • AndroidComparer AliP7Apprendre la vidéo

     Dernière haute fréquence Android Partage des questions d'entrevue , Android Develop interview Skills Introduction _Programmeur_02

  • BATJGrande usineAndroidQuestions d'entrevue à haute fréquence

     Dernière haute fréquence Android Partage des questions d'entrevue , Android Develop interview Skills Introduction _Programmeur_03

Enfin,J'emprunte mes citations préférées de Jobs.,À la fin de cet article:

On ne peut pas faire grand - chose de toute sa vie.,C'est pour ça qu'il faut que tout soit parfait..
Votre temps est limité,Alors ne vis pas pour les autres..Ne soyez pas limité par le dogme,Ne vivez pas dans l'esprit des autres..Ne laissez pas les opinions des autres influencer votre voix intérieure.
Et surtout,Soyez courageux de suivre votre cœur et votre intuition,Seul votre esprit et votre intuition savent ce que vous pensez vraiment.,Tout le reste est secondaire..

版权声明
本文为[A soif de connaissance]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210915081450785r.html

随机推荐