本日発表された Android Things のデベロッパー・プレビューを少しいじってみました。
https://developer.android.com/things/index.html
そもそも Android Things とは何なのか?
RaspberryPi3 などで Android App(広義)が動作します。
SDK Version は現時点で最新の 24 をサポートしているようです。
GPIO などへも当然アクセスできます。
RaspberryPi3 が手元に余っていたので動かしてみた
https://developer.android.com/things/hardware/raspberrypi.html
ここにあるとおり、SDカードにイメージを書き込むだけで起動します。
今回は有線で LAN に接続したので起動後に画面に IP アドレスが出るので、そこへ adb connect して完了です。
あとは Android Studio でいつもどおりに開発していきます。
チュートリアルを参考にしながらコードを書いていき、デバッグボタンを押すと RaspberryPi で実行が始まります。
logcat も確認できます。
何ができそうか?
ドライバーを書くことで様々な装置やセンサーを Android デバイスの各ボタンなどに割り当てていけます。
例えば GPIO に繋いだタクトスイッチをエンターキーに割り当てることもできますし、音量ボタンに割り当てたりもできます。
割り当てた後はいつもどおりに onKeyDown などのイベントハンドラでイベントを取得できるようになります。
サンプルには GPS や加速度センサーの例も用意されているので、Android デバイス用に書いたコードがそのまま活かせそうです。
https://github.com/androidthings/contrib-drivers
もちろんカメラにも対応しています。
が、現状は CSI-2 のカメラのみで、USB カメラは色々と探ったのですが接続できず。。
- /dev/video* が生えない
- dmesg 見ると SELinux 関連で弾かれているような。。
時間切れになったので深くは追いきれませんでした。
# CSI のカメラ買おう
他にもデバイスをディスプレイに繋いでいれば、setContentView(…) するだけでいつもの View が表示されます。
この辺、Android TV 用のアイデアは持っていたが開発する機会が無かった人は歓喜じゃないでしょうか。
さらに個人的に一番嬉しいのは Google Play Services にも対応しているところです。
Mobile Vision は IoT と相性が良いと思うのです。
例えば SNOW みたいな体験が屋外のサイネージで簡単にできるようになりそうな(性能足りないかな?)。
感想
今までシングルボードコンピュータを Linux サーバーとしてしか見てきませんでしたが、使い道の幅が広がった気がしますし、IoT のアプリケーション開発を新しい知識なく取り組めそうなのは助かります。
RaspberryPi2 が大量にいるのでこれらでも動作してくれたらもっと嬉しかったです。