Eliminiamo l'overdraw con Droid Inspector

Roberto Orgiu
Roberto Orgiu
Eliminiamo l'overdraw con Droid Inspector

L'overdraw, concettualmente, è il numero di volte che ogni pixel viene ridisegnato ed è strettamente legato al tipo di layout che abbiamo preparato. Come possiamo immagine, questo fenomeno è inevitabile nelle nostre applicazioni, in quanto persino l'utilizzo di una semplice icona su uno sfondo (come può essere l'ActionBar) comporta un overdraw di 1x (ovvero il pixel viene disegnato 2 volte, con 2x si disegna 3 volte e così via).

Android ci fornisce diversi strumenti per poter ridurre questa particolare caratteristica del nostro design (l'overdraw è tra le più frequenti cause di poca reattività dell'app) ma c'è un tool molto più semplice e completo che ci permette una visione tridimensionale del nostro layout semplicemente integrandolo nell'applicazione che stiamo creando.

Il software in questione si chiama Droid Inspector, è gratuito e distribuito sotto forma di archivio jar, che andremo ad importare nel nostro progetto, ricordando, nella struttura di quest'ultimo, di marcare la libreria come exported. Una volta impostato il nostro ambiente, con poche righe nei metodi standard della nostra Activity saremo pronti ad esaminare il layout.

    public void onCreate(Bundle ofJoy) {
        super.onCreate(ofJoy);
        ViewServer.get(this).addWindow(this);
    }
    public void onDestroy() {
        super.onDestroy();
        ViewServer.get(this).removeWindow(this);
    }
    public void onResume() {
        super.onResume();
        ViewServer.get(this).setFocusedWindow(this);
    }

A questo punto, non ci resta che scaricare il client per la visualizzazione sul nostro hard disk (assicuriamoci di avere l'eseguibile di adb e i percorsi ad esso relativi correttamente impostati) e aprire una finestra dei comandi (o shell se siamo in ambiente Unix), digitando i seguenti comandi

adb forward tcp:5555 tcp:5555
java -jar droidinspectorclient.jar

Attendiamo una manciata di secondi e apriamo l'indirizzo (in realtà è una pagina web locale) droid-inspector.html su Chrome, Firefox o qualsiasi altro browser che supporti WebGL e le proprietà flex di CSS e il gioco è fatto, siamo pronti ad eliminare l'overdraw dalle nostre app!