2013-03-19 15 views
16

Sto riscontrando problemi con la mia applicazione che ha troppi metodi.Come determinare il conteggio dei metodi dell'applicazione?

Nell'ultimo post nel link seguente, un poster pubblica il conteggio del metodo per la sua applicazione (suddiviso per pacchetto). Non riesco a trovare come posso ottenere queste informazioni per la mia domanda, qualche suggerimento?

https://code.google.com/p/android/issues/detail?id=20814

+1

Se stai usando protobufs o qualcosa che genera un sacco di metodi, è probabilmente necessario attivare Proguard per rimuovere metodi non utilizzati . – fadden

risposta

4

tenta di utilizzare un analizzatore di codice statico; Source Monitor, ad esempio, è gratuito SW e ha il numero che stai cercando.

O se si preferisce farlo senza plugin aggiuntivi, prova a fare questo (Eclipse solo):

  • Premere Ctrl-H (Ricerca), quindi selezionare la scheda "Java Search" (se doesn' t appaiono cliccare sul pulsante "Personalizza ..." nell'angolo in basso a sinistra)
  • put * nella casella di ricerca
  • Selezionare "Metodo" nella sezione "Cerca" fieldset
  • Selezionare "dichiarazioni" nel Fieldset "Limit To"
  • Seleziona "Sour ces "nel "Cercare nelle" fieldset
  • Selezionare "Area di lavoro" nel "Scope" FIELDSET
  • Cliccare su "Cerca"

Dopo che la ricerca è completata, si dovrebbe vedere un" dichiarazioni XXXX in. .. "messaggio nella visualizzazione di ricerca e questo sarà il tuo risultato.

Spero che aiuti!

+0

no supporto Linux :( – JBirdVegas

+2

@ jbird il metodo eclipse dovrebbe essere indipendente dalla piattaforma –

30

Io uso

cat build/dex/debug/classes.dex | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"' 

ottengo 55176. 64k limite sta arrivando: D

+0

Dove posso eseguire questo comando? – user584263

+1

È possibile eseguirlo su un terminale su Linux o su OSX. –

+1

Ok stavo provando in windows.So per Windows, Suppongo che dovrei usare KeepSafe/dexcount-gradle-plugin – user584263

11

Per ottenere un rapporto metodo di conteggio su ogni costruzione, fare questo:

in app/build.gradle:

buildscript { 
    repositories { 
     mavenCentral() // or jcenter() 
    } 

    dependencies { 
     classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.7.3' 
    } 
} 

// make sure this line comes *after* you apply the Android plugin 
apply plugin: 'com.getkeepsafe.dexcount' 

mostrerà il numero di metodi per confezione, per la vostra proprio progetto e le librerie che usi.

Da: https://github.com/KeepSafe/dexcount-gradle-plugin

+0

dove cercare l'output? –

+0

dopo la build è nella parte inferiore del log di costruzione. ("Console Gradle" in basso a destra di Android Studio) – Frank

+0

Trovo utile guardare la pagina HTML generata in 'app/build/output/dexcount/{$ variant}/index.html'. – arekolek

0

da trovare e contare metodo di applicazione Android con o senza l'uso multidex supporto:

find | grep classes.dex | xargs -I {} hexdump -e '"%d {}\n"' -s 0x58 -n 4 {} 
Problemi correlati