はじめに
開発マシン用にChromebookを購入しました
Intellijをインストールし、Androidアプリを開発可能な状態まで持っていけた事と、他の方が成功していないAVDによるAndroidエミュレーター起動までうまく行ったため方法を残します。
執筆時のバージョン
Soft | Ver |
---|---|
Chrome OS | 108.0.5359.111 |
IntelliJ IDEA Ultimate | 2022.3.1 |
Chrome OSでLinux開発環境の有効化
設定 > デベロッパー > Linux開発環境 > オンにする をクリック
ユーザー名は好きに付ける。ディクスサイズは20GB程度は必要。
日本語入力、表示を有効化
下記のコマンドをターミナルに流し込んだら、日本語入力は可能な状態になる。
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
source /etc/default/locale
sudo apt -y install fcitx5-mozc
echo "systemctl --user set-environment GTK_IM_MODULE=fcitx" >> ~/.sommelierrc
echo "systemctl --user set-environment QT_IM_MODULE=fcitx" >> ~/.sommelierrc
echo "systemctl --user set-environment XMODIFIERS=@im=fcitx" >> ~/.sommelierrc
echo "/usr/bin/fcitx5 -d" >> ~/.sommelierrc
fcitx5-configtool
GitやKVMなど必要アプリのインストールとKVMの権限付与
sudo apt -y install adb git libsecret-1-0 gnome-keyring
sudo apt -y install qemu-kvm
sudo gpasswd -a "${USER}" kvm
JetBrains Toolbox Appをインストールし、ToolboxからIntellijまたはAndroid Studioをインストール
下記のコマンドをターミナルに流すと、JetBrains Toolbox Appがインストールされ立ち上がる
wget -cO jetbrains-toolbox.tar.gz "https://www.jetbrains.com/ja-jp/toolbox-app/download/download-thanks.html?platform=linux"
tar -xvzf jetbrains-toolbox*.tar.gz
./jetbrains-toolbox-*/jetbrains-toolbox
ここで、IntelliJ IDEA Ultimate、IntelliJ IDEA Community、Android Studioで必要なものをインストール。
Androidの開発であれば、どれを選択しても可能です。
AVDが立ち上がるように、ネストされた仮想環境の有効化
くわしくはChrome OSの構造を調べるとわかるが、今まで設定したLinux仮想環境とは、Chrome OS基盤に乗っかったtermina VMの中にネストされた、Debian Containerこそがその本体となる。
https://chromium.googlesource.com/chromiumos/docs/+/master/crostini_developer_guide.md
このDebian Containerはlxcという仮想化ソフトで実行されている。
それで、Android Studioなどで実行されるAVDはKVMという仮想化ソフトで実行されるが、いままでインストールしてきて分かる通り、この実行環境そのものが、lxcの中にいることが理解できると思う。
さて、lxcの実行環境はデフォルトの設定では、その中でネストされた仮想環境は走らないようになっているため、設定を書き換えてやる必要がある。
Chromeを立ち上げ、「ctrl」+「alt」+tでdeveloper shellに入れる。
ここで、以下のコマンドを実行し、termina VMを起動し中に入る。
vmc start termina
VMの中に入ると、プロンプトの表示が変わるのがわかる。
ここで、lxcのネストを許可するコマンドを実行し、VMをexitで抜ける
lxc config set penguin security.nesting true
exit
termina VMをストップし、exitでdeveloper shellからも抜ける
vmc stop termina
exit
これで、Android Studioなどから、KVM環境での仮想化、すなわちAVDが実行できるようになる。
Chrome OS側のAndroidエミュレーターを実行したい場合
AVDではなく、Chrome OSに初期搭載されているAndroidエミュレーターにアプリをサイドロードできるように設定するには以下の画面の通り設定が必要です。この設定によりAndroid Studioなどから、開発中のアプリをサイドロードできるようになります。
実行速度はこちらの方が早いです。
また、設定画面にも出てきますが、設定をもとに戻したい場合、出荷状態にPowerwashする必要があります。
さらに、x64版のChromebookではAndroidのバージョンが11になったため、WiFi経由でサイドロードができるようになりました。こちらだとPowerwashすることなくもとに戻せるため、おすすめです。
しかしAVDのように、Android11と12などバージョンを切り替えてデバックすることはできません。あくまでChrome OSに搭載された1バージョンについてのデバックのみ可能です。
最後に
少し設定は面倒ですが、Chrome OSでもWindowsやmacOSのようにAndroidのフル開発環境が手に入るようになってきました。
開発が捗りますね。