从命令行获取设备的Android SDK版本

时间:2011-11-09 10:15:19

标签: android shell sdk version

我计划构建一个自动化系统,用于将Android版本部署到各种设备,以便让多个平台的开发更加舒适。有没有办法通过android shell或adb获取连接设备的sdk版本?

将有一台计算机连接多个测试设备,我计划编写一个脚本,从构建服务器获取每个测试设备的正确版本,在各自的设备上安装不同的apks,启动他们收集日志信息,通过其他一些规格不合适的程序提供。

关键是我需要知道每个设备运行的sdk版本才能安装正确的apk,我希望我能通过adb获得这个,但我似乎无法找到一种方法来访问它构建一个小应用程序,与所有版本兼容,其唯一目的是输出android.os.Build.VERSION.SDK或类似的地方,我的脚本可以读取它。

4 个答案:

答案 0 :(得分:27)

您可以使用此命令:

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

它将输出如下内容:

ro.build.version.sdk=10

祝福, 添

答案 1 :(得分:12)

adb shell getprop ro.build.version.sdk

注意@Tim:即使在所有主机操作系统上都没有grep支持的手机上也能正常工作:-)。 (即在toolbox不支持grep的旧手机上,您需要在手机上设置busybox

答案 2 :(得分:5)

我还发现了一种获取Android确切版本的方法,例如4.2.2基于以下网络文章http://xayon.net/looking-for-android-version-with-adb/你需要使用类似unix的操作系统 - Linux和Mac OSX都可以,windows用户可以使用cygwin或同等的。

在命令行:

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

以下是我的Nexus 4的结果:

version= 4.2.2

答案 3 :(得分:3)

我认为您可以通过adb shell访问设​​备 - 更改目录以将您定位到系统并执行build.prop的cat。例如,你会发现ro.build.description = google_sdk-eng 2.2,ro.build.version.release = 2.2等