Android Things

Android Things に関する記事です。



Android Things

Android Things は Androidベースの IoT 向け OS です。

See Also:


必要なもの

私は以下の micoSDHC カードを使いました。


インストール

以前よりちょっと面倒になっているようです。

  1. Android Things Console に行き、Google アカウントでログインする。
  2. I agree...にチェックを入れ、[CONTINUE] ボタンを押す。
  3. [CREATE A PRODUCT] ボタンを押す。
  4. 製品情報を入力し、[CREATE] ボタンを押す。

  5. 製品ができたので、CREATE STARTER BUILD のリンクをクリック。
  6. 最新版を選択し、[CREATE BUILD CONFIGURATION] ボタン をクリック。
  7. ビルドが終わると、下にダウンロードリンクが現れる。ので、Download Build のリンクをクリックしてイメージの ZIP を取得。
  8. ZIP を任意のアーカイバで解凍し、iot_rpi3.img を得る。
  9. イメージファイルを DD for Windows 等で焼く。

    ※ DD for Windows は管理者権限で実行する事。
  10. OS イメージが書き込まれた後にフォーマットするか聞いてくるが、これはフォーマットしてはいけない。[キャンセル] ボタンを押す。
  11. microSD カードを Raspberry Pi に挿入し、HDMI でディスプレイに接続した状態で電源を投入すると Android Things が起動する。

Android SDK

別途、Andoroid SDK をインストールしておく必要がありますが、ADB を使いたいだけなら以下のインストーラーを使うといいでしょう。

See Also:


セットアップ

設定を行う場合には、USB マウスと USB キーボードを接続した状態で Raspberry Pi を起動してください。

ADB が正しく起動する事を前提として話を進めます。操作する環境は Windows で、ワークとして C:\TEMP を使います。

CJK フォントの導入

以下の記事を参考に CJK フォントを導入します。これを導入しないと日本語を表示できません。

以下に手順をまとめます。

  1. Google Noto Fonts から、Noto Sans CJK JP を DL。
  2. アーカイブを解凍し、*.otf ファイルを C:\TEMP にコピーしておく。
  3. ADB で Raspberry Pi に接続。IP アドレスは Android Things の待ち受け画面に表示されている。
    adb connect <IP アドレス>
  4. root になる。
    adb root
  5. 再接続。
    adb connect <IP アドレス>
  6. リマウント
    adb remount
  7. フォントファイルを転送。すべてのフォントを転送するにはシステム領域の容量が足りないと思われる。
    adb push C:\TEMP\NotoSansCJKjp-Regular.otf /system/fonts/
  8. フォント設定ファイルを取得
    adb pull /system/etc/fonts.xml C:\TEMP
  9. フォント設定ファイル (fonts.xml) を書き換え (赤字の部分を追記)。改行コードが LF なので、メモ帳以外のテキストエディタで編集したほうがいい。
    <?xml version="1.0" encoding="utf-8"?>
    <!--
        All fonts without names are added to the default list. Fonts are chosen
        based on a match: full BCP-47 language tag including script, then just
        language, and finally order (the first font containing the glyph).
    
        Order of appearance is also the tiebreaker for weight matching. This is
        the reason why the 900 weights of Roboto precede the 700 weights - we
        prefer the former when an 800 weight is requested. Since bold spans
        effectively add 300 to the weight, this ensures that 900 is the bold
        paired with the 500 weight, ensuring adequate contrast.
    -->
    <familyset version="22">
    
        <family lang="ja">
            <font weight="400" style="normal">NotoSansCJKjp-Regular.otf</font>
        </family>
    
        <!-- first font is default -->
        <family name="sans-serif">
            <font weight="400" style="normal">Roboto-Regular.ttf</font>
            <font weight="700" style="normal">Roboto-Bold.ttf</font>
        </family>
    
        <!-- Note that aliases must come after the fonts they reference. -->
        <alias name="sans-serif-thin" to="sans-serif" weight="100" />
        <alias name="sans-serif-light" to="sans-serif" weight="300" />
        <alias name="sans-serif-medium" to="sans-serif" weight="500" />
        <alias name="sans-serif-black" to="sans-serif" weight="900" />
        <alias name="arial" to="sans-serif" />
        <alias name="helvetica" to="sans-serif" />
        <alias name="tahoma" to="sans-serif" />
        <alias name="verdana" to="sans-serif" />
    
        <family name="monospace">
            <font weight="400" style="normal">DroidSansMono.ttf</font>
        </family>
        <alias name="sans-serif-monospace" to="monospace" />
        <alias name="monaco" to="monospace" />
    </familyset>
  10. フォント設定ファイルを転送
    adb push C:\TEMP\fonts.xml /system/etc/fonts.xml
  11. Raspberry Pi を再起動
    adb reboot

環境設定

<!> DP 0.6 以降ではできなくなりました <!>

Android Things は Android なので設定画面を呼び出して設定するのが最も簡単です。

  1. ADB で Raspberry Pi に接続。
    adb connect <IP アドレス>
  2. Android Things の設定画面を呼び出す。
    adb shell am start -a android.settings.SETTINGS
  3. 設定画面が起動する。設定時、画面が乱れる事があるがしばらくすると元に戻る。
  4. もし、設定画面で元の画面に戻れなくなったら、キーボードの〔ESC〕キーを押すか、ADB で [戻る] ボタンを押した事にすれば戻れる。
    adb shell input keyevent KEYCODE_BACK

    同様に [HOME] ボタンはこうなる。
    adb shell input keyevent KEYCODE_HOME

日本語 UI 化

<!> DP 0.6 以降ではできなくなりました <!>

日本語 UI 化するにはちょっとコツが要ります。

  1. 設定画面で、[System] をマウスでクリック
  2. [Languages & input] をマウスでクリック
  3. [Languages] をマウスでクリック
  4. [Add a language] をマウスでクリック。反応が鈍いので注意!
  5. [日本語] をキーボードで選択し〔Enter〕キーで確定する。〔END〕キーを押してリストの最後に行き、〔↑〕キーで上に3つ移動するのが最も早い。マウスクリックだと位置がズレているのか、[日本語] を選べない。一部の文字のフォントが豆腐になっているが、CJK フォントを導入していないと [日本語] も豆腐になって表示できない。反応が鈍いので注意!
  6. 言語の順序をマウスで入れ替えると日本語 UI になる。
  7. UI を日本語化できた。なお、メインの画面は何も変化がない。
  8. [システム | 日付と時刻] でタイムゾーンも変更しておく。これもキーボードで選択し〔Enter〕キーで確定する。〔↓〕キーを一度押し、〔Page Up〕/〔Page Down〕で探すと早い。

所々、キーボードがないと設定がうまくいかない箇所がありました。

日本語入力

<!> DP 0.6 以降では設定できなくなりました <!>

キーボードで日本語を入力する方法です。
  1. どこからか Google 日本語入力 (com.google.android.inputmethod.japanese) の APK を入手します。
  2. APK を C:\TEMP に置いておきます。
  3. ADB で Raspberry Pi に接続。
    adb connect <IP アドレス>
  4. APK をインストールします。
    adb install C:\TEMP\<Google 日本語入力のAPK>
  5. Android Things の設定画面を呼び出す。
    adb shell am start -a android.settings.SETTINGS
  6. [設定 | システム | 言語と入力] へ移動。メニューの選択はキーボードのカーソルキーで行うとやりやすい。決定は〔Enter〕キー。
  7. [仮想キーボード | キーボードを管理] で、Google 日本語入力をオンにする。
  8. オンオフは〔Enter〕キーで切り替えるのが早い。警告の [OK] ボタンもマウスでは押せないので、〔→〕キーを押して〔Enter〕を押す。その後 Androidキーボード (AOSP) をオフにする。
  9. 一つ前に戻ると、Google 日本語になっている。今度はこれを選択。
  10. [Google 日本語設定] の左側のメニューで [入力] を選択。この設定画面はマウスで行ってもストレスがない。
  11. [ハードウェアキーボードの設定] をマウスクリックすると [日本語 109A] が選べるのでこれを選択。
  12. 〔ESC〕キーを何度か叩いて設定画面を終了させる。
  13. 日本語入力が可能になる。

apk は zip で圧縮したものを Android Things Console でアップロードすればイメージファイルに含める事ができるようです。


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: