【问题标题】:Getting Android SDK version of a device from command line从命令行获取设备的 Android SDK 版本
【发布时间】:2011-12-25 04:40:59
【问题描述】:

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

将有一台连接了多个测试设备的计算机,我打算编写一个脚本,该脚本将从构建服务器中为每个测试设备获取正确的构建,在各自的设备上安装不同的 apk,启动他们并收集日志信息,以便通过其他一些其规范无关紧要的程序提供。

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

【问题讨论】:

  • 感谢 Tim 和 Tor-Morten;很抱歉回复晚了,这几周一直很忙。 ro.build.version.sdk 非常适合我的需要 :) Tim 得到了接受,因为他的措辞更适合从脚本运行以获取价值。

标签: android shell sdk version


【解决方案1】:

你可以使用这个命令:

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

它会输出如下内容:

ro.build.version.sdk=10

【讨论】:

  • 一些较旧的安卓手机没有“grep”,但你可以这样做:adb shell cat system/build.prop | grep ro.build.version.sdk=
  • @AlexFlint:他们没有 grep 但我可以使用 ... | grep ...?
  • @ThomasWeller 区别在于是在设备上还是在您的计算机上运行 grep 命令。
【解决方案2】:
adb shell getprop ro.build.version.sdk

注意@Tim:这甚至适用于所有主机操作系统上不支持grep 的手机:-)。 (即在toolbox 不支持grep 的旧手机上,您需要在手机上使用busybox)。

【讨论】:

  • 如果你碰巧在运行模拟器和物理设备,你可以使用adb devices,然后在上面的命令中使用序列号。即adb -s [yourSerial] shell getprop ro.build.version.sdk
  • @Kelton.Temby 是的,我经常使用-s serial,因为我经常连接不止一部手机。还可以使用ANDROID_SERIAL 指定手机序列号。
【解决方案3】:

我还发现了一种获取确切版本的 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

【讨论】:

    【解决方案4】:

    我认为您可以通过使用 adb shell 访问设备 - 更改目录以将您定位在系统中并执行 build.prop 的猫。例如,您会在此处找到 ro.build.description=google_sdk-eng 2.2、ro.build.version.release=2.2 等

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 2011-11-23
      • 2021-09-10
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多