Hi Readers,

Je me suis concentré lors de mes derniers développements sous Android à l’accélération du temps d’exécution de mes applications. Plusieurs  astuces existent et je vais vous en livrer une à travers le patron de conception support qui reste relativement simple.

L’appel de la méthode “findViewById() est très couteuse, elle permet de parcourir les éléments de votre interface (texte,  image, etc…) pour appliquer des modifications. Pour accélérer cette étape nous allons mettre en place le patron de conception support à travers une classe.

La classe d’exemple :

  1. class ViewWrapper {
  2.  
  3.      private View base;
  4.      private TextView label = null;
  5.      private ImageView icon = null;
  6.  
  7.      public ViewWrapper(View pBase) {
  8.          this.base = pBase;
  9.      }
  10.  
  11.      public TextView getLabel() {
  12.           if ( label == null )
  13.                label = (TextView)base.findViewById(R.id.label);
  14.           return label;
  15.      }
  16.  
  17.      public ImageView getIcon() {
  18.           if ( icon == null )
  19.               icon = (ImageView)base.indViewById(R.id.icon);
  20.           return icon;
  21.      }
  22. }

Cette classe ressemble au patron “Singleton”, on garde en mémoire les éléments, et ainsi lors du second appel : l’instance de l’élément recherché est délivré plus rapidement. Il est évident qu’il ne faut pas stocker l’ensemble de notre interface, mais juste réfléchir aux appels récurrents.

Popularity: 12% [?]

2 Responses to “Android – Patron de conception support – Gagnez en performances”

  1. Antoine says:

    Ne faisant pas de développement Androïd, je ne ferai pas de remarques quand à l’article en lui même, mais j’aurai simplement une question : quel plugin utilises-tu pour l’affichage de code source ? :D

    Merci d’avance ;)

  2. Corentin Azelart says:

    Il s’agit de “Dean’s Code Highlighter”.

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>