Android
android開発
AndroidCTS

WindowsでAndroid CTSの実施方法

Android CTSのエラー解析をするにあたり、
Android CTSを動かす必要があったため設定方法のメモ。

Compatibility Test Suiteには、
下記のように記載されています。

Caution: CTS currently supports 64-bit Linux and Mac OS host machines. CTS will not work on Windows OS.

Google翻訳さんは、CTSは現在64ビットのLinuxおよびMac OSホストマシンをサポートしています。 CTSはWindows OSでは機能しません。
と書かれているため、私もMac OSのPCを用意してとは言いませんがLinux PCを使用したいと言うともちろん応えはNO!
Windowsでも頑張れば動くはずだから...と言われました。

てな事でWindowsでCTSを動かすための試行錯誤の共有です。

1.Cygwinのインストール

CygwinからCygwinをインストールします。

2.JAVAのインストール

JAVAのダウンロードとインストール

3.Android Studioのインストール

Android Studio のインストールを参照

4.CTSのダウンロードと解凍

Compatibility Test Suite Downloadsから対象のCTSをダウンロードして任意の場所に解凍する

この状態で実行すると

$ ./android-cts/tools/cts-tradefed run cts

上手く動きません。

5.Cygwinでjavaを使う

Cygwinでjavaが上手く動かないようなのでCygwinでJavaを動かすように設定を行う。
MSYSやCygwinでjavaを使うを参照してください。

この状態で実行すると

$ ./android-cts/tools/cts-tradefed run cts
$ Unrecognized OS

上手く動きません。

6.android-cts/tools/cts-tradefedの修正

修正1

# get OS
HOST=`uname`
if [ "$HOST" == "Linux" ]; then
    OS="linux-x86"
elif [ "$HOST" == "Darwin" ]; then
    OS="darwin-x86"
else
    echo "Unrecognized OS"
    #exit(※Windowではexitするためコメントアウト)
fi

修正2

# load any shared libraries for host-side executables
LIB_DIR=${CTS_ROOT}/android-cts/lib
if [ "$HOST" == "Linux" ]; then
    LD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH
elif [ "$HOST" == "Darwin" ]; then
    DYLD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${DYLD_LIBRARY_PATH}
    export DYLD_LIBRARY_PATH
### ここから Windows(Cygwin上)でもLinuxと同じ設定をしたいためLD_LIBRARY_PATHを設定する
else
    LD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH
### ここまで
fi

この状態で実行すると

$ ./android-cts/tools/cts-tradefed run cts
$  Root directory doesn't exist C:\cygdrive\c\cygwin64\......

上手く動きません。

7.CTSの解凍環境の変更

どうもCドライブなどにあると上手く動かないようだ。そのためネットワーク上のフォルダなどに移動する必要がある。
もっとも簡単な方法は解凍したフォルダを共有設定する。
共有設定を行うとフォルダのプロパティでネットワークパスが表示されます。

ネットワーク上で実行すると

$ cd \\MyPcName\android-cts-9.0_r5-linux_x86-arm
$ ./android-cts/tools/cts-tradefed run cts

やっと動くようです。

その他

サポートされていないものでどうにか動かす会社より適切な環境を用意してくれる所で働くのが良いと思います。