[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
    3
    docker 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请将DAASpause,长期不使用请stop

使用DAAS:启动Android Studio并导入源码

DaaS已经预置了Android Studio并配置了相关偏好,可以在DaaS的xfce桌面中的dock栏或状态栏找到应用启动器,并启动Android Studio。

导入代码

导入App代码是基操。本节仅讲述导入Android系统代码,以下使用AOSP

  1. 获取AOSP源码并创建AOSP工程文件
  2. Android Studio打开android.iml文件,并通过project structure配置源码目录,可能额外需要将Android Studio为项目自动识别的SDK移除掉,保证相关跳转能够跳入AOSP的代码内(而不是跳入Android Studio下载的官方SDK内)
  3. 导入代码后,通过代码跳转和远程调试进程来验证有效

troubleshooting

  1. 无法连接vnc
  • 确认vnc已经启动、确认vnc的端口号

    1
    netstat -ntupl
  • 确认docker已经将端口暴露到主机

可以通过docker inspect等方法查看容器信息。

  1. Android Studio无法导入源码或导入后缺失功能
  • 这是Android Studio的功能,原则上不是由DAAS处理。如果困难确实存在,请联系本文作者取得指导。

Prerequisistes

  1. Docker镜像:通过Docker Hub或Harbor下载镜像(TODO: 暂未上传)
  2. VNC-Viewer-6.21.1109-Windows-64bit

关键feature及展示

  • 常规的AndroidStudio功能

  • 远程ADB调试

  • UI调试