2011-11-09 6 views
12

複数のプラットフォームの開発をより快適にするために、Androidビルドをさまざまなデバイスに展開するための自動化システムを構築する予定です。アンドロイドシェルまたはadb経由で接続されたデバイスのSDKバージョンを取得する方法はありますか?コマンドラインからAndroid SDKのバージョンを取得する

いくつかのテストデバイスが接続されているコンピュータがあります。ビルドサーバーからそれぞれの正しいビルドをフェッチし、それぞれのデバイスに異なるapkをインストールし、それらを立ち上げ、ログ情報を収集し、ポイントの横に仕様がある他のプログラムから利用できるようにする。

ポイントは、各デバイスが正しいapkをインストールするために実行しているsdkのバージョンを知る必要があることです。私はadb経由でこの問題を解決できることを期待していましたが、すべてのバージョンと互換性のある小さなアプリケーションを構築することです。その目的は、android.os.Build.VERSION.SDKなどを出力して、どこかでスクリプトが読むことができるようにすることです。

+1

TimとTor-Mortenの両方に感謝します。遅い返事を残して申し訳ありません、それは数週間忙しいです。 ro.build.version.sdkは私のニーズに合ったものでした:) Timは受け入れを得ました。なぜなら、彼のフレーズは、値を得るためにスクリプトから実行するのに適していたからです。 – Arild

答えて

26

あなたは、このコマンドを使用することができます:ADBとデバイスにアクセスすることにより、

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 

それはこのような何かを出力しますがシェル - ディレクトリを変更してシステムの位置を決め、build.propのcatを実行します。たとえば、ro.build.description = google_sdk-eng 2.2、ro.build.version.release = 2.2などがあります。

5

また、Androidの正確なバージョンを取得する方法も発見しました。 4.2.2次のWeb記事に基づいてhttp://xayon.net/looking-for-android-version-with-adb/ UNIX系のオペレーティングシステムを使用する必要があります。LinuxおよびMac OSXは問題なく、Windowsユーザーはcygwinまたは同等のものを使用できます。コマンドラインで

version= 4.2.2

11
adb shell getprop ro.build.version.sdk 

注@Tim:ここ

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

は私のNexus 4のための結果であり、これはgrepせずに携帯電話でさえも動作しますすべてのホストOSでのサポート:-) (つまり、toolboxgrepをサポートしていない古い携帯電話では、携帯電話にbusyboxが必要です)。

関連する問題