以前こちらで書いたように Android 9.0 Pie 以降は、外付けキーボード利用時に Control + SPACE のキー入力ができなくなっています。「キーボードレイアウトの切り替え」操作に割り当てられているためです。
ソフトウエアによっては Ctrl + SPACE を使いたい場合も多いので、無理やり使えるようにしてみました。
Ctrl + [SPACE] を乗っ取っているのは Android なので、Android 側で Ctrl を利用頻度の低いキーと交換してしまいます。例えば [F12] など。ただし入れ替えは UserLAnd + Linux (xmodmap) で識別可能なキーに限ります。本当は Caps が使えればよかったのですが Linux 側でうまく識別できませんでした。
もちろん Android 側では Ctrl キーが [F12] に置き換わってしまうため、ハードウエアキーボードで Ctrl を使った操作が困難になります。また xmodmap を使ったキー入れ替えは VNC/XSDL のみ有効で UserLAnd の SSH では使えません。
Step 1 : Android 側の入れ替え (kcm)
[Ctrl] ←→ [F12]
・Android 側の「キーボードレイアウト切り替え操作」 は [F12]+[SPACE] になります。
Step 2 : UserLAnd Linux 側の入れ替え (xmodmap)
[F12] ←→ [Ctrl]
・[F12] に偽装した本来の [Ctrl] キーを Ctrl として使えるようになります。
● (1) kcm キーレイアウト作成
Android 側でキー入れ替えを行うには kcm ファイルを作成し、新しいキーボードレイアウトを登録します。今回は下記 nakajit さんの code を利用させていただきました。
・GitHub: nakajit/InputDevices4J
InputDevices4J/res/raw/keyboard_layout_japanese_ime_cc_ek.kcm を下記のように書き換えました。(Caps ←→ Ctrl, ESC ←→ 半全 が不要な場合は他のファイルを使用してください)
↓ 該当部分を下記のように修正
● (2) 書き換えたプロジェクトを apk にビルドしてインストールします
● (3) 設定からレイアウトを選択
設定→システム→言語と入力→物理キーボード→キーボードレイアウトの設定
keyboard_layout_japanese_ime_cc_ek.kcm の場合は「日本語 106/109 (IME用, C-C, E-H/Z)」を選びます。
選択すると Caps キーが [F12] に置き換わるので注意。
● (4) xmodmap での設定
UserLAnd から VNC を起動して xmodmap ファイルを作ります。
↑この内容を仮に .Xmodmap-F12 で保存したら
を実行します。
これで Android 9.0 でも UserLAnd (X11) 上で [Ctrl]+[SPACE] が使えるようになりました。
同じように、[半角/全角] キーや [変換] キーなども [F11], [F10] とか割り当ててしまえばおそらく UserLAnd 上で使用できるようになると思われます。
関連エントリ
・Android Termux で日本語入力を行う / UserLAnd との併用
・Android 9.0 と Bluetooth Keyboard による日本語入力
・Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
ソフトウエアによっては Ctrl + SPACE を使いたい場合も多いので、無理やり使えるようにしてみました。
Ctrl + [SPACE] を乗っ取っているのは Android なので、Android 側で Ctrl を利用頻度の低いキーと交換してしまいます。例えば [F12] など。ただし入れ替えは UserLAnd + Linux (xmodmap) で識別可能なキーに限ります。本当は Caps が使えればよかったのですが Linux 側でうまく識別できませんでした。
もちろん Android 側では Ctrl キーが [F12] に置き換わってしまうため、ハードウエアキーボードで Ctrl を使った操作が困難になります。また xmodmap を使ったキー入れ替えは VNC/XSDL のみ有効で UserLAnd の SSH では使えません。
Step 1 : Android 側の入れ替え (kcm)
[Ctrl] ←→ [F12]
・Android 側の「キーボードレイアウト切り替え操作」 は [F12]+[SPACE] になります。
Step 2 : UserLAnd Linux 側の入れ替え (xmodmap)
[F12] ←→ [Ctrl]
・[F12] に偽装した本来の [Ctrl] キーを Ctrl として使えるようになります。
● (1) kcm キーレイアウト作成
Android 側でキー入れ替えを行うには kcm ファイルを作成し、新しいキーボードレイアウトを登録します。今回は下記 nakajit さんの code を利用させていただきました。
・GitHub: nakajit/InputDevices4J
InputDevices4J/res/raw/keyboard_layout_japanese_ime_cc_ek.kcm を下記のように書き換えました。(Caps ←→ Ctrl, ESC ←→ 半全 が不要な場合は他のファイルを使用してください)
~ map key 58 CTRL_LEFT # CAPS_LOCK ~
↓ 該当部分を下記のように修正
~ map key 58 F12 # CAPS_LOCK map key 88 CTRL_LEFT # F12 ~
● (2) 書き換えたプロジェクトを apk にビルドしてインストールします
● (3) 設定からレイアウトを選択
設定→システム→言語と入力→物理キーボード→キーボードレイアウトの設定
keyboard_layout_japanese_ime_cc_ek.kcm の場合は「日本語 106/109 (IME用, C-C, E-H/Z)」を選びます。
選択すると Caps キーが [F12] に置き換わるので注意。
● (4) xmodmap での設定
UserLAnd から VNC を起動して xmodmap ファイルを作ります。
remove Control = Control_L keysym Control_L = F12 keysym F12 = Control_L add Control = Control_L
↑この内容を仮に .Xmodmap-F12 で保存したら
$ xmodmap .Xmodmap-F12
を実行します。
これで Android 9.0 でも UserLAnd (X11) 上で [Ctrl]+[SPACE] が使えるようになりました。
同じように、[半角/全角] キーや [変換] キーなども [F11], [F10] とか割り当ててしまえばおそらく UserLAnd 上で使用できるようになると思われます。
関連エントリ
・Android Termux で日本語入力を行う / UserLAnd との併用
・Android 9.0 と Bluetooth Keyboard による日本語入力
・Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
2019/02/25
Android Termux で日本語入力を行う / UserLAnd との併用
普段使っている Note PC よりもハイエンドスマートフォンの方が性能が良いことが判明してから、Android を Note の代わりに活用する方法をいろいろ試しています。主な用途は外出時の議事録などのメモ取りとちょっとしたプログラミングです。
Android 上で root なしに利用できる開発環境として Termux と UserLAnd があります。
UserLAnd は Android 上に PC とほぼ同等の Linux 環境を構築可能で日本語入力もできます。その代わり proot のオーバーヘッドがありファイルアクセスが遅くなっています。また GUI が使えるものの GPU が使われておらず、PC と比べると画面描画は低速です。
Termux はファイルアクセスのオーバーヘッドがなく高速ですがパッケージがあまり多くありません。日本語入力にも非対応。
機能面では UserLAnd だけで済むのですが、速度面で少々難があるので工夫が必要です。下記はライブラリのコンパイル時間の比較です。
・Time (秒) の値が小さい方が高速
(1) = Termux のコンソールから直接実行
(2) = UserLAnd から ssh で Termux に login して実行
(3) = UserLAnd 上で直接実行
Termux (1) が一番速く、UserLAnd 経由で Termux を利用した場合 (2) もほぼ速度が落ちずに済んでいます。
Termux と比べると UserLAnd は 2〜12倍くらい遅くなっています。かなりばらつきがあり Debian が極端ですが原因はわかっていません。
UserLAnd は Desktop アプリの利用や日本語入力などの環境として利用して、Termux でできる作業は Termux で行うのが効率良いことがわかります。
上の結果 (2) では Desktop 上の LXTerminal から Termux に ssh 接続していますが、ウィンドウ上の Terminal の描画は遅くなります。パフォーマンスが低いデバイスでは X11/VNC ではなく UserLAnd の SSH から Termux にログインすることをお勧めします。こちらの方が Terminal の描画は高速で、uim-fep の日本語入力が使えるようになります。
● Termux で日本語入力を行う方法
1. UserLAnd に任意の Distribution をインストールして日本語環境を設定
2. Termux 上で sshd を起動
3. ssh で Termux にログイン
● 1. UserLAnd の設定
4通りの方法を wiki にまとめました。
・Ubuntu + SSH コンソールでの日本語入力 (uim-mozc)
・Debian + SSH コンソールでの日本語入力 (uim-mozc)
・Ubuntu + VNC デスクトップでの日本語入力 (fcitx-mozc)
・Debian + VNC デスクトップでの日本語入力 (uim-mozc)
その他 UserLAnd 関連はこちら
・Android の上の開発環境: UserLAnd
● 2. Termux の設定と sshd の起動
Termux では予め sshd を起動しておく必要があります。手順は下記の通り。ssh でログインするためにはパスワードの設定が必要です。
● 3. Termux へのログイン
UserLAnd から Termux へのログイン方法。VNC (LXDE desktop) を使う場合は LXTerminal を使ってください。
●実際に使用してみて
Snapdragon 845 クラスのスマートフォンでは Ubuntu + VNC + Termux で十分だと感じます。議事録などのメモ用途で使う場合は、Bluetooth Keyboard があれば Note PC 代わりになりますし、外出時のコードの確認にも使えます。
どこでも作業空間を作り出せる Oculus Go も非常に魅力なのですが、VR にパワーが取られてしまい VNC は重くなります。テキストエディタの作業は SSH Console の方をお勧めします。もっとパワーのあるスタンドアロン機種や、ハイエンド機種 + GearVR/Daydream だったらもう少し快適な作業ができるかもしれません。
関連ページ
・Android の上の開発環境: UserLAnd
・Android の上の開発環境: Termux
関連エントリ
・Android 9.0 と Bluetooth Keyboard による日本語入力
・Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
Android 上で root なしに利用できる開発環境として Termux と UserLAnd があります。
UserLAnd は Android 上に PC とほぼ同等の Linux 環境を構築可能で日本語入力もできます。その代わり proot のオーバーヘッドがありファイルアクセスが遅くなっています。また GUI が使えるものの GPU が使われておらず、PC と比べると画面描画は低速です。
Termux はファイルアクセスのオーバーヘッドがなく高速ですがパッケージがあまり多くありません。日本語入力にも非対応。
機能面では UserLAnd だけで済むのですが、速度面で少々難があるので工夫が必要です。下記はライブラリのコンパイル時間の比較です。
Google Pixel 3 (Android 9.0 Pie) Snapdragon 845 | ||||
---|---|---|---|---|
実行環境 | Compiler | Time (秒) | ||
(1) | Termux | clang-7.0.1 | 32.6 | |
(2) | UserLAnd Debian + Termux | VNC | clang-7.0.1 | 34.5 |
(3) | UserLAnd Ubuntu 18.04 | SSH | clang-6.0.0 | 72.9 |
(3) | UserLAnd Debian Stretch | VNC | clang-3.8.1 | 220.4 |
(3) | UserLAnd Debian Stretch | SSH | clang-3.8.1 | 219.0 |
Essential Phone PH-1 (Android 9.0 Pie) Snapdragon 835 | ||||
実行環境 | Compiler | Time (秒) | ||
(1) | Termux | clang-7.0.1 | 38.4 | |
(2) | UserLAnd Ubuntu + Termux | VNC | clang-7.0.1 | 40.5 |
(2) | UserLAnd Debian + Termux | VNC | clang-7.0.1 | 41.7 |
(3) | UserLAnd Debian Stretch | VNC | clang-3.8.1 | 423.6 |
(3) | UserLAnd Debian Stretch | VNC | clang-4.0.1 | 456.9 |
(3) | UserLAnd Ubuntu 18.04 | VNC | clang-6.0.0 | 95.6 |
(3) | UserLAnd Arch | SSH | clang-7.0.1 | 107.0 |
・Time (秒) の値が小さい方が高速
(1) = Termux のコンソールから直接実行
(2) = UserLAnd から ssh で Termux に login して実行
(3) = UserLAnd 上で直接実行
Termux (1) が一番速く、UserLAnd 経由で Termux を利用した場合 (2) もほぼ速度が落ちずに済んでいます。
Termux と比べると UserLAnd は 2〜12倍くらい遅くなっています。かなりばらつきがあり Debian が極端ですが原因はわかっていません。
UserLAnd は Desktop アプリの利用や日本語入力などの環境として利用して、Termux でできる作業は Termux で行うのが効率良いことがわかります。
上の結果 (2) では Desktop 上の LXTerminal から Termux に ssh 接続していますが、ウィンドウ上の Terminal の描画は遅くなります。パフォーマンスが低いデバイスでは X11/VNC ではなく UserLAnd の SSH から Termux にログインすることをお勧めします。こちらの方が Terminal の描画は高速で、uim-fep の日本語入力が使えるようになります。
● Termux で日本語入力を行う方法
1. UserLAnd に任意の Distribution をインストールして日本語環境を設定
2. Termux 上で sshd を起動
3. ssh で Termux にログイン
● 1. UserLAnd の設定
4通りの方法を wiki にまとめました。
・Ubuntu + SSH コンソールでの日本語入力 (uim-mozc)
・Debian + SSH コンソールでの日本語入力 (uim-mozc)
・Ubuntu + VNC デスクトップでの日本語入力 (fcitx-mozc)
・Debian + VNC デスクトップでの日本語入力 (uim-mozc)
その他 UserLAnd 関連はこちら
・Android の上の開発環境: UserLAnd
● 2. Termux の設定と sshd の起動
Termux では予め sshd を起動しておく必要があります。手順は下記の通り。ssh でログインするためにはパスワードの設定が必要です。
$ pkg update
$ pkg install openssh
$ passwd
パスワードの設定
$ sshd
$ pkg install openssh
$ passwd
パスワードの設定
$ sshd
● 3. Termux へのログイン
UserLAnd から Termux へのログイン方法。VNC (LXDE desktop) を使う場合は LXTerminal を使ってください。
$ ssh localhost -p 8022
●実際に使用してみて
Snapdragon 845 クラスのスマートフォンでは Ubuntu + VNC + Termux で十分だと感じます。議事録などのメモ用途で使う場合は、Bluetooth Keyboard があれば Note PC 代わりになりますし、外出時のコードの確認にも使えます。
どこでも作業空間を作り出せる Oculus Go も非常に魅力なのですが、VR にパワーが取られてしまい VNC は重くなります。テキストエディタの作業は SSH Console の方をお勧めします。もっとパワーのあるスタンドアロン機種や、ハイエンド機種 + GearVR/Daydream だったらもう少し快適な作業ができるかもしれません。
関連ページ
・Android の上の開発環境: UserLAnd
・Android の上の開発環境: Termux
関連エントリ
・Android 9.0 と Bluetooth Keyboard による日本語入力
・Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
2019/02/24
Android 9.0 と Bluetooth Keyboard による日本語入力
Termux や SSH Terminal では外付けの Bluetooth Keyboard を使うと快適なのですが、Android 上の日本語入力はなかなか思い通りにならないことがあります。OS Version や端末、キーボードソフトウエアによってキー操作や挙動が異なっています。また Terminal 上で On/Off できるかどうかもソフトによって差があります。
例えば Android 9.0 Pie では下記の操作が有効になっています。
(1) キーボード切り替え (Win + SPACE)
複数のキーボードソフトを入れているとそれらを順番に切り替えます。例えば Google 日本語入力 と ATOK を両方有効にしているなら [Win] + [SPACE] で交互に切り替わります。
(2) 日本語入力切り替え
日本語入力切り替え操作はキーボードソフトウエアによって異なります。
ハードウエアキーボード利用時の日本語入力切り替えキーまとめ
・[半全] = [半角/全角] キーで切り替えられるかどうか
・ALT+[半全] = [ALT] + [半角/全角] キーで切り替えられるかどうか
・Term = Termux/ConnectBot 上で日本語 On/Off できるかどうか (変換中文字表示なし)
ATOK は複数の操作ができますがどれも同じ機能です。ATOK は [変換] キーが使えます。FSKAREN / Wnn は英数時に直接入力と変換入力切り替えの使い分けができます。ただし FSKAREN と Wnn は操作が逆でした。
(3) 物理キーボードレイアウト切り替え (Ctrl + SPACE)
これは Android 9.0 から追加された操作で Android 8.1 以前にはありません。以降は Essential Phone、Android 9.0 での画面です。
Bluetooth または USB Keyboard をつないだ状態で設定を開きます。「システム」→「言語と入力」→「物理キーボード」を開くとキーボードの名前が表示されているので選択

「キーボードレイアウトの選択」画面がでます。

右下の「キーボードレイアウトの選択」を選ぶと複数のレイアウトを選択できます。

複数のレイアウトにチェックをれて戻ると下記の通り。この画面でようやく Ctrl+スペース の操作が割り当てられていることがわかります。

おそらく QWERTY と Dvorak のように、キーボードレイアウト自体をいつでも切り替えられるように設けられた機能だと思われます。
ただし弊害があります。この機能が原因で Android 9.0 では Terminal アプリケーションで [Ctrl] + [SPACE] の操作ができなくなっているのだと思われます。例えば Termux や SSH Terminal 、UserLAnd や VNC 上で [Ctrl] + [SPACE] を使おうとしても、入力できずにレイアウトが切り替わってしまいます。
[Ctrl]+[SPACE] で日本語切り替えしたい場合や、Emacs のマーク操作で困ります。Android 8.1 以前は問題なく [Ctrl]+[SPACE] が使えました。
● Termux で日本語入力を行う
Termux 上で Android 上の日本語変換を使う場合は、切り替え操作が思うようにできないだけでなく変換途中の文字列が表示されない問題もあります。なので、いっそ Android 側の日本語入力機能を諦めてしまうのも一つの手です。
UserLAnd のおかげで Android 内に簡単に Linux Distribution をインストールできるようになりました。つまり UserLAnd を GUI&日本語入力対応の SSH Terminal として利用します。
Termux 上で予め sshd を立ち上げてから UserLAnd 上で ssh localhost -p 8022 で接続します。これで Termux 上で uim-mozc や fcitx-mozc を使った日本語入力↓ができます。

ただし Android 9.0 の場合は Ctrl+SPACE が使えない問題は相変わらず残ります。
UserLAnd 使うなら、そもそも Termux は必要ないのではないかと思うかもしれませんが、詳しくは次回に続きます。
・続き: Android Termux で日本語入力を行う / UserLAnd との併用
関連ページ
・Android の上の開発環境: UserLAnd
・Android の上の開発環境: Termux
関連エントリ
・Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
例えば Android 9.0 Pie では下記の操作が有効になっています。
(1) | [Win] + [SPACE] | キーボードの切り替え (Gboard←→ATOK 等) |
(2) | [SHIFT] + [SPACE] 他 | Gboard/Google 日本語入力の 日本語 On/Off |
(3) | [Ctrl] + [SPACE] | 物理キーボードレイアウトの切り替え (QWERTY←→Dvorak等) |
(1) キーボード切り替え (Win + SPACE)
複数のキーボードソフトを入れているとそれらを順番に切り替えます。例えば Google 日本語入力 と ATOK を両方有効にしているなら [Win] + [SPACE] で交互に切り替わります。
(2) 日本語入力切り替え
日本語入力切り替え操作はキーボードソフトウエアによって異なります。
ハードウエアキーボード利用時の日本語入力切り替えキーまとめ
Keyboard Software | [半全]以外の On/Off キー | [半全] | ALT+[半全] | Term |
---|---|---|---|---|
Gboard (+日本語) | [SHIFT] + [SPACE] | Y | - | - |
Google 日本語入力 | [SHIFT] + [SPACE] | Y | - | - |
ATOK for Android | [ALT] + [SPACE] / [変換] | Y | Y | Y |
FSKAREN for Android | 無し | Y | Y | - |
Wnn Keyboard Lab | [SHIFT] + [SPACE] | Y | Y | - |
・[半全] = [半角/全角] キーで切り替えられるかどうか
・ALT+[半全] = [ALT] + [半角/全角] キーで切り替えられるかどうか
・Term = Termux/ConnectBot 上で日本語 On/Off できるかどうか (変換中文字表示なし)
ATOK は複数の操作ができますがどれも同じ機能です。ATOK は [変換] キーが使えます。FSKAREN / Wnn は英数時に直接入力と変換入力切り替えの使い分けができます。ただし FSKAREN と Wnn は操作が逆でした。
Keyboard Software | On/Off (直接入力) | 英数/日本語 (変換入力) |
---|---|---|
Gboard (+日本語) | - | [SHIFT]+[SPACE] / [半全] |
Google 日本語入力 | - | [SHIFT]+[SPACE] / [半全] |
ATOK for Android | - | [ALT]+[SPACE] / [半全] / [ALT]+[半全] / [変換] |
FSKAREN for Android | [ALT]+[半全] | [半全] |
Wnn Keyboard Lab | [半全] | [SHIFT]+[SPACE] / [ALT]+[半全] |
(3) 物理キーボードレイアウト切り替え (Ctrl + SPACE)
これは Android 9.0 から追加された操作で Android 8.1 以前にはありません。以降は Essential Phone、Android 9.0 での画面です。
Bluetooth または USB Keyboard をつないだ状態で設定を開きます。「システム」→「言語と入力」→「物理キーボード」を開くとキーボードの名前が表示されているので選択

「キーボードレイアウトの選択」画面がでます。

右下の「キーボードレイアウトの選択」を選ぶと複数のレイアウトを選択できます。

複数のレイアウトにチェックをれて戻ると下記の通り。この画面でようやく Ctrl+スペース の操作が割り当てられていることがわかります。

おそらく QWERTY と Dvorak のように、キーボードレイアウト自体をいつでも切り替えられるように設けられた機能だと思われます。
ただし弊害があります。この機能が原因で Android 9.0 では Terminal アプリケーションで [Ctrl] + [SPACE] の操作ができなくなっているのだと思われます。例えば Termux や SSH Terminal 、UserLAnd や VNC 上で [Ctrl] + [SPACE] を使おうとしても、入力できずにレイアウトが切り替わってしまいます。
[Ctrl]+[SPACE] で日本語切り替えしたい場合や、Emacs のマーク操作で困ります。Android 8.1 以前は問題なく [Ctrl]+[SPACE] が使えました。
● Termux で日本語入力を行う
Termux 上で Android 上の日本語変換を使う場合は、切り替え操作が思うようにできないだけでなく変換途中の文字列が表示されない問題もあります。なので、いっそ Android 側の日本語入力機能を諦めてしまうのも一つの手です。
UserLAnd のおかげで Android 内に簡単に Linux Distribution をインストールできるようになりました。つまり UserLAnd を GUI&日本語入力対応の SSH Terminal として利用します。
Termux 上で予め sshd を立ち上げてから UserLAnd 上で ssh localhost -p 8022 で接続します。これで Termux 上で uim-mozc や fcitx-mozc を使った日本語入力↓ができます。

ただし Android 9.0 の場合は Ctrl+SPACE が使えない問題は相変わらず残ります。
UserLAnd 使うなら、そもそも Termux は必要ないのではないかと思うかもしれませんが、詳しくは次回に続きます。
・続き: Android Termux で日本語入力を行う / UserLAnd との併用
関連ページ
・Android の上の開発環境: UserLAnd
・Android の上の開発環境: Termux
関連エントリ
・Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
2019/02/17
Snapdragon 835 と 845 のコンパイル時間の比較&浮動小数点演算能力
Snapdragon 835 (MSM8998) のデータを追加しました。コンパイル時間と VFP Benchmark の結果を載せています。ついでに Oculus Go でもコンパイル時間を調べてみました。(前回1) (前回2)
●コンパイル時間の比較 (Termux+clang)
・Time (秒) が小さい方が高速。
●浮動小数点演算能力ピーク値 (VFPBenchmark)
・GFLOPS が大きい方が高速。
演算ユニットの数が同じなので浮動小数点演算ピーク値はクロック数に比例した結果となっています。特に Total 値では 835 と 845 の差が少なくほぼ同じくらいの数値です。
それと比べるとコンパイル時間の方には若干差が付きました。CPU 自体も 2 命令 decode の Out-of-order から 3 命令 decode Out-of-order に増えていますので、Snapdragon 845 は big core のクロック差だけでなく IPC も向上しています。ベースとなった CPU core は ARM によると 20% 以上速いとのこと。UserLAnd + Termux を使っていても VNC 経由なのに十分満足できるもので、過去に使った Nexus 7 (2012) や Nexus 5 の Linux とは別物です。
Oculus Go で動く UserLAnd や Termux はどこでも大画面で作業場が作れるので魅力的なのですが、ビルドは残念ながら低速です。同じ Snapdragon 821 の Zenfone AR と比べても 2.5 倍時間がかかりました。使用したのは Oculus TV + Termux です。VR 空間の描画にパフォーマンスが取られているのだと思われます。VR 描画は両眼分必要で、また処理落ちは酔いにつながるため VR 描画が優先されます。
●スマートフォン以外のデバイスを含めたコンパイル時間の比較
他のデバイスとの比較表も更新しました。835 も十分速いです。ただし条件が一定ではないので参考程度にお願いします。特に Windows 10 PC は仮想環境を使っています。
・Time (秒) が小さい方が高速。
関連ページ
・VFP Benchmark Log 計測結果まとめ
関連エントリ
・Snapdragon 845 の浮動小数点演算速度
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
・ARM CPU 上の開発環境とコンパイル時間の比較
・AMD CPU Ryzen とコンパイル時間の比較 (2)
・AMD CPU Ryzen とコンパイル時間の比較
・ARM CPU の浮動小数点演算能力まとめ
・HTC 10 Snapdragon 820 Kyro の浮動小数点演算能力
・iPhone SE, Apple A9 の浮動小数点演算速度
・Raspberry Pi 3 の速度比較, Cortex-A53 の速度
・ARM Cortex-A53 の浮動小数点演算速度とコンパイル時間の比較
・2955U vs N3150/J1900/Athlon5350 (コンパイル時間の比較)
・iPod touch 6 の浮動小数点演算速度は Core 2 Duo ライン超え
・Raspberry Pi 2 で速くなったコンパイル時間の比較
・iPad Air 2 (Apple A8X) の浮動小数点演算能力
・BayTrail vs Kabini (Celeron J1900 vs Athlon 5350)
・コンパイル時間の比較 BayTrail
・Atom vs Core i7
●コンパイル時間の比較 (Termux+clang)
Smartphone | SoC | RAM | Thread | Time | 速度比 |
---|---|---|---|---|---|
Pixel 3 | Snapdragon 845 | 4GB | 8/8 | 32 | 4.2x |
Essential Phone | Snapdragon 835 | 4GB | 8/8 | 38 | 3.6x |
Galaxy S6 Edge | Exynos 7420 | 3GB | 8/8 | 77 | 1.8x |
ZenFone AR | Snapdragon 821 | 8GB | 4/4 | 111 | 1.2x |
Nexus 5X | Snapdragon 808 | 2GB | 6/6 | 135 | 1.0x |
Oculus Go | Snapdragon 821 | 3GB | 4/4 | 275 | 0.5x |
・Time (秒) が小さい方が高速。
●浮動小数点演算能力ピーク値 (VFPBenchmark)
Smartphone | SoC | RAM | Thread | big/L | GFLOPS |
---|---|---|---|---|---|
Pixel 3 | Snapdragon 845 | 4GB | 8/8 | 84/55 | 139.3 |
Essential Phone | Snapdragon 835 | 4GB | 8/8 | 75/59 | 134.5 |
Galaxy S6 Edge | Exynos 7420 | 3GB | 8/8 | 56/47 | 102.6 |
Nexus 5X | Snapdragon 808 | 2GB | 6/6 | 29/45 | 74.0 |
ZenFone AR | Snapdragon 821 | 8GB | 4/4 | 37/25 | 62.7 |
・GFLOPS が大きい方が高速。
演算ユニットの数が同じなので浮動小数点演算ピーク値はクロック数に比例した結果となっています。特に Total 値では 835 と 845 の差が少なくほぼ同じくらいの数値です。
それと比べるとコンパイル時間の方には若干差が付きました。CPU 自体も 2 命令 decode の Out-of-order から 3 命令 decode Out-of-order に増えていますので、Snapdragon 845 は big core のクロック差だけでなく IPC も向上しています。ベースとなった CPU core は ARM によると 20% 以上速いとのこと。UserLAnd + Termux を使っていても VNC 経由なのに十分満足できるもので、過去に使った Nexus 7 (2012) や Nexus 5 の Linux とは別物です。
Oculus Go で動く UserLAnd や Termux はどこでも大画面で作業場が作れるので魅力的なのですが、ビルドは残念ながら低速です。同じ Snapdragon 821 の Zenfone AR と比べても 2.5 倍時間がかかりました。使用したのは Oculus TV + Termux です。VR 空間の描画にパフォーマンスが取られているのだと思われます。VR 描画は両眼分必要で、また処理落ちは酔いにつながるため VR 描画が優先されます。
●スマートフォン以外のデバイスを含めたコンパイル時間の比較
他のデバイスとの比較表も更新しました。835 も十分速いです。ただし条件が一定ではないので参考程度にお願いします。特に Windows 10 PC は仮想環境を使っています。
Device | SoC/CPU | RAM | Thread | Time |
---|---|---|---|---|
Desktop W10+VMware | Ryzen 7 1800X | 16GB | 16/8 | 24 |
Desktop W10+WSL | Ryzen 7 1800X | 32GB | 16/8 | 26 |
Desktop W10+VMware | Core i7-6700K | 16GB | 8/4 | 29 |
Pixel 3 | Snapdragon 845 | 4GB | 8/8 | 32 |
Desktop W10+VMware | Core i7-4790K | 8GB | 8/4 | 35 |
Essential Phone | Snapdragon 835 | 4GB | 8/8 | 38 |
Desktop W10+VMware | Core i7-4770 | 8GB | 8/4 | 39 |
MacMini 2012 | Core i7-3615QM | 16GB | 8/4 | 43 |
Galaxy S6 Edge | Exynos 7420 | 3GB | 8/8 | 77 |
Desktop Linux | A10-7870K | 8GB | 4/2 | 82 |
Chromebook C101PA | RK3399 | 4GB | 6/6 | 87 |
MacBook Pro 2013 | Core i5-3210M | 8GB | 4/2 | 97 |
Desktop Linux | Celeron J1900 | 8GB | 4/4 | 108 |
ZenFone AR | Snapdragon 821 | 8GB | 4/4 | 111 |
Nexus 5X | Snapdragon 808 | 2GB | 6/6 | 135 |
Tegra Note 7 | Tegra 4 | 1GB | 4/4 | 148 |
Note W10+WSL | Atom x7-Z8700 | 4GB | 4/4 | 200 |
Chromebook C720 | Celeron 2955U | 4GB | 2/2 | 222 |
Nexus 9 | Tegra K1 | 2GB | 2/2 | 272 |
Nexus 7 2013 | Snapdragon S4 Pro | 2GB | 4/4 | 275 |
Oculus Go | Snapdragon 821 | 3GB | 4/4 | 275 |
MeMO Pad 7 ME176C | Atom Z3745 | 1GB | 4/4 | 312 |
・Time (秒) が小さい方が高速。
関連ページ
・VFP Benchmark Log 計測結果まとめ
関連エントリ
・Snapdragon 845 の浮動小数点演算速度
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
・ARM CPU 上の開発環境とコンパイル時間の比較
・AMD CPU Ryzen とコンパイル時間の比較 (2)
・AMD CPU Ryzen とコンパイル時間の比較
・ARM CPU の浮動小数点演算能力まとめ
・HTC 10 Snapdragon 820 Kyro の浮動小数点演算能力
・iPhone SE, Apple A9 の浮動小数点演算速度
・Raspberry Pi 3 の速度比較, Cortex-A53 の速度
・ARM Cortex-A53 の浮動小数点演算速度とコンパイル時間の比較
・2955U vs N3150/J1900/Athlon5350 (コンパイル時間の比較)
・iPod touch 6 の浮動小数点演算速度は Core 2 Duo ライン超え
・Raspberry Pi 2 で速くなったコンパイル時間の比較
・iPad Air 2 (Apple A8X) の浮動小数点演算能力
・BayTrail vs Kabini (Celeron J1900 vs Athlon 5350)
・コンパイル時間の比較 BayTrail
・Atom vs Core i7
HTC Vive や Oculus Rift など、PC 向け VR HMD ではモニタ画面にもゲームの映像が出ます。周囲からも VR 内部がどんな状態なのかある程度は見えるようになっています。モバイルやスタンドアロンタイプの VR HMD だと本人にしかわからないので、デモなど人に見せたい場合は何らかの手段が必要です。
Android に標準で用意されている Chromecast や Miracast を使うのが簡単です。Oculus Go の場合もシェアボタンからリンクされているスマートフォンや Chromecast に出力できるようです。
下記は Daydream を Miracast で出力したものです。モニタ直撮り。使用した Miracast アダプタは Microsft Wireless Display Adapter。

また Windows 10 には Miracast 機能があるので、アダプタがなくても Wi-Fi があれば直接 PC に表示することができます。
(1) 設定→システム→この PC へプロジェクション
「セキュリティで保護されたネットワーク上のどこでも利用可能」
(2) スタートメニューから「接続」というアプリを起動。
この状態で HDMI の Miracast アダプタと同じように繋がります。なおこの PC は Wi-Fi を内蔵していますが LAN には有線接続しました。(Wi-Fi は Miracast 専用)
↓実際に ZenFone AR + Daydream でつないだところ。(Pixel 3 は Miracast 非対応でした)

他にもアプリを使う方法があります。様々なサイトで Vysor というソフトが紹介されていました。このソフトは画面のミラーリングだけでなく PC から操作もできるようです。
ただし接続に adb を使っており開発者モードを有効にする必要があります。ワイヤレス接続も adb の tcp 接続を使っているようです。
VR では PC からの操作は不要なのと、adb を使うなら python で作れそうな気がしたので作ってみました。
・GitHub: android_mirrortool
下記は android_mirrortool を使って Oculus Go を Windows PC にミラーリングしたところです。

Android には画面を録画する機能があります。それを adb 経由でストリーミングしているだけです。python の opencv を使っています。音は出ません。Windows と Linux で動きます。
● Windows の場合
(1) Android SDK を install し adb.exe にパスを張っておく
AndroidStudio をそのまま install した場合はこの辺です。
C:/Users/<USERNAME>/AppData/Local/Android/sdk/platform-tools
(2) python 3.x を install
(3) パッケージ pywin32 と opencv-python を install する
pip をを使ってインストールする場合
●使い方
(1) 開発者モードにして adb でつないでおきます。
(2) 「 python android_mirror.py 」を実行します。
画面に動きがないと Mirror Window が表示されないので最初はいろいろ操作して画面を動かしてみてください。終了は ESC キーです。
デフォルトで Full HD になります。VR が処理落ちする場合、または Wi-Fi で adb 接続する場合はレートやサイズを落としてください。
例
●Linux の場合
下記の操作は Debian 系
開発者モードにして adb でつながったら
●スクリーンキャプチャ
-c をつけるとスクリーンキャプチャになります。png で保存します。
関連エントリ
・Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
・Oculus Go を文章書き&開発マシンにする
・Gear VR のヘッドセットの種類のまとめ
・Oculus Go は VR ができる新しい携帯ゲーム機
Android に標準で用意されている Chromecast や Miracast を使うのが簡単です。Oculus Go の場合もシェアボタンからリンクされているスマートフォンや Chromecast に出力できるようです。
下記は Daydream を Miracast で出力したものです。モニタ直撮り。使用した Miracast アダプタは Microsft Wireless Display Adapter。

また Windows 10 には Miracast 機能があるので、アダプタがなくても Wi-Fi があれば直接 PC に表示することができます。
(1) 設定→システム→この PC へプロジェクション
「セキュリティで保護されたネットワーク上のどこでも利用可能」
(2) スタートメニューから「接続」というアプリを起動。
この状態で HDMI の Miracast アダプタと同じように繋がります。なおこの PC は Wi-Fi を内蔵していますが LAN には有線接続しました。(Wi-Fi は Miracast 専用)
↓実際に ZenFone AR + Daydream でつないだところ。(Pixel 3 は Miracast 非対応でした)

他にもアプリを使う方法があります。様々なサイトで Vysor というソフトが紹介されていました。このソフトは画面のミラーリングだけでなく PC から操作もできるようです。
ただし接続に adb を使っており開発者モードを有効にする必要があります。ワイヤレス接続も adb の tcp 接続を使っているようです。
VR では PC からの操作は不要なのと、adb を使うなら python で作れそうな気がしたので作ってみました。
・GitHub: android_mirrortool
下記は android_mirrortool を使って Oculus Go を Windows PC にミラーリングしたところです。

Android には画面を録画する機能があります。それを adb 経由でストリーミングしているだけです。python の opencv を使っています。音は出ません。Windows と Linux で動きます。
● Windows の場合
(1) Android SDK を install し adb.exe にパスを張っておく
AndroidStudio をそのまま install した場合はこの辺です。
C:/Users/<USERNAME>/AppData/Local/Android/sdk/platform-tools
(2) python 3.x を install
(3) パッケージ pywin32 と opencv-python を install する
pip をを使ってインストールする場合
pip3 install pywin32 pip3 install opencv-python
●使い方
(1) 開発者モードにして adb でつないでおきます。
(2) 「 python android_mirror.py 」を実行します。
画面に動きがないと Mirror Window が表示されないので最初はいろいろ操作して画面を動かしてみてください。終了は ESC キーです。
デフォルトで Full HD になります。VR が処理落ちする場合、または Wi-Fi で adb 接続する場合はレートやサイズを落としてください。
例
python android_mirror.py --bitrate 4m --size 1280x720
●Linux の場合
下記の操作は Debian 系
$ sudo apt install python3 python3-pip
$ pip3 install opencv-python
$ sudo apt install adb
$ pip3 install opencv-python
$ sudo apt install adb
開発者モードにして adb でつながったら
$ python3 android_mirror.py
●スクリーンキャプチャ
-c をつけるとスクリーンキャプチャになります。png で保存します。
python android_mirror.py -c
関連エントリ
・Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
・Oculus Go を文章書き&開発マシンにする
・Gear VR のヘッドセットの種類のまとめ
・Oculus Go は VR ができる新しい携帯ゲーム機
root 無しで簡単に Linux を起動できる UserLAnd が XSDL (X11 Server) との連携に対応しました。SSH, VNC 同様メニューから選べるようになったので試してみました。スマートフォンは ZenFone AR (ZS571KL) Android 7.0 を使っています。
Google Play ストアから UserLAnd をインストール。起動すると Linux Distribution を選択できます。今回の手順は Debian を選択しています。

Distribution を選択すると共有ストレージへのパーミッションを求めてきますが、これは /sdcard をマウントするため。
ユーザー名とパスワードの設定をします。

新しく XSDL が選択できるようになっています。

XServer XSDL をインストールしていない場合はここで Play Store に飛びます。先にインストールしておいた方が良いかもしれません。Bluetooth Keyboard と Bluetooth Mouse も先にペアリングしておくことをお勧めします。
インストールしたらもう一度 UserLAnd から Debian を選択。XSDL が起動し、一瞬切り替わったあと↓この画面で止まったように見えますがそのまま待ってください。

暫く待つと起動が終わり、左上に小さいターミナルウィンドウが出ます。止まったように見えたのは背景画像が残ってしまっているため。

xterm のウィンドウが小さいのは Native 解像度 (上の例は 2560x1440) で起動しているからです。
● XSDL の解像度変更方法
解像度の変更は XSDL 起動時の下記の画面で、カウントダウン中に画面をタップします。

↓選択画面になるので 1280x720 あたりを選択。

↓次にフォントスケールの選択。潰れて読めないけど X0.7~X0.4 あたりを選択。いろいろ試して見やすいように調整してください。

↓ウィンドウが大きくなりました。

● lxde を使う方法
UserLAnd から起動すると twm + xterm の最小限で立ち上がります。Desktop を使うには Script の書き換えが必要でした。
Desktop lxde の install 手順
一旦 SSH でログインしておきます。(Distribution 名長押し→ App Stop → App Info)
下記のファイルを編集します。
/support/startXSDLServer.sh
元の内容
下記のように書き換える
sleep の部分は適当に調節してください。これで XSDL に切り替えて起動すると、しばらく待ったあとに青い画面から下記のような desktop 画面になります。起動は気長に待ってください。

日本語化等の情報はこちらを参照してください。
・Hyperでんち: UserLAnd
●いくつかの問題点
・XSDL が Android 9 で動かない。
・lxde 起動には script 書き換えが必要
・Android で物理キーボードのレイアウトに日本語配列を選択していると一部のキーが入力できない
Android 9 Pie では XSDL が restart を繰り返してしまい起動しないので、UserLAnd 上でも選択できないようになっています。
関連ページ
・Android の上の開発環境: UserLAnd
関連エントリ
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
Google Play ストアから UserLAnd をインストール。起動すると Linux Distribution を選択できます。今回の手順は Debian を選択しています。

Distribution を選択すると共有ストレージへのパーミッションを求めてきますが、これは /sdcard をマウントするため。
ユーザー名とパスワードの設定をします。

新しく XSDL が選択できるようになっています。

XServer XSDL をインストールしていない場合はここで Play Store に飛びます。先にインストールしておいた方が良いかもしれません。Bluetooth Keyboard と Bluetooth Mouse も先にペアリングしておくことをお勧めします。
インストールしたらもう一度 UserLAnd から Debian を選択。XSDL が起動し、一瞬切り替わったあと↓この画面で止まったように見えますがそのまま待ってください。

暫く待つと起動が終わり、左上に小さいターミナルウィンドウが出ます。止まったように見えたのは背景画像が残ってしまっているため。

xterm のウィンドウが小さいのは Native 解像度 (上の例は 2560x1440) で起動しているからです。
● XSDL の解像度変更方法
解像度の変更は XSDL 起動時の下記の画面で、カウントダウン中に画面をタップします。

↓選択画面になるので 1280x720 あたりを選択。

↓次にフォントスケールの選択。潰れて読めないけど X0.7~X0.4 あたりを選択。いろいろ試して見やすいように調整してください。

↓ウィンドウが大きくなりました。

● lxde を使う方法
UserLAnd から起動すると twm + xterm の最小限で立ち上がります。Desktop を使うには Script の書き換えが必要でした。
Desktop lxde の install 手順
一旦 SSH でログインしておきます。(Distribution 名長押し→ App Stop → App Info)
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install lxde
$ sudo apt upgrade
$ sudo apt install lxde
下記のファイルを編集します。
/support/startXSDLServer.sh
元の内容
#! /bin/bash
if [[ -z "${DISPLAY}" ]]; then
DISPLAY=:4721
fi
if [[ -z "${PULSE_SERVER}" ]]; then
PULSE_SERVER=localhost:4721
fi
if [[ -z "${INITIAL_USERNAME}" ]]; then
INITIAL_USERNAME="user"
fi
until env DISPLAY=:4721 ; do sleep 1 ; done
nohup twm & echo $! > /tmp/xsdl.pidfile
while [ ! -f /tmp/xsdl.pidfile ]
do
sleep 1
done
su $INITIAL_USERNAME -c 'xterm -geometry 80x24+0+0 -e /bin/bash --login &'
if [[ -z "${DISPLAY}" ]]; then
DISPLAY=:4721
fi
if [[ -z "${PULSE_SERVER}" ]]; then
PULSE_SERVER=localhost:4721
fi
if [[ -z "${INITIAL_USERNAME}" ]]; then
INITIAL_USERNAME="user"
fi
until env DISPLAY=:4721 ; do sleep 1 ; done
nohup twm & echo $! > /tmp/xsdl.pidfile
while [ ! -f /tmp/xsdl.pidfile ]
do
sleep 1
done
su $INITIAL_USERNAME -c 'xterm -geometry 80x24+0+0 -e /bin/bash --login &'
下記のように書き換える
#! /bin/bash
if [[ -z "${DISPLAY}" ]]; then
DISPLAY=:4721
fi
if [[ -z "${PULSE_SERVER}" ]]; then
PULSE_SERVER=localhost:4721
fi
if [[ -z "${INITIAL_USERNAME}" ]]; then
INITIAL_USERNAME="user"
fi
until env DISPLAY=:4721 ; do sleep 1 ; done
# ここから下を改変
sleep 20
su $INITIAL_USERNAME -c 'startlxde &'
su $INITIAL_USERNAME -c 'xterm -geometry 80x24+0+0 -e /bin/bash --login &'
if [[ -z "${DISPLAY}" ]]; then
DISPLAY=:4721
fi
if [[ -z "${PULSE_SERVER}" ]]; then
PULSE_SERVER=localhost:4721
fi
if [[ -z "${INITIAL_USERNAME}" ]]; then
INITIAL_USERNAME="user"
fi
until env DISPLAY=:4721 ; do sleep 1 ; done
# ここから下を改変
sleep 20
su $INITIAL_USERNAME -c 'startlxde &'
su $INITIAL_USERNAME -c 'xterm -geometry 80x24+0+0 -e /bin/bash --login &'
sleep の部分は適当に調節してください。これで XSDL に切り替えて起動すると、しばらく待ったあとに青い画面から下記のような desktop 画面になります。起動は気長に待ってください。

日本語化等の情報はこちらを参照してください。
・Hyperでんち: UserLAnd
●いくつかの問題点
・XSDL が Android 9 で動かない。
・lxde 起動には script 書き換えが必要
・Android で物理キーボードのレイアウトに日本語配列を選択していると一部のキーが入力できない
Android 9 Pie では XSDL が restart を繰り返してしまい起動しないので、UserLAnd 上でも選択できないようになっています。
関連ページ
・Android の上の開発環境: UserLAnd
関連エントリ
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
2019/02/06
Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
前回 Oculus Go で UserLAnd を呼び出せるアプリを作ったのですが、せっかくなので何でも呼び出せるように普通のランチャーアプリも作ってみました。Oculus Go 上で様々な Android アプリが動きます。

任意の Android アプリを apk で直接 Install するだけで↑のようにランチャー画面にアイコンが並びます。
もちろん前回の TVWrapperUL 同様 UserLAnd や VNC Viewer、Android 設定画面も呼び出せます。(前回の記事はこちら「Oculus Go を文章書き&開発マシンにする」)
↓Firefox

↓AnyDesk で Windows 10 にログインしてさらに VMWare で Ubuntu

↓Kindle も動きましたがテキストタイプの書籍はフォントサイズが大きすぎます。ページを画像データとして持つ雑誌や漫画のような本は大丈夫そう。サイズ調節が難点。

↓Amazon App Store が動きました。ただし事前に提供元不明アプリのインストールを許可しておく必要があります。(詳細はあとで)

●TVLauncherGo Install 方法
Oculus TV 上で動くランチャーです。下記からダウンロードした TVLauncherGo の apk を install してください。Oculus TV の中から起動します。
・GitHub: TVLauncherGo1.0.apk
例えば adb を使って install するなら
1. Oculus Go を Developer Mode にする
2. Android SDK を install する (adb.exe にパスを通しておく)
3. PC と USB で接続する (必要なら adb ドライバを入れる)
4. adb install で apk をインストールする
TVLauncherGo が入れば、あとは設定画面や内蔵ファイラーが呼び出せるので Oculus Go 本体でアプリインストールもできるようになります。
●使い方
1. Oculus ストアから "Oculus TV" をインストールしておく
2. Oculus TV を起動
3. 画面の下の方にある "TVLauncherGo" を起動する (↓の赤枠)

起動するとインストールされている一般 Android アプリのアイコンが並ぶのでクリックで起動できます。アイコン長押しでアプリの詳細画面に飛ぶのでアンインストールもできます。
●注意点
事前に Bluetooth Keyboard をペアリングしておくことをお勧めします。ペアリングは Oculus TV → TVLauncherGo → 設定 → Bluetooth から行ってください。
TVLauncherGo 経由ではなく、アプリが直接他のアプリを呼び出してしまう場合があります。VR 空間ではなく 2D でアプリやダイアログが表示されると Controller では操作できなくなるので注意が必要です。Keyboard があれば [ESC] や [Enter] キーで脱出できるかもしれません。
●一般の Android Apk をインストールする方法
さまざまな方法が使えます。
・adb で PC 経由で install
・Dropbox などオンラインストレージ経由で転送して、内蔵ファイラーでインストール
・Amazon などストアアプリ経由のインストール
など。
ブラウザで直接ダウンロードできる場合もありますが apk のインストールに関しては自己責任でお願いします。
●adb を使った PC 経由の install
Oculus Go が adb でつながっているなら PC から install するのが簡単です。TVLauncherGo.apk と同じように
でできます。
●オンラインストレージ経由での apk 転送
Dropbox のようなオンラインストレージを経由して apk ファイルを転送することもできます。Dropbox 上で apk を直接開かないようにしてください。ダイアログが 2D 描画されてしまい操作できなくなります。
メニューからエクスポートを使って一旦ローカルストレージに保存します。その後内蔵ファイラーを使ってインストールしてください。
●内蔵ファイラーを使ったインストール方法
Oculus Go 上に転送した apk をインストールするには下記の手順に従ってください。
1. インストールを許可
Oculus TV → TVLauncherGo → 設定 → セキュリティ → 提供元不明アプリのインストールを許可する
2. 内蔵ファイラーを起動する
Oculus TV → TVLauncherGo → 設定 → ストレージ → 外部メディア
3. apk のインストール
ファイラーが起動したら、本体ストレージ(Pacific) を選択します。例えば Download フォルダにあるなら Pacific → Download を開きます。apk file をクリックすると install できます。
●ストアアプリ経由のインストール
Amazon App Store を使ったインストールもできます。ただしいくつか注意が必要です。
インストール許可の設定画面が 2D 描画になるので、必ず先に「TVLauncherGo → 設定 → セキュリティ → 提供元不明アプリのインストールを許可する」で許可しておいてください。
Amazon App Store の「インストールしますか」のダイアログが左右の目で矛盾した描画になりますが操作はできます。片目で操作してください。
インストールしたアプリはストアから直接開かないで、一旦戻って TVLauncherGo から起動してください。
●apk ファイルを入手するには
手持ちの Android スマートフォンから install してある apk file を取り出すことができます。apk を取り出す script を作ってみました。
・GitHub: apk_get.py
1. PC に Python 3.x を install しておきます。
2. スマートフォンを Developer Mode にして PC と adb と接続します。
3. python apk_get.py を実行します。
これでインストールされているアプリの apk file をすべて取り出すことができます。
●VR 空間での起動と Oculus TV での起動の違いについて
VR 空間で直接 Android アプリを起動してしまうと問題が生じることがあります。一度起動して Activity が残っていると、以後 Oculus TV から呼び出しても VR 空間のままになる場合があるので注意が必要です。
(1) 例えば設定画面の場合、↓が VR 空間に直接描画されている状態です。少々わかりにくいですが周囲が真っ暗で部屋がありません。

↑この状態だと一部のダイアログで操作できなくなる場合があります。例えば Bluetooth のペアリング削除画面ではまります。また一部の画面で固まったり落ちたりします。アプリ一覧画面、レイアウト変更画面など。
(2) Oculus Go 起動直後に Oculus TV → TVLauncherGo → 設定 で呼び出すと ↓ のようになります。部屋の中にウィンドウが配置されています。

↑こちらは普通の Android と同じ操作が可能でダイアログも問題が出ません。物理キーボードのレイアウト変更もできました。↓

もし (1) の状態なってしまった場合は、Activity を完全に終了させるために一旦 Oculus Go を再起動することをお勧めします。電源ボタンの長押しでできます。
また前回の記事で書いたような adb コマンドを使った設定画面呼び出しは確実に (1) の状態になるので注意してください。adb を使った起動はしないで Oculus TV (TVLauncherGo) 経由で設定を呼び出すことを強くお勧めします。
外部のアプリを呼び出すアプリにも注意が必要です。Dropbox や Amazon App Store など、外部アプリや設定画面が呼ばれると Oculus TV を経由せずに直接 VR 空間や 2D 描画されてしまう場合があります。
再起動しても画面が真っ暗で操作できなくなったら、近接センサーが中途半端な状態になっている場合があります。Oculus Go の HMD 内部、中央上部の近接センサーに触れてみてください。
関連エントリ
・Oculus Go を文章書き&開発マシンにする
・Gear VR のヘッドセットの種類のまとめ
・Oculus Go は VR ができる新しい携帯ゲーム機


任意の Android アプリを apk で直接 Install するだけで↑のようにランチャー画面にアイコンが並びます。
もちろん前回の TVWrapperUL 同様 UserLAnd や VNC Viewer、Android 設定画面も呼び出せます。(前回の記事はこちら「Oculus Go を文章書き&開発マシンにする」)
↓Firefox

↓AnyDesk で Windows 10 にログインしてさらに VMWare で Ubuntu

↓Kindle も動きましたがテキストタイプの書籍はフォントサイズが大きすぎます。ページを画像データとして持つ雑誌や漫画のような本は大丈夫そう。サイズ調節が難点。

↓Amazon App Store が動きました。ただし事前に提供元不明アプリのインストールを許可しておく必要があります。(詳細はあとで)

●TVLauncherGo Install 方法
Oculus TV 上で動くランチャーです。下記からダウンロードした TVLauncherGo の apk を install してください。Oculus TV の中から起動します。
・GitHub: TVLauncherGo1.0.apk
例えば adb を使って install するなら
1. Oculus Go を Developer Mode にする
2. Android SDK を install する (adb.exe にパスを通しておく)
3. PC と USB で接続する (必要なら adb ドライバを入れる)
4. adb install で apk をインストールする
adb install TVLauncherGo1.0.apk
TVLauncherGo が入れば、あとは設定画面や内蔵ファイラーが呼び出せるので Oculus Go 本体でアプリインストールもできるようになります。
●使い方
1. Oculus ストアから "Oculus TV" をインストールしておく
2. Oculus TV を起動
3. 画面の下の方にある "TVLauncherGo" を起動する (↓の赤枠)

起動するとインストールされている一般 Android アプリのアイコンが並ぶのでクリックで起動できます。アイコン長押しでアプリの詳細画面に飛ぶのでアンインストールもできます。
●注意点
事前に Bluetooth Keyboard をペアリングしておくことをお勧めします。ペアリングは Oculus TV → TVLauncherGo → 設定 → Bluetooth から行ってください。
TVLauncherGo 経由ではなく、アプリが直接他のアプリを呼び出してしまう場合があります。VR 空間ではなく 2D でアプリやダイアログが表示されると Controller では操作できなくなるので注意が必要です。Keyboard があれば [ESC] や [Enter] キーで脱出できるかもしれません。
●一般の Android Apk をインストールする方法
さまざまな方法が使えます。
・adb で PC 経由で install
・Dropbox などオンラインストレージ経由で転送して、内蔵ファイラーでインストール
・Amazon などストアアプリ経由のインストール
など。
ブラウザで直接ダウンロードできる場合もありますが apk のインストールに関しては自己責任でお願いします。
●adb を使った PC 経由の install
Oculus Go が adb でつながっているなら PC から install するのが簡単です。TVLauncherGo.apk と同じように
adb install アプリ.apk
でできます。
●オンラインストレージ経由での apk 転送
Dropbox のようなオンラインストレージを経由して apk ファイルを転送することもできます。Dropbox 上で apk を直接開かないようにしてください。ダイアログが 2D 描画されてしまい操作できなくなります。
メニューからエクスポートを使って一旦ローカルストレージに保存します。その後内蔵ファイラーを使ってインストールしてください。
●内蔵ファイラーを使ったインストール方法
Oculus Go 上に転送した apk をインストールするには下記の手順に従ってください。
1. インストールを許可
Oculus TV → TVLauncherGo → 設定 → セキュリティ → 提供元不明アプリのインストールを許可する
2. 内蔵ファイラーを起動する
Oculus TV → TVLauncherGo → 設定 → ストレージ → 外部メディア
3. apk のインストール
ファイラーが起動したら、本体ストレージ(Pacific) を選択します。例えば Download フォルダにあるなら Pacific → Download を開きます。apk file をクリックすると install できます。
●ストアアプリ経由のインストール
Amazon App Store を使ったインストールもできます。ただしいくつか注意が必要です。
インストール許可の設定画面が 2D 描画になるので、必ず先に「TVLauncherGo → 設定 → セキュリティ → 提供元不明アプリのインストールを許可する」で許可しておいてください。
Amazon App Store の「インストールしますか」のダイアログが左右の目で矛盾した描画になりますが操作はできます。片目で操作してください。
インストールしたアプリはストアから直接開かないで、一旦戻って TVLauncherGo から起動してください。
●apk ファイルを入手するには
手持ちの Android スマートフォンから install してある apk file を取り出すことができます。apk を取り出す script を作ってみました。
・GitHub: apk_get.py
1. PC に Python 3.x を install しておきます。
2. スマートフォンを Developer Mode にして PC と adb と接続します。
3. python apk_get.py を実行します。
python apk_get.py
これでインストールされているアプリの apk file をすべて取り出すことができます。
●VR 空間での起動と Oculus TV での起動の違いについて
VR 空間で直接 Android アプリを起動してしまうと問題が生じることがあります。一度起動して Activity が残っていると、以後 Oculus TV から呼び出しても VR 空間のままになる場合があるので注意が必要です。
(1) 例えば設定画面の場合、↓が VR 空間に直接描画されている状態です。少々わかりにくいですが周囲が真っ暗で部屋がありません。

↑この状態だと一部のダイアログで操作できなくなる場合があります。例えば Bluetooth のペアリング削除画面ではまります。また一部の画面で固まったり落ちたりします。アプリ一覧画面、レイアウト変更画面など。
(2) Oculus Go 起動直後に Oculus TV → TVLauncherGo → 設定 で呼び出すと ↓ のようになります。部屋の中にウィンドウが配置されています。

↑こちらは普通の Android と同じ操作が可能でダイアログも問題が出ません。物理キーボードのレイアウト変更もできました。↓

もし (1) の状態なってしまった場合は、Activity を完全に終了させるために一旦 Oculus Go を再起動することをお勧めします。電源ボタンの長押しでできます。
また前回の記事で書いたような adb コマンドを使った設定画面呼び出しは確実に (1) の状態になるので注意してください。adb を使った起動はしないで Oculus TV (TVLauncherGo) 経由で設定を呼び出すことを強くお勧めします。
外部のアプリを呼び出すアプリにも注意が必要です。Dropbox や Amazon App Store など、外部アプリや設定画面が呼ばれると Oculus TV を経由せずに直接 VR 空間や 2D 描画されてしまう場合があります。
再起動しても画面が真っ暗で操作できなくなったら、近接センサーが中途半端な状態になっている場合があります。Oculus Go の HMD 内部、中央上部の近接センサーに触れてみてください。
関連エントリ
・Oculus Go を文章書き&開発マシンにする
・Gear VR のヘッドセットの種類のまとめ
・Oculus Go は VR ができる新しい携帯ゲーム機
2019/02/02
Oculus Go を文章書き&開発マシンにする
Oculus Go にも Bluetooth Keyboard が接続できて、さらに一般の Android アプリが動くらしいと今更ながら知ったので、先人の知恵をお借りしつつ UserLAnd を動かしてみました。どこでも Oculus Go をかぶって大画面で日本語文章書いたりプログラム書いたりできます。
Remote Desktop ではないので Network がなくても単体で使えます。

↑ Oculus Go で動く Debian の Desktop。Oculus TV は残念ながら画面キャプチャできないので、Oculus Go を覗いたところを無理やり写真に撮っています。
参考にさせていただいた情報
・Oculus Go Tips
・KILINBOX: Oculus GoでAndroidアプリを動かす
調べてみたらすでに同じようなことを実践している方もいらっしゃるようです。
・Oculus GoでスタンドアロンVR作業環境を作った
● Bluetooth Keyboard が使える
adb 経由で Settings 画面を呼び出せば Bluetooth 設定ができるようです。上の参考にさせていただいた Tips ページで直接 Bluetooth 画面を呼び出す方法が紹介されています。
下記のように設定画面の Top を呼び出すことも可能です。(追記 2019/02/06: この方法ではダイアログが操作できない場合があることがわかったので非推奨です。詳細はこちら)
毎回 PC 上で呼び出すのも大変なので、単独で使えるよう設定画面を呼び出すアプリを作成しました。(後述)
● 一般のアプリが動く
通常の Android apk を Oculus Go にそのまま install しても VR に対応していないためライブラリに表示されません。ところが公式アプリの Oculus TV を起動すると、一部のアプリが下の方に表示されていました。選択すると VR 空間の TV の中で実行できるようです。
特に Termux は何もしなくても表示されており、apk install だけでそのまま使うことができました。↓

どうやら Oculus TV には Android TV に対応したアプリが表示されるようです。AndroidManifest.xml に LEANBACK_LAUNCER を登録しておけば Oculus Go の上で実行できることになります。
Linux 環境を走らせるアプリ UserLAnd には LEANBACK_LAUNCER が入っていないので Oculus TV から見えませんでした。ダミーアプリを作って Intent で呼び出せば Oculus TV の上で実行できそうです。
こちらで紹介されていた TvAppRepo というアプリがまさにそれで、Android TV 用のダミーアプリを実機上で作ることができます。
● UserLAnd を呼び出すだけのアプリを作る
実際にアプリを作ってみます。AndroidStudio で Android TV 向けの空 Project を作ります。Tempalte で Android TV Activity を選択しておき、Activity 起動直後に UserLAnd を呼び出します。
これだけでうまくいきました。apk 作ってを Oculus Go に install すると Oculus TV にアイコンが並びます。起動すると Oculus TV の上で UserLAnd が動きました。
Bluetooth Keyboard があれば任意の Linux Distribution を使うことができます。これでテキストエディタ、日本語入力、開発用言語など、様々なものが動きます。
この UserLAnd を呼び出すだけの簡単なアプリをこちらで公開してみました。ついでに Real VNC Viewer と設定画面も呼び出せるようにしています。
・GitHub: TVWrapperUL 1.0
● VNC を起動する
LuserLAnd が内部で呼び出している bVNC Free は残念ながら Oculus Go で動きませんでした。VR を無視して全画面表示になってしまいます。代わりに Real VNC Viewer (com.realvnc.viewer.android) が動いたのでこちらを使います。UserLAnd と全く同じように Wrapper アプリで呼び出せるので TVWrapperUL に追加しました。
UserLAnd で動いている tightvncserver の port は 5951 です。VNC Server のアドレスには "127.0.0.1:5951" を指定してください。
● 手順の詳細
(1) Oculus Go を Develoepr mode にして PC と adb で接続します。
(2) TVWrapperUL の apk を Oculus Go に install してください。
(3) Oculus TV から TVWrapperUL を起動。Settings → Bluetooh で Bluetooth Keyboard をペアリングしておきます。
(4) UserLAnd (tech.ula) と RealVNC Viewer (com.realvnc.viewer.android) の APK を adb で Oculus Go に install します
(5) Oculus TV → TVWrapperUL → UserLAnd で起動します。
(6) 任意の Linux Distributon を選択します
Keyboard を使って Username, password, VNC password を入力。ここでは SSH を選びます
日本語化を行えば、そのまま Console で文章書き環境として利用可能です。
・UserLAnd の日本語化や日本語入力環境の解説
↓Ubuntu の Console で日本語入力

Desktop (lxde 等) 環境も VNC 経由で使うことができます。
● VNC 接続手順
(1) Oculus TV → TVWrapperUL → UserLAnd
(2) Linux Distributon を選択。User を作って VNC を選択
すでに SSH で作ってある場合は下記の手順で VNC 切り替えます。
1. 長押しして Stop App
2. もう一度長押しして App Info → VNC に切り替え
3. Distribution 名をクリックすると起動
(3) Client アプリがないと言われるので一旦 OK して、Controller のメニュー(←) ボタンを何度か押して戻る
(4) Oculus TV → TVWrapperUL → RealVNC を選択
(5) 右下の + ボタンを押して New Connection 画面から設定を追加。Address は "127.0.0.1:5951" 名前は任意
(6) (5) で作った設定を選んで CONNECT を押す。User 作成時に決めた VNC Password を入れると繋がります。
・Desktop の install 手順、VNC 解像度指定方法などはこちらを参照してください。
● 課題など
Android 設定画面から物理キーボードのレイアウト変更ができませんでした。設定画面が落ちるため。(追記: X11 desktop なら xmodmap による変更は可能) (追記 2019/02/06: Oculus TV + TVLauncherGo から設定を呼び出せばできることがわかりました)
Oculus Go Controller を使ったマウス操作が難しいかもしれません。
Oculus TV 上で起動したアプリは画面キャプチャが禁止されているらしく、画面を保存できなくなっています。ミラーリングも真っ黒な画面です。
(追記 2019/02/06: UserLAnd 以外も呼び出せるランチャーを作りました。詳細はこちら「Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた」)
関連ページ
・Android の上の開発環境: UserLAnd
関連エントリ
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
・Gear VR のヘッドセットの種類のまとめ
・Oculus Go は VR ができる新しい携帯ゲーム機
Remote Desktop ではないので Network がなくても単体で使えます。


↑ Oculus Go で動く Debian の Desktop。Oculus TV は残念ながら画面キャプチャできないので、Oculus Go を覗いたところを無理やり写真に撮っています。
参考にさせていただいた情報
・Oculus Go Tips
・KILINBOX: Oculus GoでAndroidアプリを動かす
調べてみたらすでに同じようなことを実践している方もいらっしゃるようです。
・Oculus GoでスタンドアロンVR作業環境を作った
● Bluetooth Keyboard が使える
adb 経由で Settings 画面を呼び出せば Bluetooth 設定ができるようです。上の参考にさせていただいた Tips ページで直接 Bluetooth 画面を呼び出す方法が紹介されています。
下記のように設定画面の Top を呼び出すことも可能です。(追記 2019/02/06: この方法ではダイアログが操作できない場合があることがわかったので非推奨です。詳細はこちら)
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings
毎回 PC 上で呼び出すのも大変なので、単独で使えるよう設定画面を呼び出すアプリを作成しました。(後述)
● 一般のアプリが動く
通常の Android apk を Oculus Go にそのまま install しても VR に対応していないためライブラリに表示されません。ところが公式アプリの Oculus TV を起動すると、一部のアプリが下の方に表示されていました。選択すると VR 空間の TV の中で実行できるようです。
特に Termux は何もしなくても表示されており、apk install だけでそのまま使うことができました。↓

どうやら Oculus TV には Android TV に対応したアプリが表示されるようです。AndroidManifest.xml に LEANBACK_LAUNCER を登録しておけば Oculus Go の上で実行できることになります。
Linux 環境を走らせるアプリ UserLAnd には LEANBACK_LAUNCER が入っていないので Oculus TV から見えませんでした。ダミーアプリを作って Intent で呼び出せば Oculus TV の上で実行できそうです。
こちらで紹介されていた TvAppRepo というアプリがまさにそれで、Android TV 用のダミーアプリを実機上で作ることができます。
● UserLAnd を呼び出すだけのアプリを作る
実際にアプリを作ってみます。AndroidStudio で Android TV 向けの空 Project を作ります。Tempalte で Android TV Activity を選択しておき、Activity 起動直後に UserLAnd を呼び出します。
// MainActivity.java
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.os.Bundle;
import android.content.pm.PackageManager;
import android.content.Intent;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PackageManager manager= getPackageManager();
Intent it= manager.getLaunchIntentForPackage( "tech.ula" );
it.addCategory( Intent.CATEGORY_LAUNCHER );
startActivity( it );
}
}
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.os.Bundle;
import android.content.pm.PackageManager;
import android.content.Intent;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PackageManager manager= getPackageManager();
Intent it= manager.getLaunchIntentForPackage( "tech.ula" );
it.addCategory( Intent.CATEGORY_LAUNCHER );
startActivity( it );
}
}
これだけでうまくいきました。apk 作ってを Oculus Go に install すると Oculus TV にアイコンが並びます。起動すると Oculus TV の上で UserLAnd が動きました。
Bluetooth Keyboard があれば任意の Linux Distribution を使うことができます。これでテキストエディタ、日本語入力、開発用言語など、様々なものが動きます。
この UserLAnd を呼び出すだけの簡単なアプリをこちらで公開してみました。ついでに Real VNC Viewer と設定画面も呼び出せるようにしています。
・GitHub: TVWrapperUL 1.0
● VNC を起動する
LuserLAnd が内部で呼び出している bVNC Free は残念ながら Oculus Go で動きませんでした。VR を無視して全画面表示になってしまいます。代わりに Real VNC Viewer (com.realvnc.viewer.android) が動いたのでこちらを使います。UserLAnd と全く同じように Wrapper アプリで呼び出せるので TVWrapperUL に追加しました。
UserLAnd で動いている tightvncserver の port は 5951 です。VNC Server のアドレスには "127.0.0.1:5951" を指定してください。
● 手順の詳細
(1) Oculus Go を Develoepr mode にして PC と adb で接続します。
(2) TVWrapperUL の apk を Oculus Go に install してください。
adb install TVWrapperUL1.0.apk
(3) Oculus TV から TVWrapperUL を起動。Settings → Bluetooh で Bluetooth Keyboard をペアリングしておきます。
(4) UserLAnd (tech.ula) と RealVNC Viewer (com.realvnc.viewer.android) の APK を adb で Oculus Go に install します
(5) Oculus TV → TVWrapperUL → UserLAnd で起動します。
(6) 任意の Linux Distributon を選択します
Keyboard を使って Username, password, VNC password を入力。ここでは SSH を選びます
日本語化を行えば、そのまま Console で文章書き環境として利用可能です。
・UserLAnd の日本語化や日本語入力環境の解説
↓Ubuntu の Console で日本語入力

Desktop (lxde 等) 環境も VNC 経由で使うことができます。
● VNC 接続手順
(1) Oculus TV → TVWrapperUL → UserLAnd
(2) Linux Distributon を選択。User を作って VNC を選択
すでに SSH で作ってある場合は下記の手順で VNC 切り替えます。
1. 長押しして Stop App
2. もう一度長押しして App Info → VNC に切り替え
3. Distribution 名をクリックすると起動
(3) Client アプリがないと言われるので一旦 OK して、Controller の
(4) Oculus TV → TVWrapperUL → RealVNC を選択
(5) 右下の + ボタンを押して New Connection 画面から設定を追加。Address は "127.0.0.1:5951" 名前は任意
(6) (5) で作った設定を選んで CONNECT を押す。User 作成時に決めた VNC Password を入れると繋がります。
・Desktop の install 手順、VNC 解像度指定方法などはこちらを参照してください。
● 課題など
Oculus Go Controller を使ったマウス操作が難しいかもしれません。
Oculus TV 上で起動したアプリは画面キャプチャが禁止されているらしく、画面を保存できなくなっています。ミラーリングも真っ黒な画面です。
(追記 2019/02/06: UserLAnd 以外も呼び出せるランチャーを作りました。詳細はこちら「Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた」)
関連ページ
・Android の上の開発環境: UserLAnd
関連エントリ
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
・Gear VR のヘッドセットの種類のまとめ
・Oculus Go は VR ができる新しい携帯ゲーム機