2011-10-06 16 views
7

Ho usato il codice sorgente di un'app per Android che abbiamo creato in passato come base per un'altra app (molte delle funzionalità sono simili, tuttavia circa 1/3 della funzionalità dell'app originale è stata rimossa).Come pulire un progetto Android?

Ho iniziato copiando l'albero dei sorgenti e importando un nuovo progetto nell'area di lavoro di Eclipse. Successivamente, ho cancellato alcuni layout e file disegnabili e alcuni file .java, quelli che ovviamente non sono necessari in una nuova app.

Infine, ho compilato e testato la nuova app. Ora mi piacerebbe fare una pulizia più approfondita del progetto eliminando praticamente tutto ciò che non è usato.

Qual è il modo migliore per trovare tutti i file XML e di immagine, i file Java, le stringhe e le risorse di colore non utilizzate nella nuova app? Con "non usato", intendo che non sono referenziati da alcun codice dell'applicazione in esecuzione (a partire dall'attività principale, andare a tutti gli altri file a cui si fa riferimento, ai file indirizzati da tali file e così via).

Il progetto contiene centinaia di Drawables (molti di questi hanno versioni in HDPI, MDPI e LDPI), circa un centinaio di layout e quasi un migliaio di file Java in una dozzina di pacchetti diversi. Pertanto, controllarli uno per uno non è un'opzione.

Edit Marzo 2012: L'ultima versione di Android strumento di SDK lint identifica le risorse non utilizzate abbastanza bene. Il problema è filtrare i messaggi sulle risorse inutilizzate da centinaia di altri messaggi che ho ricevuto. Quando ho eseguito il collegamento sul mio progetto di medie dimensioni, ho ricevuto oltre 3.000 avvisi, la maggior parte dei quali non intendo fare nulla, perché lint non può analizzare ciò che faccio nel codice con i miei layout XML.

risposta

2

Partenza http://code.google.com/p/android-unused-resources/

E 'open source, in fase di sviluppo, e creato/gestito da un grande sviluppatore.

+0

Questo sembra un ottimo strumento. Alla prima esecuzione, mi ha riferito di aver trovato 111 risorse inutilizzate. Molti di loro sembrano davvero non usati. Ho alcuni dubbi su alcuni di essi, quindi controlleremo quelli manualmente. –

+0

Sì, ce ne sono alcuni che potrebbero essere valutati erroneamente. Penso che molti di questi sono limitati agli stili che hanno uno stile genitore. –

0

AFAIK, non esiste uno strumento automatico per questo. Anch'io ho cercato un modo per rilevare le risorse inutilizzate e sono giunto alla conclusione che non esiste uno strumento per questo. Inoltre, stai parlando di file Java inutilizzati, che ritengo sia ancora più difficile da realizzare (è difficile effettivamente rilevare quali attività/servizi/ricevitori/provider siano effettivamente utilizzati, ecc.).

Quello che suggerisco è di passare l'albero del progetto per le risorse e le classi che si sospetta non siano più utilizzate e rimuovere quelle che non appaiono da nessuna parte.