前言
前兩篇把作業系統跟 Docker 安裝講完了,接下來就是 Android 容器的安裝了,這裡選用 ReDroid ,因為它是開源、高效、又便於管理的方案。
輔助程式安裝與設定
動態核心模組載入
$ sudo apt install linux-modules-extra-`uname -r`
$ sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
$ sudo modprobe ashmem_linux
$ lsmod
Module Size Used by
ashmem_linux 20480 0
binder_linux 208896 0
以上動作是每次開機都要做一次,如果之後想讓它每次開機都自動載入,可以追加以下指令:(請先sudo su 變換成 root 執行之後的指令)
$ sudo su
root$ echo "binder_linux" > /etc/modules-load.d/redroid.conf
root$ echo "ashmem_linux" >> /etc/modules-load.d/redroid.conf
root$ echo 'options binder_linux devices="binder,hwbinder,vndbinder"' >> /etc/modprobe.d/redroid.conf
root@osboxes:/etc/modules-load.d# cat redroid.conf
binder_linux
ashmem_linux
options binder_linux devices="binder,hwbinder,vndbinder"
root$ exit
$
ADB (android debug bridge) 安裝
sudo apt-get install adb -y
scrcpy (Screen Copy) 遠端裝置桌面連線程式
sudo apt install scrcpy -y
決定 Android 版本並下載
在 ReDroid 的頁面說支援 8-13 的版本,不過親測只有 10 / 11 可以順利開啟看到畫面,其他版本如果大家有試出來也請分享一下作法。
下載並執行 Android 11 的容器
sudo docker run -itd --privileged --pull always -v ~/data11:/data -p 5555:5555 redroid/redroid:11.0.0-latest
以上指令會把容器下載並把解開的資料放在家目錄下的 ~/data11 中
可以透過 sudo docker ps 確認(CONTAINER ID是隨機的一定不一樣)
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a5a2aa9c7fd redroid/redroid:11.0.0-latest "/init qemu=1 androi…" 26 seconds ago Up 24 seconds 0.0.0.0:5555->5555/tcp, :::5555->5555/tcp gifted_shtern
連接裝置畫面
啟動 ADB 服務
adb connect localhost:5555
確認裝置狀態
$ adb devices
List of devices attached
localhost:5555 device
開啟遠端畫面
scrcpy -s localhost:5555
Android 11 基本使用
連進去之後看到空蕩蕩的 Android 可能有點傻眼,但其實是完整的系統,除了 Google 全家桶之外。
以下羅列常見的操作
- 檢視應用程式清單:主畫面下方空白處,由下往上拉就會看到所有應用
- 開啟設定:上方狀態列下拉在下拉,就看到齒輪,點擊後即可開啟設定
小結
ReDroid 是一套小巧精悍的 Android 模擬器,用起來就知道有多快速高效,我們會以此為目標裝置,接著帶大家看如何安裝 Google 全家桶,安裝 App與基本除錯等。