2011-11-09 42 views
12

我打算构建一个用于将Android构建部署到各种设备的自动化系统,以便使多平台的开发更加舒适。有没有办法通过android外壳或adb获得连接设备的sdk版本?从命令行获取设备的Android SDK版本

将会有一台计算机与多台测试设备连接,并且我打算编写一个脚本,为构建服务器中的每个设备获取正确的版本,在各自的设备上安装不同的apks,启动它们并收集日志信息,通过其他规范旁边的其他程序提供。

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

+1

感谢Tim和Tor-Morten;对于迟到的回复感到抱歉,几周来一直很忙碌。 ro.build.version.sdk适合我的需求就好:) Tim获得接受,因为他的措辞更适合从脚本运行以获得价值。 – Arild

回答

26

你可以使用这个命令:由亚行访问设备

ro.build.version.sdk=10 

最良好的祝愿, 添

+2

一些较旧的android手机没有“grep”,但你可以这样做:'''adb shell cat system/build.prop | grep ro.build.version.sdk =''' –

+0

@AlexFlint:他们没有grep,但我可以使用'... | grep ...'? –

3

我想你可以:

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

它会输出这样的事情shell - 更改目录以将您定位在系统上并执行build.prop。这里你会发现,例如,ro.build.description = google_sdk-eng 2.2,ro.build.version.release = 2.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

11
adb shell getprop ro.build.version.sdk 

注@Tim:这个工程即使在手机没有grep支持所有主机操作系统:-)。 (即在toolbox不支持grep的旧手机上,您需要在手机上有busybox)。