2011-11-09 4 views
12

Ho intenzione di creare un sistema automatizzato per la distribuzione di una build Android su vari dispositivi, al fine di rendere lo sviluppo per più piattaforme un po 'più comodo. C'è un modo per ottenere la versione sdk di un dispositivo connesso tramite Android Shell o ADB?Come ottenere la versione di un dispositivo Android SDK da riga di comando

Ci sarà un computer a cui sono collegati diversi dispositivi di test, e stavo progettando di scrivere uno script che recuperi la build corretta per ognuno di quelli da un build-server, installa i diversi apk sui loro rispettivi dispositivi, lanciarli e raccogliere informazioni di registro, da rendere disponibili attraverso un altro programma le cui specifiche sono accanto al punto.

Il punto è che ho bisogno di sapere la versione sdk che ogni dispositivo è in esecuzione per installare l'apk corretto, e speravo di poterlo ottenere tramite adb, ma non riesco a trovare un modo per accedervi breve di costruire una piccola app, compatibile con tutte le versioni, il cui unico scopo sarebbe quello di emettere android.os.Build.VERSION.SDK o simile da qualche parte il mio script potrebbe leggerlo.

+1

Grazie a Tim e Tor-Morten; mi dispiace per la risposta tardiva, è stato frenetico per alcune settimane. ro.build.version.sdk si adattava perfettamente alle mie esigenze :) Tim accetta l'accettazione perché il suo fraseggio era più adatto per essere eseguito da uno script per ottenere il valore. – Arild

risposta

26

è possibile utilizzare questo comando:

adb shell grep ro.build.version.sdk= system/build.prop 

Sarà uscita qualcosa di simile:

ro.build.version.sdk=10 

migliori auguri, Tim

+2

Alcuni vecchi telefoni Android non hanno "grep", ma puoi farlo invece: '' 'adb shell cat system/build.prop | grep ro.build.version.sdk = '' ' –

+0

@AlexFlint: non hanno grep ma posso usare' ... | grep ... '? –

3

penso che si può accedendo al dispositivo con adb shell - cambia directory per posizionarti sul sistema e fai un cat di build.prop. Qui troverete per esempio, ro.build.description = google_sdk-ita 2.2, ro.build.version.release = 2.2 ecc.

5

Ho anche scoperto un modo per ottenere la versione esatta di Android, ad es. 4.2.2 in base al seguente articolo web http://xayon.net/looking-for-android-version-with-adb/ È necessario utilizzare un sistema operativo simile a unix: Linux e Mac OSX funzionano correttamente e gli utenti di Windows possono utilizzare Cygwin o equivalente.

In una riga di comando:

echo version=$(adb shell getprop |awk -F":" '/build.version.release/ { print $2 }')|tr -d '[]'

Ecco il risultato per il mio Nexus 4:

version= 4.2.2

11
adb shell getprop ro.build.version.sdk 

Nota @ Tim: questo funziona anche sui telefoni senza grep supporto su tutti i SO host :-). (Ad esempio, sui vecchi telefoni dove toolbox non supporta grep è necessario avere busybox sul telefono).