サイトのトップへ戻る

Android Studio ドキュメント 日本語訳

サイト内検索

MonkeyDevice

monkeyrunner クラスは、monkeyrunnerを実行している開発機からアクセスできる端末やエミュレーターを表します。

このクラスは、Android 端末もしくはエミュレーターを制御するのに使用されます。 このメソッドでは、UIイベントの送信、情報の取得、アプリケーションのインストールと削除、アプリケーションの実行を行います。

通常は、 MonkeyDeviceのインスタンスを作成する必要はありません。 その代わりに、 MonkeyRunner.waitForConnection()を使って、端末もしくはエミュレーターとの接続から新規オブジェクトを作成します。 例えば、以下を使用するのではなく:

newdevice = MonkeyDevice()

以下を使用します。:

newdevice = MonkeyRunner.waitForConnection()


概要

定数
string DOWN これをpress()touch()の引数typeと一緒に使って DOWN イベントを送信します。
string UP これをpress()touch()の引数type と一緒に使って UP イベントを送信します。
string DOWN_AND_UP これをpress()touch()の引数typeと一緒に使って DOWN イベントを送信してそのすぐ後に UP イベントを送信します。


メソッド
void broadcastIntent (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
まるでアプリケーションから送られてきたかのように、インテントをこの端末へブロードキャストします。
void drag (tuple start, tuple end, float duration, integer steps)
端末の画面上でのドラッグジェスチャー(タッチとホールドと移動)を再現します。
object getProperty (string key)
システム環境変数を指定すると、端末におけるその変数の値を戻り値として返します。 使用可能な変数は、このメソッドの詳細説明 に一覧表記されています。
object getSystemProperty (string key)
このAPI は adb shell getprop <key>と同じ動作をします。これはプラットフォーム開発者が使用するために用意されたものです。
void installPackage (string path)
パッケージファイル内のAndroid アプリケーションやテストパッケージをこの端末にインストールします。 そのアプリケーションやテストパッケージが既にインストールされていた場合、それと置き換えます。
dictionary instrument (string className, dictionary args)
Android インストルメンテーションで指定したコンポーネントを実行します。 そして実行されたコンポーネントが出力した正確な形式のディクショナリ型データを結果として返します。 コンポーネントはこの端末上に既に存在している必要があります。
void press (string name, dictionary type)
typeで指定されたキーイベントをkeycodeで指定されたキーへ送信します。
void reboot (string into)
この端末をbootloadTypeで指定したブートローダーに再起動します。
void removePackage (string package)
指定したパッケージを(そのデータとキャッシュも含めて)この端末から削除します。
object shell (string cmd)
adbシェルコマンドを実行し、結果があればそれを返します。
void startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
渡された引数から作成したインテントを送信することで、この端末上でアクティビティを起動します。
MonkeyImage takeSnapshot()
現在表示されているスクリーンのキャプチャを含んだMonkeyImageオブジェクトを取得し、この端末の全画面バッファをキャプチャします。
void touch (integer x, integer y, integer type)
type で設定したタッチイベントを、xとyで指定した画面位置へ送信します。
void type (string message)
まるで端末上のキーボードから入力されたかのように、message 内に含まれている文字をこの端末へ送信します。 これは、キーイベントタイプDOWN_AND_UPを使って、message内の各キーコードのpress() を呼び出すのと同じ動きをします。
void wake ()
この端末の画面をWake状態にします。


定数

string DOWN

press() or touch() value. キーの押下や画面のタッチに対応して、DOWN イベントタイプが端末に送信されるよう設定します。

string UP

press() or touch() value. キーを解放したり画面から指を離したのに対応して、UP イベントタイプが端末に送信されるよう設定します。

string DOWN_AND_UP

press(), touch() or type() value. キーの入力や画面のクリックに対応して、DOWN イベントタイプに続いてUP イベントタイプが端末に送信されるように設定します。



Public メソッド

void broadcastIntent ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)

まるでアプリケーションから送られてきたかのように、インテントをこの端末へブロードキャストします。 引数に関する詳細はIntent を参照してください。

引数
uri インテントの URI。 (詳細は Intent.setData()を参照してください)。
action このインテントのアクション (詳細はIntent.setAction()を参照してください)。
data このインテントのデータ URI (詳細は Intent.setData()を参照してください)。
mimetype このインテントの MIME タイプ (詳細は Intent.setType()を参照してください)。
categories このインテントのカテゴリを定義する文字列を含んだ、イテラブルデータ構造 (詳細はIntent.addCategory()を参照してください)。
extras このインテントの追加データのディクショナリ型 (例についてはIntent.putExtra()を参照してください)。

各ディクショナリ項目のキーは string型でなければなりません。 項目の値は、単純なデータ型もしくは構造化されたデータ型にすることができます。

component このインテントのコンポーネント (詳細はComponentNameを参照してください)。この引数を使うことで、このインテントを特定のAndroid パッケージ内の特定のクラスへ誘導できます。
flags このインテントをどのように制御するか表すフラグを含んだ、イテラブルデータ構造 (詳細は Intent.setFlags()を参照してください)。

void drag ( tuple start, tuple end, float duration, integer steps)

端末の画面上でのドラッグジェスチャー(タッチとホールドと移動)を再現します。

引数
start ドラッグジェスチャーの開始点。 (x,y)のタプル形式。 x と y は 数値型
end ドラッグジェスチャーの終点。 (x,y)のタプル形式。 x と y は 数値型
duration ドラッグジェスチャーの秒単位での継続時間。既定値は 1.0 秒。
steps 点と点の間を補完するのに必要なステップ数。既定値は 10。

object getProperty (string key)

システム環境変数を指定すると、端末におけるその変数の値が戻り値として返します。

引数
key システム環境変数の名前。使用可能な変数名は、このページの最後にある表 1. プロパティ変数名で一覧にしています。

戻り値
  • 変数の値。データ形式は要求された変数によって変わります。

object getSystemProperty (string key)

getProperty()と同じものです。

引数
key システム環境変数の名前。 使用可能な変数名は、このページの最後にある表 1. プロパティ変数名で一覧にしています。

戻り値
  • 変数の値。データ形式は要求された変数によって変わります。

void installPackage (string path)

パッケージファイル内のAndroid アプリケーションやテストパッケージをこの端末にインストールします。 そのアプリケーションやテストパッケージが既にインストールされていた場合、それと置き換えます。

引数
path インストールする.apkファイルの完全修飾パスとファイル名。

dictionary instrument ( string className, dictionary args)

Android インストルメンテーションで指定したコンポーネントを実行します。 そして実行されたコンポーネントが出力した正確な形式のディクショナリ型データを結果として返します。 コンポーネントはこの端末上に既に存在している必要があります。

このメソッドを使って、Androidのテストケースクラスを使ったテストケースを開始します。 Android テストフレームワークを使ったユニットテストについてより深く学ぶにはテストの基礎を参照してください。

引数
className この端末に既にインストールされている Android コンポーネントの名前。標準形式のパッケージ名/クラス名です。 パッケージ名の部分には、この端末上の .apkファイルのAndroid パッケージ名が入り、クラス名の部分にはそのファイルでのAndroid コンポーネント(ActivityやContentProviderや Serviceや BroadcastReceiver)のクラス名が入ります。 パッケージ名とクラス名は両方とも完全修飾にする必要があります。 詳細については ComponentName を参照してください。
args フラグとその値を含んだ、ディクショナリ型。これらは起動時にコンポーネントに渡されます。フラグに値が設定されなかった場合、ディクショナリ型の値の部分には空の文字列が入ります。

戻り値
  • コンポーネントの出力結果を含んだディクショナリ型。ディクショナリ型の中身は、コンポーネント自身によって定義されます。

    引数のクラス名としてInstrumentationTestRunner を使用した場合、 結果のディクショナリ型には一つのキー"stream"が含まれます。 "stream" の値は、テストの結果を含んだ 文字列 になります。 このテスト結果は、コマンドラインからInstrumentationTestRunnerを実行した時と同じものになります。 この出力形式については 別のIDEでテストするで説明されています。

void press (string name, integer type)

typeで指定されたキーイベントをkeycodeで指定されたキーへ送信します。

引数
name 送信するキーコードの名前。キーコード名の一覧についてはKeyEvent を参照してください。対応する整数値ではなくキーコード名自身を使います。
type 送信するキーイベントのタイプ。 使用できる値は DOWNUPDOWN_AND_UPです。

void reboot (string bootloadType)

この端末をbootloadTypeで指定したブートローダーに再起動します。

引数
into 再起動するブートローダーのタイプ。使用できる値は"bootloader"や "recovery"や "None"です。

void removePackage (string package)

指定したパッケージを(そのデータとキャッシュも含めて)この端末から削除します。

引数
package この端末にインストールされている.apk ファイルの Android パッケージ名。

object shell (string cmd)

adb シェルコマンドを実行し、結果があればそれを返します。

引数
cmd adb シェルで実行するコマンド。このコマンドの形式については、 Android Debug Bridgeのページで説明されています。

戻り値
  • 結果があれば、コマンドの結果。この結果の形式は、コマンドごとに定義されています。

void startActivity ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)

渡された引数から作成したインテントを送信することで、この端末上でアクティビティを起動します。

引数
uri このインテントの URI 。 (詳細はIntent.setData()を参照してください)。
action このインテントのアクション (詳細はIntent.setAction()を参照してください)。
data このインテントのデータ URI (詳細はIntent.setData()を参照してください)。
mimetype このインテントのMIME タイプ (詳細は Intent.setType()を参照してください)。
categories インテントのカテゴリーを定義する文字列を含んだ、イテラブルデータ構造 (詳細は Intent.addCategory()を参照してください)。
extras このインテントの追加データのディクショナリ型 (例については Intent.putExtra() を参照してください)。

各ディクショナリ項目のキーは string型でなければなりません。 項目の値は、単純なデータ型もしくは構造化されたデータ型にすることができます。

component このインテントのコンポーネント (詳細は ComponentNameを参照してください)。この引数を使うことで、このインテントを特定のAndroid パッケージ内の特定のクラスへ誘導できます。
flags このインテントをどのように制御するか表すフラグを含んだ、イテラブルデータ構造 (詳細は Intent.setFlags()を参照してください)。

MonkeyImage takeSnapshot ()

現在表示されているスクリーンのキャプチャを取得し、この端末の全画面バッファをキャプチャします。

戻り値
  • 現在表示されている画面画像を含んだ MonkeyImage オブジェクト。

void touch ( integer x, integer y, string type)

type で設定したタッチイベントを、xとyで指定した画面位置へ送信します。

引数
x タッチの水平方向の位置を、実際の端末上でのピクセルで指定したもの。 画面の左側が座標の開始点となります。
y タッチの垂直方向の位置を、実際の端末上でのピクセルで指定したもの。 画面の上側が座標の開始点となります。
type 送信するキーイベントのタイプ。使用できる値は、 DOWNUPDOWN_AND_UPです。

void type (string message)

まるで端末上のキーボードから入力されたかのように、message 内に含まれている文字をこの端末へ送信します。 これは、キーイベントタイプDOWN_AND_UPを使って、message内の各キーコードのpress() を呼び出すのと同じ動きをします。

引数
message 送信する文字を含んだ文字列。

void wake ()

この端末の画面をWake状態にします。



付録

表1. getProperty()getSystemProperty()で使用されるプロパティ変数名。

プロパティグループ プロパティ 説明 メモ
build board 端末のシステムボードのコード名 詳細は Buildを参照してください。
brand カスタマイズされているOSのキャリアまたはプロバイダー。
device 端末のデザイン名。
fingerprint 現在実行しているビルドの重複のない識別子。
host
ID チェンジリストの番号またはラベル。
model エンドユーザーに表示される端末名。
product 一般的な製品名。
tags "unsigned" や"debug"のようなビルドを記述するタグの、コンマ区切り一覧
type "user" や"eng"のようなビルドタイプ。
user
CPU_ABI ネイティブコード命令セットの名前(CPUタイプとABI規則を合わせた形式)。
manufacturer 製品/ハードウェアの製造元。
version.incremental このバージョンのソフトウェアを表すためにソース管理システムによって使用される内部コード。
version.release ユーザーに表示される、このバージョンのソフトウェアの名前。
version.sdk ユーザーに表示される 、このバージョンのOSに関連付けられているSDK バージョン。
version.codename 現在の開発コード名。もしくは、このバージョンのソフトウェアがリリースされている場合は "REL" 。
display width この端末のピクセル単位での表示横幅。 詳細は DisplayMetricsを参照してください。
height この端末のピクセル単位での表示縦幅。
density ディスプレイの論理密度。これはDIP (Density-Independent Pixel)単位を端末の解像度に合わせるために使用されます。 DIP は、 1 DIP が 160 ppi ディスプレイ上での1ピクセルと等しくなるように調整されます。 例えば、160-dpiの画面では density = 1.0に、一方 120-dpi の画面では density = .75となります。

この値は実際の画面サイズを正確に反映しているわけではありませんが、ディスプレイDPIのサイズ変化に合わせて調節されます。 詳細についてはdensityを参照してください。

am.current package 現在実行されているパッケージのAndroid パッケージ名。 am.current キーは、現在実行されているアクティビティに関する情報を戻り値として返します。
action 現在のアクティビティのアクション。これは、パッケージのマニフェストに記述されているaction要素のname属性と同じ形式です。
comp.class 現在のアクティビティを起動したコンポーネントのクラス名。詳細についてはcomp.package を参照してください。
comp.package 現在のアクティビティを起動したコンポーネントのパッケージ名。コンポーネントは、パッケージ名とパッケージに含まれるクラスの名前によって指定されます。
data 現在のアクティビティを起動したインテント内に含まれてるデータ(データが存在する場合)。
categories 現在のアクティビティを起動したインテントによって指定されたカテゴリー。
clock realtime 端末を再起動してからのミリ秒単位経過時間(ディープスリープ時間も含む)。 詳細については SystemClock を参照してください。
uptime 端末を再起動してからのミリ秒単位経過時間(ディープスリープ時間は含まない)。
millis 現在の UNIX 時間(ミリ秒単位)。