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のインストール
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
やっと動くようです。
その他
サポートされていないものでどうにか動かす会社より適切な環境を用意してくれる所で働くのが良いと思います。