Quali sono gli strumenti di build, gli strumenti e gli strumenti della piattaforma SDK per Android? E quale versione dovrebbe essere utilizzata?


331

So che questa è una domanda molto rudimentale, ma con mia sorpresa non sono riuscito a trovare alcun documento sugli strumenti di build dell'SDK per Android. Oltre agli strumenti SDK di Android e agli strumenti della piattaforma SDK di Android, ci sono un sacco di strumenti di build dell'SDK di Android come mostrato nella schermata allegata. Qualcuno potrebbe indicare una fonte che li spiega tutti e aiutare a chiarire come viene scelta una determinata versione di Android SDK Build-tools?

inserisci qui la descrizione dell'immagine

Modificato (27/02/2014) :

Continuo a non comprendere appieno tutti gli strumenti. Quanto segue è la mia comprensione limitata basata sugli ultimi documenti di Google:

  • Gli strumenti di build dell'SDK per Android erano componenti degli strumenti della piattaforma SDK per Android . Sono stati disaccoppiati dagli strumenti della piattaforma SDK di Android, in modo che gli strumenti di compilazione possano essere aggiornati indipendentemente dai componenti dell'ambiente di sviluppo integrato (IDE).
  • Gli strumenti della piattaforma SDK Android sono personalizzati per supportare le funzionalità dell'ultima piattaforma Android. Sono compatibili con le versioni precedenti in modo da poter utilizzare sempre l'ultimo aggiornamento degli strumenti della piattaforma SDK di Android anche se la tua app è destinata a piattaforme Android meno recenti .
  • Gli strumenti SDK sono indipendenti dalla piattaforma e sono richiesti indipendentemente dalla piattaforma Android su cui stai sviluppando.

Non capisco ancora la logica di estrarre gli strumenti di build dell'SDK Android dagli strumenti della piattaforma SDK di Android che ha una singola istanza ed è facile da gestire l'aggiornamento. L'unica ragione possibile che mi viene in mente è che alcune app devono fare affidamento su componenti di build precedenti per costruirle. Il documento di Google menziona questo, ma non spiega perché. Osservando le note di rilascio, noterai che gli aggiornamenti di Android SDK Build-tools servono principalmente per correggere bug o / aggiungere supporto per nuove piattaforme. L'unico motivo per cui riesco a pensare ad alcune app di utilizzare versioni precedenti di Android SDK Build-tools è che si basano su alcuni bug di Android SDK Build-tools. Queste app non funzionerebbero normalmente senza essere costruite con questi bug. Vorrei che Google potesse spiegarlo meglio dando uno o due esempi che mostrano perché questi bug negli strumenti sono fondamentali per alcune app.

Risposte:


88

Circa la versione di Android SDK Build-tools , la risposta è

Per impostazione predefinita, l'SDK di Android utilizza la versione scaricata più recente di Build Tools.

fonte

In Eclipse, puoi scegliere una versione specifica usando la sdk.buildtoolsproprietà nel project.propertiesfile.

Sembra che non ci sia una pagina ufficiale che spieghi tutti gli strumenti di costruzione. Ecco cosa dice il team di Android al riguardo.

Gli strumenti [build], come aidl, aapt, dexdump e dx, vengono in genere chiamati dagli strumenti di creazione Android o dagli strumenti di sviluppo Android (ADT), quindi raramente è necessario richiamare direttamente questi strumenti. Come regola generale, è necessario fare affidamento sugli strumenti di compilazione o sul plug-in ADT per chiamarli secondo necessità.

fonte

Ad ogni modo, ecco una sintesi delle differenze tra strumenti, strumenti di piattaforma e strumenti di costruzione:

  • Strumenti SDK per Android
    • Posizione: $ANDROID_HOME/tools
    • Strumenti principali: script di formiche (per creare i tuoi APK) e ddms(per il debug)
  • Strumenti della piattaforma SDK Android
    • Posizione: $ANDROID_HOME/platform-tools
    • Strumento principale: adb(per gestire lo stato di un emulatore o di un dispositivo Android)
  • Strumenti di sviluppo SDK per Android
    • Posizione: $ANDROID_HOME/build-tools/$VERSION/
    • Documentazione
    • Strumenti principali: aapt(per generare R.java e APK non allineati, non firmati), dx(per convertire il codice byte Java in codice secondario Dalvik) e zipalign(per ottimizzare i tuoi APK)

Sono davvero contento che ci sia un registro delle modifiche per diverse versioni degli strumenti di compilazione
Ewoks,

@lacton Ho usato il vecchio strumento di compilazione (versione 17) per il mio progetto. Posso ricostruirlo con l'ultimo strumento di costruzione?
user1156041

Possiamo usare gli stessi strumenti sdk + build per eclipse e studio?
Muhammad Babar,

38

Gli strumenti di generazione dell'SDK Android vengono utilizzati per eseguire il debug, la creazione, l'esecuzione e il test di un'applicazione Android.

Android Build Tools può essere utilizzato per sviluppare e lavorare dalla riga di comando o IDE (ad esempio Eclipse o Android Studio).

Utilizzato anche per connettere dispositivi Android e eseguirne il root (avvio veloce, adb e altro ancora)

Usa sempre le ultime. (Consigliato)

Ulteriori informazioni sugli strumenti e i comandi di Android Build


Grazie per le informazioni. Vuoi dire che Android Build Tools è "utilizzato per connettere dispositivi Android e eseguirne il root"? adbis una parte degli strumenti della piattaforma Android. Adb dipende da Android Build Tools per funzionare? Se é cosi, come? Io sono curioso.
Hong

adb può essere utilizzato per eseguire il push e il pull dei file dalla riga di comando. (Altre funzionalità.) Fastboot può essere utilizzato per eseguire il boot loader personalizzato. Tuttavia, questi comandi non sono utili per lo sviluppo di Android se non si utilizza il terminale per lo sviluppo. Tutto è disponibile nell'IDE stesso.
mipreamble

1
La mia comprensione è che Eclipse utilizza adb.exe in background.
Hong

@mipreamble quindi qual è la differenza tra Android SDK: strumenti, strumenti di piattaforma e strumenti di build? Posso creare ed eseguire la mia app senza strumenti di compilazione.
Kreker

1
@CJBS Sì. Attenersi agli strumenti impostati per una versione funzionerà. Gli strumenti di costruzione vengono aggiornati quando arriva la nuova versione di Android. Dovresti compilare e testare l'applicazione per le ultime versioni di Android.
mipreamble

16

Lascerò la discussione sulla differenza tra Strumenti di costruzione, Strumenti di piattaforma e Strumenti per gli altri. Da un punto di vista pratico, devi solo conoscere la risposta alla tua seconda domanda:

Quale versione dovrebbe essere usata?

Risposta: usa la versione più recente.

Per coloro che utilizzano Android Studio con Gradle, buildToolsVersionè necessario impostare il file build.gradle(Modulo: app).

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

Dove trovo il numero di versione più recente di Build Tools?

Apri Gestione SDK Android.

  • In Android Studio vai su Strumenti > Android > Gestione SDK > Aspetto e comportamento > Impostazioni di sistema > SDK Android
  • Scegli la scheda Strumenti SDK .
  • Seleziona Strumenti di generazione SDK Android dall'elenco
  • Controlla Mostra dettagli pacchetto .

L'ultimo elemento mostrerà la versione più recente.

inserisci qui la descrizione dell'immagine

Assicurarsi che sia installato e quindi scrivere quel numero come buildToolsVersionin build.gradle(Modulo: app).


1
Se è disponibile 24.0.2, perché 24.0.1 e 24 non sono contrassegnati come obsoleti (il gestore autonomo consente di mostrare / nascondere i pacchetti obsoleti)?
user1803551

3
@ user1803551, non è sempre consigliabile utilizzare automaticamente la versione più recente degli strumenti di compilazione. Ad esempio, supponiamo che tu abbia già testato a fondo la tua app con una particolare versione degli strumenti di build. Se aggiorni i tuoi strumenti di compilazione, è possibile che una modifica possa interrompere qualcosa nella tua app. Consentire agli sviluppatori di continuare a utilizzare le versioni precedenti degli strumenti di build consente loro di essere sicuri che la loro build continuerà a funzionare come previsto. Se osservi lo schema di ciò che viene dichiarato obsoleto, puoi vedere che 24 e 24.0.1 alla fine verranno dichiarati obsoleti.
Suragch,

13

Puoi trovare dettagli a riguardo in questo Android - Strumenti da riga di comando


tl; dr:

Strumenti SDK:

  1. Gestione SDK Android (sdkmanager)
  2. AVD Manager (avdmanager)
  3. Dalvik Debug Monitor Server (ddms)

Strumenti di costruzione:

  1. firmatario
  2. Proguard
  3. Zipalign
  4. Jobb

Strumenti della piattaforma:

  1. adb
  2. aidl, aapt, dexdump e dx
  3. BMGR
  4. logcat

1
aidl, aapt, dexdump e dx sono componenti degli strumenti di costruzione e non degli strumenti della piattaforma
Masum,

9

La risposta giusta è

Separato i componenti specifici di build dell'SDK Android dal componente strumenti di piattaforma, in modo che gli strumenti di compilazione possano essere aggiornati indipendentemente dai componenti dell'ambiente di sviluppo integrato (IDE).

link (espandi Revisione 17)


4
Grazie per l'informazione. Se le versioni più recenti sono solo versioni precedenti migliorate, perché Google non ha solo uno strumento di build e continua ad aggiornarlo come strumenti SDK e strumenti di piattaforma? In altre parole, qual è il motivo per avere versioni precedenti lì?
Hong

2
Ho appena provato a votare questa risposta, ma risulta che l'ho già votata l'anno scorso! @Hong, mantengono i vecchi strumenti di compilazione perché quando aggiornano gli strumenti, alcune funzionalità diventano obsolete. Ma gli sviluppatori di app potrebbero avere un codice sorgente che si basa su tali funzionalità in modo da mantenere disponibili le vecchie versioni per supportare quelle vecchie basi di codice.
mateor

1
In questo caso, dovrebbero avere un elenco di funzionalità obsolete in modo che gli sviluppatori possano sapere esattamente se devono ancora utilizzare le versioni precedenti?
Hong

@Hong: Questa è esattamente la domanda che stavo cercando. Ora ... via per trovare una risposta :)
DerpyNerd

2

Gli strumenti di costruzione dell'SDK per Android sono esattamente come dicono il nome; strumenti per la creazione di applicazioni Android. È molto importante utilizzare la versione più recente degli strumenti di compilazione (selezionata automaticamente dall'IDE tramite l'SDK di Android), ma il motivo per cui le vecchie versioni sono lasciate lì è per supportare la compatibilità con le versioni precedenti, ovvero se i progetti dipendono da versioni precedenti di Build Tools.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.