我计划构建一个自动化系统,用于将Android版本部署到各种设备,以便让多个平台的开发更加舒适。有没有办法通过android shell或adb获取连接设备的sdk版本?
将有一台计算机连接多个测试设备,我计划编写一个脚本,从构建服务器获取每个测试设备的正确版本,在各自的设备上安装不同的apks,启动他们收集日志信息,通过其他一些规格不合适的程序提供。
关键是我需要知道每个设备运行的sdk版本才能安装正确的apk,我希望我能通过adb获得这个,但我似乎无法找到一种方法来访问它构建一个小应用程序,与所有版本兼容,其唯一目的是输出android.os.Build.VERSION.SDK或类似的地方,我的脚本可以读取它。
答案 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等