Android Things に入門してみる(準備編)
スポンサーリンク
Android ThingsはGoogleがAndroid OSをIoT(Internet of Things)用にカスタマイズしたOS、です。
一部機能を限定し、組み込み機器向けの制御インターフェイス用のライブラリ(Things support library他)を追加したとのこと。
今のところ、Preview版という位置付け。1〜2ヶ月ぐらいで更新されている模様。
某出版社の$10セールに敗れて本を買ってしまった結果です。お察し下さい。
- 作者: Francesco Azzola
- 出版社/メーカー: Packt Publishing
- 発売日: 2017/06/30
- メディア: Kindle版
- この商品を含むブログを見る
- Android Things Projects | Now just $10
また未読の電子書籍が貯まっていく……。
準備
OSのイメージファイルをmicroSDに書き込んで起動するという流れはRaspbianのインストールと同じです。作業環境としてmacOSを前提にしています。
用意するもの
- microSD カード(8GB以上)
- ラズパイ3 一式(本体とLANケーブル、マウス、キーボード、ディスプレイ)
- Android Studio (付属のSDKおよび
adb
コマンド)
microSDはSDFormatter あたりでFAT32にフォーマットしておく。
インストール時点ではキーボードとマウスはほとんど意味をなさないので不要かも。
ダウンロード
公式サイトからダウンロード。この記事を書いている時点の最新版は Android Things のPreview バージョン4.1。
各ハードウェアごとにインストールイメージが異なるので注意する。ラズパイの場合は一覧表の下の方にあるandroidthings_rpi3_devpreview_4_1.zip
というリンクをクリックする。
Safariでダウンロードすると勝手に展開されるので圧縮ファイルの展開については省略。
デバイス名の確認
まずはmicroSDの物理デバイス名を特定する。Windows環境の場合はRaspbianと同じ要領で。以下の手順はmacOS環境向けです。
アダプタをつけてmac本体のSDカードスロットを使用する前提。
SDFormaterでフォーマットした場合、ファイルシステムはFAT32になっているいるはず。grep
で絞り込む。
$ diskutil list | grep FAT -B4
実行結果の左端の、/dev/diskX
という箇所のdiskX
(Xは数字)という箇所がデバイス名(BSD名ともいう)。
数字は環境依存。0とか1は内蔵フラッシュストレージなので間違えないように。
物理デバイスの番号を間違えるとデータが吹き飛ぶので慎重に。私の環境ではdisk3。
一旦、SDをアンマウント。
$ diskutil umountDisk /dev/disk3 Unmount of all volumes on disk3 was successful
別解として、「システムレポート…」(画面左上のリンゴのマーク→「このMacについて」)から表示される「システム情報」から確認することもできる。
microSDへの書き込み
microSDにイメージを書き込む。いつも通りデバイス名にr
をつけてrdisk
とする。
$ sudo dd bs=1m if=iot_rpi3.img of=/dev/rdisk3 4352+0 records in 4352+0 records out 4563402752 bytes transferred in 361.139898 secs (12636108 bytes/sec)
そのまま待つ。5分から10数分おとなしく待つ。
完了したらmicroSDを取り外してラズパイのmicroSDスロットへ。
初期設定
microSDをセットしたら、 キーボード、マウス、LANケーブル、HDMIケーブルをつないで電源ONするだけ。主にやることはWifiの設定ぐらい。
IPアドレスさえ特定できればHDMIはなくても問題ない。
電源を入れるとAndroid Thingsロゴとバージョン番号、IPアドレスがディスプレイに表示される。
準備(macOS側)
adb
コマンドを使うためにパスを通す。
Android Studioをインストールし、初期設定を完了すると、各ユーザーのホームディレクトリのLIbrary
配下にAndroid SDKの関連ファイルが保存されている。このうち、Library/Android/sdk/platform-tools
にパスを通せばいい。
Bash
.profile
なり.bash_profile
に以下を追加する。
export PATH=$USER/Library/Android/sdk/platform-tools:$PATH
fish shell
最近、fish shellを使っていたりするので。
.config/fish/config.fish
に以下を追加する。
set -x PATH $HOME/Library/Android/sdk/platform-tools $PATH
Android Things環境への接続
電源を入れると画面上にネットワークへの接続状態とIPアドレスが表示されるのでこのアドレスを指定する。
$ adb start-server
HDMIでつないだディスプレイで確認したIPアドレスを指定して接続する。
$ adb connect <ip-address>
<ip-address>
は環境に応じて修正。
実行例
$ adb connect 192.168.0.5 connected to 192.168.0.5:5555
環境によっては以下のようにmDNS名を指定して接続することもできる。
$ adb connect Android.local connected to Android.local:5555
接続状態の確認
接続状態は以下で確認できる。
$ adb devices List of devices attached 192.168.0.5:5555 device
詳細表示(-l
オプション)
$ adb devices -l List of devices attached 192.168.0.5:5555 device product:iot_rpi3 model:iot_rpi3 device:rpi3
wifi 設定
無線LAN経由の方が便利ですねってことで。
$ adb shell am startservice -n com.google.wifisetup/.WifiSetupService -a WifiSetupService.Connect \ -e ssid <SSID> -e passphrase <pass phrase> Starting service: Intent { act=WifiSetupService.Connect cmp=com.google.wifisetup/.WifiSetupService (has extras) }
<SSID>
、<pass phrase>
は環境に応じて修正。別にバックスラッシュで区切らずに1行で入力してもいい。
IPアドレスが変わるとディスプレイ側の表示が変わるはず。もしくはadb shell ip a
などのコマンドでwlan0
にIPがセットされているかどうか確認する。
無線LANで接続に成功したら一度切り離す。
$ adb disconnect Android.local disconnected Android.local
LANケーブルを抜いてからadb connect
コマンドで再接続。再接続の際にデバイスが見つからないかもしれないが、IPアドレスを指定すれば繋がるはず。
disconnect
してから電源を切れば次回からは自動接続される。
スクリーンショット
現状、OpenGLに対応していないらしいので、ふつうのAndroid端末のようにはいかないみたい。
ただし、動画は撮れるそうなのでそれを使う。
$ adb shell screenrecord --verbose /sdcard/screenrecord.mp4 --time-limit 1
--verbose
はなくてもいい。スクリーンショットを取り出す場合は、adb pull
を使う。
ファイル名および保存先のパスはscreenrecord
コマンドの引数に指定したもの。
$ adb pull /sdcard/screenrecord.mp4 /sdcard/screenrecord.mp4: 1 file pulled. 0.9 MB/s (19643 bytes in 0.020s)
mp4形式の動画なので適当に変換すればいいはず。
$ ffmpeg -ss 0 -i screenrecord.mp4 -f image2 test.jpg
-f
はファイルフォーマットを指定するオプション。 image2
を指定した場合、出力ファイルの拡張子で自動判別される。
こんな感じ。
多分続く。
参考サイト
- Raspberry Pi 3 | Android Things
- Raspberry Pi3によるAndroid Things入門 - Qiita
- Android ThingsをRaspberry Pi 3にインストール - Qiita
- adbをMacのターミナルで使えるようにする - Qiita
- How to get screenshot of Application on Android Things device in Android Studio or via ADB? - Stack Overflow

【国内正規代理店版】 RS Raspberry Pi 3 Starter Kit 16GB V7 (JP 日本製)
- 出版社/メーカー: ケイエスワイ
- メディア: エレクトロニクス
- この商品を含むブログを見る