Nexus7でとりあえずProcessingを動かしたかった

Nexus7を入手したものの、Processingを動かすまでにウンウンいってた話。
結果として、WindowsXP 上で Processing 2.0b8 で書いて Nexus7(Android 4.3) で「とりあえず動く」ところまでいきました。Android エミュレータは動いてません。そのほかの場合どうなのかは知りません。

過去の自分と未来の誰かに向けて書きとめておきます。
(2013/8/30現在)


(A1) Android SDK のダウンロード
Android SDKここ からダウンロードする。
ADT Bundle版でOK。32bit版ならx86、64bit版ならx64をダウンロード・解凍後、インストーラを起動してお決まりの色々をこなす。その後インストールされた "SDK Manager" を起動する。

(A2) SDK をインストール
SDK Manager が起動したら、以下をインストールする。

あとついでに Android 4.3(API 18) の SDK Platform 及び Google APIs もインストールしちゃったけどたぶん関係ない。というかこの部分が割と適当で、API 7か8、もしくは10なら動くとのこと。なので全部乗せ。いささか乱暴。

ここまでは http://www.javadrive.jp/android/install/index1.html を見ながら進めました。



(P1) Processing のダウンロード
Processing IDEここ から頂いてくる。
当初は最新版の Processing2.0.2 で動かそうとしたものの、何やら機嫌が悪いらしいのでアップデート前の Processing2.0b8 で動かすことにした。ダウンロードページには過去のバージョンもちゃんとおいてある。はず。
ダウンロードしてきたら解凍して然るべきところに置いて、Processing を起動。

(P2) Android Mode のインストール
※Processing 2.0b8 なら既に Android Mode がインストールされてるのでここは飛ばしてしまってOKかも。この操作は2.0.2でなんとかしようとしてたときのものです。

起動した Processing のウィンドウ右上の [Java ▽] をクリック。
さらに [Add Mode...] をクリック。
Mode Manager が開くので、表示されている "Android Mode" を選んでインストールする。

ここで Android Mode が表示されなかった場合は Processing を再起動すると出てくるかも。

Android Mode のインストール中に "Is the Android SDK installed?" と訊かれる。
なので言う通りにさっきインストールした Android SDK がいる場所を指定してあげる。
(例: C:\androidUMAI\adt-bundle-windows-x86-20130729\sdk)

Android Mode のインストールが完了したら、ウィンドウ右上の [Java ▽] をクリックして "Android" を選べば Android Mode のはじまりはじまりだ。


(N0) Nexus7 の入手
(N1) Nexus7 の設定をいじる

設定メニュー>タブレット情報>ビルド番号 を 7回タップする。

Android 4.3 からはこの操作をしないと開発者向けオプションが表示されないようになったらしい。ぐぐるまでさっぱり分からずいちばん焦った。あの赤ら顔を何回見たことか。

設定メニュー>開発者向けオプション>USBデバッグ を有効にする。
設定メニュー>開発者向けオプション>スリープモードにしない を有効にする。
設定メニュー>セキュリティ>提供元不明のアプリ にチェックを入れる。

Processing との通信中に Nexus 7 がスリープしちゃうと面倒なことになりそうなので一応チェックをいれておくことにした。

(N2) Nexus7 の接続、ドライバ更新
Nexus7 備えつけのケーブルでUSB端子に接続する。
新しいハードウェアが云々言われるけどとりあえずキャンセルして、

システムのプロパティ>ハードウェア>デバイスマネージャ を起動

「その他のデバイス」に Nexus 7 が表示されているはずなので、プロパティを開いて全般タブからドライバの更新を行う。ここで Android SDKGoogle USB Driver があるディレクトリ (\sdk\extras\google\usb_driver) を参照させる。これでドライバ更新に必要な情報の書かれている usb_driver\android_winusb.inf が読みこまれ、Android Composite ADB Interface がインストールされる。
(N2)では ここ を参考にしていますが、Google USB Driver をインストールしたからなのか、android_winusb.inf には既に Nexus 7 のPIDとUIDが書かれていたので特に編集せずにドライバの更新を行ってしまっています。
☆★☆
これで準備はおわり。Android Mode の Processing でかんたんなスケッチを書いて(sizeは省くといい)、"Run in Device"ボタン(普段スケッチを実行するときに押しているボタン)を押すと、ややあった後に Nexus 7 で Processing が実行されている……はず。何かがおかしいと Processing のウィンドウで怒られる(だいたいの場合「デバイスが見つからない」と言われる、もしくはスケッチの文法がどこかおかしい)ので見直してなんとかしてください……
また、Run in Device を押すと、書いたスケッチが Nexus 7 に送られて残ります。サンプルスケッチをモリモリ動かすと Nexus 7 にモリモリたまっていくので適宜消すか、Javaモードでサンプルを動かすなどした方がよさそう。Android Emulator がちゃんと動いてくれれば心配ないんだけども……ウーン、少々後味が悪いのである……

(2013.09.05 追記)
なんかよくわからないけどAndroid2.0.2でも実機で動かすことができるようになってました。でもエミュレータは動かず。
☆★☆
ほかにも参考にしたのはここ
http://www2.kobe-u.ac.jp/~tnishida/course/2013/programming/android.htm