2011-11-09 18 views
12

Estoy planeando construir un sistema automatizado para implementar una compilación de Android en varios dispositivos, a fin de hacer que el desarrollo para múltiples plataformas sea un poco más cómodo. ¿Hay alguna forma de obtener la versión sdk de un dispositivo conectado a través de Android shell o adb?Obteniendo la versión de Android SDK de un dispositivo desde la línea de comando

Habrá una computadora a la que están conectados varios dispositivos de prueba, y estaba planeando escribir un script que buscará la compilación correcta para cada uno desde un servidor de compilación, instalará los diferentes apk en sus respectivos dispositivos, láncelos y recopile información de registro, para que esté disponible a través de algún otro programa cuyas especificaciones estén al margen.

El punto es que necesito saber la versión sdk que cada dispositivo está ejecutando para instalar la aplicación correcta, y esperaba poder obtener esto a través de adb, pero parece que no puedo encontrar una manera de acceder a ella breve de construir una pequeña aplicación, compatible con todas las versiones, cuyo único propósito sería producir android.os.Build.VERSION.SDK o similar en alguna parte mi script podría leerlo.

+1

Gracias tanto a Tim como a Tor-Morten; perdón por la respuesta tardía, ha sido agitado durante algunas semanas. ro.build.version.sdk satisfizo mis necesidades :) Tim consigue la aceptación porque su redacción era más adecuada para ejecutar desde un script para obtener el valor. – Arild

Respuesta

26

puede utilizar este comando:

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

Será seria algo como esto:

ro.build.version.sdk=10 

mejores deseos, Tim

+2

Algunos teléfonos Android viejos no tienen "grep", pero puedes hacer esto en su lugar: '' 'adb shell cat system/build.prop | grep ro.build.version.sdk = '' ' –

+0

@AlexFlint: no tienen grep pero puedo usar' ... | grep ... '? –

3

creo que se puede accediendo al dispositivo con adb shell: cambia los directorios para posicionarte en el sistema y haz un cat de build.prop. Aquí encontrará, por ejemplo, ro.build.description = google_sdk-eng 2.2, ro.build.version.release = 2.2 etc

5

También descubrí una manera de obtener la versión exacta de Android, p. 4.2.2 basado en el siguiente artículo web http://xayon.net/looking-for-android-version-with-adb/ Debe utilizar un sistema operativo similar a Unix: Linux y Mac OSX están bien, y los usuarios de Windows pueden usar cygwin o equivalente.

En una línea de comandos:

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

Este es el resultado de mi Nexus 4:

version= 4.2.2

11
adb shell getprop ro.build.version.sdk 

Nota @Tim: esto funciona incluso en los teléfonos sin grep soporte en todos los sistemas operativos host :-). (es decir, en teléfonos antiguos donde toolbox no es compatible con grep, debe tener busybox en su teléfono).

Cuestiones relacionadas