AndroidStudio in Docker: 使用文档
[TOC]
简介
本文是DaaS
的使用文档。关于DaaS
详见Docker as AS Daas: 在Docker中运行的AndroidStudio。
Getting Started
从Docker hub拉取镜像:
启动DAAS:创建容器
- 创建容器
docker run -dit --name PeaceDAASMaker -p 8205:5901 -v ~/project/:/metaworld peacedocker10/niko-daas:1.4
注意,当服务器的端口被占用时,请在启动命令中自行更改端口。
请替换
PeaceDAASMaker
为你自定义的容器名称,也可以直接复制命令以使用该名称。缺省时Docker会随机命名。
请选择需要挂载进容器
/metaworld
的目录,如上命令所示~/project
将会被挂载到Docker内的/metaworld
。
- 进入容器
容器创建指令执行后可以自动进入容器的shell。上述指令执行后我们会自动进入。通过该指令同样可以在容器没有退出时进入。1
2
3docker container ls # 找到你的容器ID
docker exec -it <ID> bash # 进入你的容器并执行bash
连接到DAAS:在容器中启动VNC
- 容器启动vnc
通过该指令启动一个指定了分辨率的Display。注意当你的vnc client与容器是同一台主机时,-localhost no
值得被移除。
1 | vncserver :1 -geometry=1920x1080 -localhost no |
- vnc client 连接到VNC
VNC软件见本文最后一节。操作方法已开源至合作伙伴,欢迎访问
密码:
DaaS
将vnc密码配置为8888。端口号是容器创建指令中指定的端口(上述命令中的8205)
退出容器
本节介绍如何退出容器。
1 | docker container [cmd] |
如果使用
stop
让容器停止,容器内所有更改将消失,下次只能从镜像中再次启动。
如果使用
pause
让容器暂停,下次启动可以直接start
容器。
一段时间不使用DAAS请将DAAS
pause
,长期不使用请stop
。
使用DAAS:启动Android Studio并导入源码
DaaS已经预置了Android Studio并配置了相关偏好,可以在DaaS的xfce桌面中的dock栏或状态栏找到应用启动器,并启动Android Studio。
导入代码
导入App代码是基操。本节仅讲述导入Android系统代码,以下使用
AOSP
。
- 获取AOSP源码并创建AOSP工程文件
- Android Studio打开android.iml文件,并通过project structure配置源码目录,可能额外需要将Android Studio为项目自动识别的SDK移除掉,保证相关跳转能够跳入AOSP的代码内(而不是跳入Android Studio下载的官方SDK内)
- 导入代码后,通过代码跳转和远程调试进程来验证有效
troubleshooting
- 无法连接vnc
确认vnc已经启动、确认vnc的端口号
1
netstat -ntupl
确认docker已经将端口暴露到主机
可以通过docker inspect等方法查看容器信息。
- Android Studio无法导入源码或导入后缺失功能
- 这是Android Studio的功能,原则上不是由DAAS处理。如果困难确实存在,请联系本文作者取得指导。
Prerequisistes
- Docker镜像:通过Docker Hub或Harbor下载镜像(TODO: 暂未上传)
- VNC-Viewer-6.21.1109-Windows-64bit
关键feature及展示
常规的AndroidStudio功能
远程ADB调试
UI调试