AndroidにはUIをテストする目的でGoogle神からUiAutomatorというツールが配布されています.API Level 17ぐらいから使えるみたいなので主にKitKat以降の対応になりそうですが.
せっかくツールがあるのだから,今回はそのツールを悪用する方法をメモっていきます.
目的
UiAutomatorの仕組みを利用してUiAutomatorをテスト以外のことに利用する.
手順
Projectの作成
Android SDKのインストールとか知りません.ググって参考にしてください.UiAutomatorのProjectは基本的にはJUnitベースになります.Java=EclipseなのでEclipseのJava Projectを作成しましょう.
- Eclipse を起動し、[File] > [New] > [Java Project] からProjectを作成する.
- 作成したProjectを右クリックし, [Build Path] -> [Add Library...] -> [JUnit]を選択, [JUnit3] を選択して終了.
- 同じく [Build Path] -> [Add External Archives..] を選択し,対象となるAndroid SDKのplatformフォルダ以下から, android.jar、uiautomator.jar を選択
API Level 16にuiautomator.jarがあったのでそこから使えるかも?
build.xmlの作成
UiAutomator用のBuildをするためにbuild.xmlを生成します.
$ cd <project path>
$ android create uitest-project -n <project name> -t <Target SDK No.> -p .
ここで,SDKのNoはAdd External Archivesで追加したNoと同じものを指定します.
Project 作って Build
とりあえず私が今回作ったソースコード置いておきます.
こいつをBuildするのですが,Eclipseからの場合, 右クリック -> [Run As] -> [Ant Build]の下の方を選択し, [build]を選択してください.そうしないとhelp が流れるだけですし.
正常に動作すれば,Project Path以下に.jarというファイルが出来上がります.
Android 端末で実行
まずは先ほど作ったjarファイルをAndroid端末に打ち込む.
$ adb -s <Device ID> shell push <Project名>.jar /data/local/tmp
その後,実行コマンドを投げる.今回は前回作ったswipe部分.
$ adb -s <Device ID> shell uiautomator runtest <Project名>.jar -c <Package名>.<Class名>#swipe -e "x" "100,200,300" -e "y" "400,500,400"
結論
Java書けなくなってる.