Fermer

février 1, 2024

Façons d’améliorer les performances de l’interface utilisateur pour Android natif

Façons d’améliorer les performances de l’interface utilisateur pour Android natif


Il est entendu que l’utilisation de structures de mise en page de base constitue un moyen efficace de créer une interface utilisateur. Ici, nous devons comprendre que chaque widget que nous ajoutons à notre structure de mise en page nécessite une initialisation et un dessin. Ci-dessous, nous discuterons de certaines API Android pour améliorer les performances de l’interface utilisateur.

AfficherStub

ViewStub est une vue de taille nulle qui est initialement invisible. Cela peut être utilisé pour gonfler paresseusement les vues au moment de l’exécution. Lorsque le ViewStub est rendu visible, ou que nous invoquons le gonfler() méthode, alors il sera gonflé. Il est utilisé pour augmenter les performances de l’interface utilisateur, car la vue n’est gonflée au moment de l’exécution que si nécessaire, sinon la vue ne sera pas ajoutée à la hiérarchie des vues.

Donner un exemple simple pour l’implémenter lors de la création de l’interface utilisateur :

Déclarez le ViewStub en XML :

   <ViewStub
         android:id="@+id/viewstub"
         android:inflatedId="@+id/error_layout"
         android:layout="@layout/errorLayout"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
   />

Après avoir gonflé la mise en page « errorLayout », ViewStub sera supprimé.

La manière préférée d’effectuer le gonflage est :
ViewStub stub = findViewById(R.id.viewstub);
View inflated = stub.inflate();

Lorsque inflate() est invoqué, le ViewStub est remplacé par la vue gonflée et la vue gonflée est renvoyée.

Vous pouvez également recevoir un rappel une fois la mise en page gonflée en utilisant ViewStub.onInflateListener.

Balise  :

Une initialisation et un dessin excessifs de la mise en page peuvent ralentir les performances de l’interface utilisateur. Nous pouvons améliorer les performances en
aplatir la mise en page.

La balise permet d’éliminer les groupes de vues redondants dans votre hiérarchie de vues lors de l’inclusion d’une mise en page dans une autre.

Exemple : si nous utilisons la balise pour inclure une autre mise en page à partir d’un autre fichier sans utiliser de fusion.

layout1.xml :

<FrameLayout>
         <include layout="@layout/layout2"/>
</FrameLayout>

layout2.xml :

<FrameLayout>
         <TextView />
         <TextView />
</FrameLayout>
which is functionally equivalent to this single layout:
<FrameLayout>
         <FrameLayout>

              <TextView />
              <TextView />         

         </FrameLayout>
</FrameLayout>

et si nous utilisons la balise avec la balise alors cela ressemblera à ceci :

layout2.xml:
<merge>
         <TextView />
         <TextView />
</merge>
This is functionally equivalent to this layout:
<FrameLayout>
         <TextView />
         <TextView />
</FrameLayout>

Remarque : Si vous souhaitez simplement voir à quoi cela ressemblera dans l’éditeur de conception de studio Android, utilisez l’espace de noms des outils pour
fusionner la mise en page.

tools:parentTag="android.widget.LinearLayout"
tools:orientation="horizontal"

AsyncLayoutInflator :

Cela permet de gonfler les mises en page de manière asynchrone. Cela peut être utilisé lorsqu’une partie de l’interface utilisateur est créée paresseusement ou en réponse aux interactions de l’utilisateur.

Cela permet au fil de l’interface utilisateur de rester réactif et animé pendant que l’inflation relativement importante est effectuée.

Piscine RecyclerView :

RecyclerView est le widget que nous utilisons fréquemment. L’utilisation de recyclerview à l’intérieur d’une recyclerview est un modèle de conception très courant de nos jours.

Comme nous utilisons déjà le modèle ViewHolder lors de la création de recyclerview, le même type de concept de pool peut être utilisé ici lorsque nous utilisons recyclerview imbriqué.

Car la plupart du temps, nous avons le même ViewType entre les différents avis recycleurs. Comme chaque vue de recyclage a déjà ce concept de pool individuellement, mais cela peut être utilisé comme approche commune pour toutes les vues de recyclage.

Cela signifie que toutes les vues de recyclage peuvent partager le même pool de vues.

Cela peut être fait en utilisant la classe statique RecycledViewPool qui reste dans la classe RecyclerView.

RecyclerView.setRecycledViewPool(mRecycledViewPool)

Conclusion

Android fournit plusieurs outils et bibliothèques pour améliorer continuellement les performances de votre application en production, là où cela compte le plus.

En mettant en œuvre différentes approches pour améliorer les performances de l’interface utilisateur, nous pouvons garantir une meilleure réactivité des applications et moins d’ANR dans les applications Android.

Merci d’avoir lu.

VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE






Source link