一角獣は夜に啼く

ただの日記です。

思ってることとか考えたこととか適当に書きます。 主にソフトウェア開発の話題を扱う 「ひだまりソケットは壊れない」 というブログもやってます。

Android エミュレータでトラックボールを使う

開発中の Android アプリでトラックボールを使った時の挙動を見たかったので、Android SDK に含まれている Android エミュレータトラックボールを使ってみようとして調べてみました。

Emulated Device Key Keyboard Key
Toggle trackball mode F6
Enter trackball mode temporarily (while key is pressed) Delete
Android Emulator | Android Developers

ヘルプドキュメントには上のように書かれていて、F6 キーを押すことでトラックボールモードに入ることができるようです。 また、Delete キーを押しっぱなしにすると、その間だけトラックボールモードになるようです。

というわけで、実際に Android エミュレータを起動して F6 を押すとエミュレータのタイトル部分に 「Press F6 to leave trackball mode.」 と出て、それっぽい感じになったのですが全然トラックボール操作ができない! なんで! ってことでちょっと悩んでました。

Android エミュレータトラックボールを使えるようにするには

そもそも、使用している Android エミュレータトラックボールが有効になっていなかったので使えなかったのでした。

Android 仮想デバイス (Android Virtual Devices; AVD) のドキュメントには次のように書かれているのですが、今はデフォルトで 「hw.trackBall」 の値は 「no」 になっているぽいですね。 (私の環境がおかしいのかも??)

Characteristic Description Property
Trackball support Whether there is a trackball on the device. Default value is "yes". hw.trackBall
Managing AVDs with AVD Manager | Android Developers

今の AVD Manager だと、ハードウェアプロパティを GUI 上で操作できないぽいので、設定ファイルを直接書きかえて、「hw.trackBall=yes」 にすることでトラックボールを使えるようになりました。

設定ファイルは、デフォルトではユーザーディレクトリ中の .android/avd/{AVD 名}.ini の中の path プロパティで指定されているディレクトリの中にある config.ini ファイルです。 (通常は .android/avd/{AVD 名}.avd/config.ini というパスになると思います。)

サンプル画像

Android エミュレータトラックボールモードに入ると、次の画像のように、エミュレータの左上にトラックボールが表示され、マウスの動きに合わせてトラックボールを回転させられます。

f:id:nobuoka:20140416012141p:plain