文章目錄
- 1. 虛擬化環境檢查
- 2. Android 模擬器部署
- 3. Ubuntu安裝Cpolar
- 4. 配置公網地址
- 5. 遠程訪問
- 小結
- 6. 固定Cpolar公網地址
- 7. 固定地址訪問
本文主要介紹如何在Ubuntu系統使用Docker部署docker-android安卓模擬器,并結合cpolar內網穿透工具實現公網遠程訪問本地部署的Android開發環境。
隨著移動互聯網的飛速發展,Android應用開發日益成為業界關注的焦點。在開發過程中,對Android應用的測試和部署至關重要,這關系到應用能否在各種設備和環境下穩定運行。然而,傳統的Android開發和測試環境搭建過程繁瑣,且不易于管理和維護。為了解決這一問題,Docker-Android 應運而生,它將完整的Android開發環境封裝在Docker容器中,大大簡化了開發和部署流程。
Docker-Android 通過容器化技術,使得開發者可以在本地或遠程服務器上輕松構建和運行Android模擬器。這種輕量級的部署方式不僅降低了資源占用,還提高了開發和測試的效率。更重要的是,Docker-Android 提供了靈活的配置選項,可以根據項目需求進行定制化設置,滿足不同的開發和測試需求。
然而,對于需要遠程訪問Android開發環境的開發者來說,僅僅依靠Docker-Android 還不足以實現這一目標。此時,我們需要借助cpolar這樣的內網穿透工具,將本地的Docker-Android 環境暴露到公網上,實現遠程訪問。cpolar 通過在本地和公網之間建立安全的隧道連接,使得遠程用戶可以通過公網地址訪問到本地的Docker-Android 環境。
結合Docker-Android 和cpolar,我們可以實現一個高效、靈活且安全的遠程Android開發環境。這不僅方便了開發者的遠程協作和項目管理,還提高了開發和測試的效率。本文旨在介紹如何使用Docker-Android 和cpolar 在本地部署并實現遠程訪問Android開發環境,為開發者提供一個更加便捷和高效的解決方案。
根據官方說法,盡量采用ubuntu系統進行安裝,采用Docker部署,首先設備需要提前安裝好Docker,如沒有安裝,可以參考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小時內會隨機變化,不利于長期遠程訪問。因此我們可以為其配置二級子域名,該地址為固定地址,不會隨機變化【ps:cpolar.cn已備案】
注意需要將cpolar套餐升級至基礎套餐或以上,且每個套餐對應的帶寬不一樣。【cpolar.cn已備案】
登錄cpolar官網,點擊左側的預留,選擇保留二級子域名,設置一個二級子域名名稱,點擊保留,保留成功后復制保留的二級子域名名稱
保留成功后復制保留成功的二級子域名的名稱
返回登錄cpolar web UI管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到所要配置的隧道,點擊右側的編輯
修改隧道信息,將保留成功的二級子域名配置到隧道中
- 域名類型:選擇二級子域名
- Sub Domain:填寫保留成功的二級子域名
點擊更新
(注意,點擊一次更新即可,不需要重復提交)
更新完成后,打開在線隧道列表,此時可以看到公網地址已經發生變化,地址二級名稱變成了我們自己設置的二級子域名名稱
7. 固定地址訪問
最后,我們使用固定的公網https地址訪問,可以看到同樣訪問成功,這樣一個固定且永久不變的公網地址就設置好了,隨時隨地都可以遠程訪問本地android模擬器,無需公網IP,無需云服務器!