IoT向けOS「Android Things」でビルドしたアプリを管理できるコンソールソフト「Android Things Console」がGoogleからリリースされました。IoT端末アプリを端末に反映させたりソフトをOTAでアップデートしたりできるとのことなので、IoT端末にRaspberry Piを使って「IoT端末の管理」を試してみました。

◆Android SDK Platform Tools

ADBコマンドを使うために、先に「Android SDK Platform Tools」をダウンロード・インストールしておきます。

SDK Platform Tools Release Notes | Android Studio

https://developer.android.com/studio/releases/platform-tools.html

上記サイトからOSに対応したファイルをクリック。



「I have read and agree with the above terms and conditions.」にチェックを入れて、「DOWNLOAD SDK PLATFORM-TOOLS FOR WINDOWS」をクリックして、ZIPファイルをデスクトップなどの任意の場所に保存して、「Explzh」などで解凍。解凍したフォルダの中のEXEファイルを実行します。



「Next」をクリック。



「Standard」を選択して、「Next」をクリック。



コンポーネントのインストールが完了したら、「Finish」をクリック。



◆Android Things Consoleを使ってみた

Android Things Consoleはブラウザから操作します。今回はGoogle Chromeを使って以下のページから、Android Things Consoleの各種操作を行います。

Android Things Console

https://partner.android.com/things/console/

上記ページにアクセスして、「I agree to the Android Things SDK License Agreement and Android Things Console Terms of Service」にチェックを入れて、「Continue」をクリック。



・プロダクトの追加

「CREATE A PRODUCT」をクリック。



「Create new product」のポップアップが起動します。この中に、管理したいIoT端末の情報を入力して保存すればOK。すでに「Google Play Services」にチェックが入っており、パーティションサイズも「32MB」と入力されていますが、好みで変更することは可能です。



適当な「Product name」を記入して、「SOM type」をクリックすると、登録済みのIoT端末がプルダウン表示されるので選択します。今回は、「Raspberry Pi 3」を選びました。



「Product descriptino」に端末に関するメモを入力したら、「CREATE」をクリック。これで新しいプロダクトを追加できました。



「FACTORY IMAGES」タブをクリック。



初期状態では「Empty bundle」と「最新のAndroid Things」が選ばれています。



ひとまず空の状態で起動してみるので、そのまま「CREATE BUILD CONFIGURATION」をクリックします。



Build configuration listにビルドが現れるので、「Download build」をクリックしてダウンロード。ダウンロードしたZIPファイルの中にあるimgファイルを「Win32 Disk Imager」などのソフトを使ってストレージ(microSDカード)にコピーします。



Raspberry Piに有線LANケーブルを挿した状態で、microSDカードを挿し込んで起動すると……



「Android Things」のロゴが表示されました。



起動すると画面下に端末のIPアドレスが表示されるのでメモしておきます。



・SDK Platform Toolsの設定

SDK Platform ToolsでADBコマンドを入力する前に、Pathを通しておきます。「システム」→「システム情報」→「システムの詳細設定」の順にクリック。



「環境変数」をクリック。



「新規」をクリック。



「adb.exe」のあるフォルダのアドレスを追加して、「OK」をクリック。



コマンドプロンプトを起動して、「adb connect (IPアドレス)」と入力すれば端末に接続できます。シャットダウンするには「adb shell reboot -p」と入力すればOK。

・APKファイルのリリース

APKファイルをリリース(配信)するために、あらかじめ、「黄色い○が動くプログラム(testapp.apk)」を作成し、無圧縮ZIPファイル「testapp.zip」としてまとめておきます 。

Android Things Consoleの、「UPLOAD BUNDLE」をクリック。



「フォルダ」アイコンをクリック。



「testapp.zip」ファイルを指定して、「UPLOAD」をクリック。。



「FACTORY IMAGES」タブの「Bundles」で「testapp.zip」が選択されているのを確認して、「CREATE BUILD CONFIGURATION」をクリック。



「Build list」に現れた「download build」をクリックして、imgファイルをダウンロードします。



先ほどと同様に、imgファイルをmicroSDカードに保存して起動すると、以下のムービーの通り、testappが実行されました。

Android Things ConsoleでビルドしたAPKファイルを起動してみた - YouTube

・OTAアップデート

Android Things Consoleでは、ソフトウェアをOTAでアップデートすることも可能です。

Android Things Consoleの「OTA UPDATES」タブ→「testapp.zip」→「PUSH TO DEVICES」の順にクリック。



「Push History」が現れれば準備完了。



空のAndroid Thingsイメージをマウントし、起動しておけばOK。あとはひたすらOTAでアップデートが行われるまで待つのみです。



ただし、OTAのタイミングは端末側からはなかなか判断できません。そこで、遠隔側から確かめるべく、コマンドプロンプトで「Shell」に接続した後で「top | grep update_engine」と入力してupdate_engineの状況を観察すると、CPU使用率が0%になったことから、OTAアップデートが完了したことが判断できました。



OTAアップデートにかかる時間はまちまちで、ヘルプには「5時間ごとにupdate_engineのチェックが入る」とのことなので、アップデート作業は気長に待つほかないようです。