文章目錄
- 前言
- 1. 虛擬化環境檢查
- 2. Android 模擬器部署
- 3. Ubuntu安裝Cpolar
- 4. 配置公網地址
- 5. 遠程訪問
- 小結
- 6. 固定Cpolar公網地址
- 7. 固定地址訪問
前言
本文將詳細介紹一種創新性的云開發架構:基于Ubuntu系統構建Android仿真容器環境,并集成安全隧道技術實現遠程訪問。這種技術組合打破了傳統開發的空間限制,使開發者能夠實時調用本地資源,顯著提升分布式團隊的協作效能。
在移動應用開發領域,隨著項目復雜度的持續增長,傳統開發環境配置正面臨兩大核心痛點:配置流程繁瑣、運維開銷大。本文提出的容器技術方案通過模塊化封裝Android開發環境,有效降低了環境初始化的難度。其核心價值體現在環境復用效率提升,開發者可快速部署標準化開發環境,避免重復配置硬件參數的繁瑣操作。
針對遠程開發需求,本方案采用加密隧道技術實現私有服務的公網暴露。通過構建安全通信通道,可使異地團隊成員無縫接入本地開發環境。這種技術架構特別適用于敏捷開發模式,推薦采用Ubuntu系統作為部署基礎。如需了解Docker環境搭建細節,請參考本系列配套教程:Docker 安裝教程。
1. 虛擬化環境檢查
執行下面命令安裝檢查工具
sudo apt install cpu-checker
然后執行下面命令檢查是否支持虛擬化
kvm-ok
提示下面信息表示正常支持虛擬化環境,如果不是出現如下信息,需要檢查設備開啟虛擬化支持,然后再進行下面進行android 模擬器部署
2. Android 模擬器部署
本文采用docker方式部署,首先拉取一個鏡像,官方提供很多種安卓版本,具體可以訪問Github查看:https://github.com/budtmo/docker-android,理論上版本越高運行的開銷會越大,所以本例以運行一個低版本的android 來演示,執行下面命令拉取一個android 9.0版本鏡像.
sudo docker pull budtmo/docker-android:emulator_9.0
拉取后開始運行容器,下面命令指運行一臺Samsung Galaxy S7 的安卓設備,其他機型可以去看一下官方教程,對外訪問端口是6080
docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S7" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_9.0
運行后,輸入sudo docker ps 可以看到運行的容器,UP狀態表示正常
運行后,在瀏覽器訪問Linux ubuntu 6080端口,即可成功看到android 模擬器界面,首次啟動可能會比較慢,如果覺得卡,可以部署更低的機型,如S6,本地測試訪問成功后,下面我們安裝cpolar內網穿透,實現遠程訪問
3. Ubuntu安裝Cpolar
上面在本地Docker中成功部署了Android模擬器,并局域網訪問成功,下面我們在Linux安裝Cpolar內網穿透工具,通過Cpolar 轉發本地端口映射的http公網地址,我們可以很容易實現遠程訪問,而無需自己注冊域名購買云服務器.下面是安裝cpolar步驟
cpolar官網地址: https://www.cpolar.com
- 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 安裝完成后,可以通過如下方式來操作cpolar服務,首先執行加入系統服務設置開機啟動,然后再啟動服務
# 加入系統服務設置開機啟動
sudo systemctl enable cpolar# 啟動cpolar服務
sudo systemctl start cpolar# 重啟cpolar服務
sudo systemctl restart cpolar# 查看cpolar服務狀態
sudo systemctl status cpolar# 停止cpolar服務
sudo systemctl stop cpolar
Cpolar安裝和成功啟動服務后,內部或外部瀏覽器上通過局域網IP加9200端口即:【http://192.168.xxx.xxx:9200】訪問Cpolar管理界面,使用Cpolar官網注冊的賬號登錄,登錄后即可看到cpolar web 配置界面,接下來在web 界面配置即可
4. 配置公網地址
點擊左側儀表盤的隧道管理——創建隧道,創建一個android 模擬器的公網http地址隧道!
- 隧道名稱:可自定義命名,注意不要與已有的隧道名稱重復
- 協議:選擇http
- 本地地址:6080(docker部署后對外訪問的端口)
- 域名類型:免費選擇隨機域名
- 地區:選擇China vip
點擊創建
隧道創建成功后,點擊左側的狀態——在線隧道列表,查看所生成的公網訪問地址,有兩種訪問方式,一種是http 和https,兩種都可以訪問,下面選擇其中一種進行遠程訪問
5. 遠程訪問
使用上面Cpolar生成的 https公網地址,在任意設備的瀏覽器進行訪問,即可成功看到我們Android 模擬器,簡單幾步即可實現無需云服務器,無需公網IP實現遠程訪問.
小結
為了更好地演示,我們在前述過程中使用了cpolar生成的隧道,其公網地址是隨機生成的。
這種隨機地址的優勢在于建立速度快,可以立即使用。然而,它的缺點是網址由隨機字符生成,不太容易記憶(例如:3ad5da5.r10.cpolar.top)。另外,這個地址在24小時內會發生隨機變化,更適合于臨時使用。
我一般會使用固定二級子域名,原因是我希望將網址發送給同事或客戶時,它是一個固定、易記的公網地址(例如:android.cpolar.cn),這樣更顯正式,便于流交協作。
6. 固定Cpolar公網地址
由于以上使用cpolar所創建的隧道使用的是隨機公網地址,24小時內會隨機變化,不利于長期遠程訪問。因此我們可以為其配置二級子域名,該地址為固定地址,不會隨機變化。
注意需要將cpolar套餐升級至基礎套餐或以上,且每個套餐對應的帶寬不一樣。【cpolar.cn已備案】
登錄cpolar官網,點擊左側的預留,選擇保留二級子域名,設置一個二級子域名名稱,點擊保留,保留成功后復制保留的二級子域名名稱
保留成功后復制保留成功的二級子域名的名稱
返回登錄cpolar web UI管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到所要配置的隧道,點擊右側的編輯
修改隧道信息,將保留成功的二級子域名配置到隧道中
- 域名類型:選擇二級子域名
- Sub Domain:填寫保留成功的二級子域名
點擊更新
(注意,點擊一次更新即可,不需要重復提交)
更新完成后,打開在線隧道列表,此時可以看到公網地址已經發生變化,地址二級名稱變成了我們自己設置的二級子域名名稱
7. 固定地址訪問
最后,我們使用固定的公網https地址訪問,可以看到同樣訪問成功,這樣一個固定且永久不變的公網地址就設置好了,隨時隨地都可以遠程訪問本地android模擬器,無需公網IP,無需云服務器!
經過本階段的實操演練,用戶已熟練掌握基于Ubuntu平臺的Android開發環境容器化部署技術。該技術方案通過Docker構建Android仿真系統,配合內網穿透技術突破地理限制,成功搭建了具備遠程接入能力的開發平臺。這種架構不僅解決了傳統開發環境配置效率低、維護成本高的難題,更構建了支持分布式團隊協作的可靠技術底座。
建議立即應用該技術架構,開發者可在任意網絡條件下快速啟動開發環境。除基礎功能外,該方案具備良好的可擴展性,支持CI/CD測試流程、多終端兼容性驗證等高級應用場景。為提升團隊協作效能,建議將該容器化方案推廣至開發小組,共同體驗云端開發帶來的效率革新。
預祝各位同仁工作順利,技術精進。本方案將持續迭代優化,期待與您共同探索更多技術可能性。