本文主要介紹如何在Ubuntu系統(tǒng)使用Docker部署docker-android安卓模擬器,并結(jié)合cpolar內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問(wèn)本地部署的Android開發(fā)環(huán)境。
隨著移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,Android應(yīng)用開發(fā)日益成為業(yè)界關(guān)注的焦點(diǎn)。在開發(fā)過(guò)程中,對(duì)Android應(yīng)用的測(cè)試和部署至關(guān)重要,這關(guān)系到應(yīng)用能否在各種設(shè)備和環(huán)境下穩(wěn)定運(yùn)行。然而,傳統(tǒng)的Android開發(fā)和測(cè)試環(huán)境搭建過(guò)程繁瑣,且不易于管理和維護(hù)。為了解決這一問(wèn)題,Docker-Android 應(yīng)運(yùn)而生,它將完整的Android開發(fā)環(huán)境封裝在Docker容器中,大大簡(jiǎn)化了開發(fā)和部署流程。
Docker-Android 通過(guò)容器化技術(shù),使得開發(fā)者可以在本地或遠(yuǎn)程服務(wù)器上輕松構(gòu)建和運(yùn)行Android模擬器。這種輕量級(jí)的部署方式不僅降低了資源占用,還提高了開發(fā)和測(cè)試的效率。更重要的是,Docker-Android 提供了靈活的配置選項(xiàng),可以根據(jù)項(xiàng)目需求進(jìn)行定制化設(shè)置,滿足不同的開發(fā)和測(cè)試需求。
然而,對(duì)于需要遠(yuǎn)程訪問(wèn)Android開發(fā)環(huán)境的開發(fā)者來(lái)說(shuō),僅僅依靠Docker-Android 還不足以實(shí)現(xiàn)這一目標(biāo)。此時(shí),我們需要借助cpolar這樣的內(nèi)網(wǎng)穿透工具,將本地的Docker-Android 環(huán)境暴露到公網(wǎng)上,實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)。cpolar 通過(guò)在本地和公網(wǎng)之間建立安全的隧道連接,使得遠(yuǎn)程用戶可以通過(guò)公網(wǎng)地址訪問(wèn)到本地的Docker-Android 環(huán)境。
結(jié)合Docker-Android 和cpolar,我們可以實(shí)現(xiàn)一個(gè)高效、靈活且安全的遠(yuǎn)程Android開發(fā)環(huán)境。這不僅方便了開發(fā)者的遠(yuǎn)程協(xié)作和項(xiàng)目管理,還提高了開發(fā)和測(cè)試的效率。本文旨在介紹如何使用Docker-Android 和cpolar 在本地部署并實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)Android開發(fā)環(huán)境,為開發(fā)者提供一個(gè)更加便捷和高效的解決方案。
根據(jù)官方說(shuō)法,盡量采用ubuntu系統(tǒng)進(jìn)行安裝,采用Docker部署,首先設(shè)備需要提前安裝好Docker,如沒(méi)有安裝,可以參考Docker 官方教程進(jìn)行安裝:Docker 官方安裝教程.
1. 虛擬化環(huán)境檢查
執(zhí)行下面命令安裝檢查工具
sudo apt install cpu-checker
然后執(zhí)行下面命令檢查是否支持虛擬化
kvm-ok
提示下面信息表示正常支持虛擬化環(huán)境,如果不是出現(xiàn)如下信息,需要檢查設(shè)備開啟虛擬化支持,然后再進(jìn)行下面進(jìn)行android 模擬器部署
2. Android 模擬器部署
本文采用docker方式部署,首先拉取一個(gè)鏡像,官方提供很多種安卓版本,具體可以訪問(wèn)Github查看:https://github.com/budtmo/docker-android,理論上版本越高運(yùn)行的開銷會(huì)越大,所以本例以運(yùn)行一個(gè)低版本的android 來(lái)演示,執(zhí)行下面命令拉取一個(gè)android 9.0版本鏡像.
sudo docker pull budtmo/docker-android:emulator_9.0
拉取后開始運(yùn)行容器,下面命令指運(yùn)行一臺(tái)Samsung Galaxy S7 的安卓設(shè)備,其他機(jī)型可以去看一下官方教程,對(duì)外訪問(wèn)端口是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
運(yùn)行后,輸入sudo docker ps 可以看到運(yùn)行的容器,UP狀態(tài)表示正常
運(yùn)行后,在瀏覽器訪問(wèn)Linux ubuntu 6080端口,即可成功看到android 模擬器界面,首次啟動(dòng)可能會(huì)比較慢,如果覺(jué)得卡,可以部署更低的機(jī)型,如S6,本地測(cè)試訪問(wèn)成功后,下面我們安裝cpolar內(nèi)網(wǎng)穿透,實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)
3. Ubuntu安裝Cpolar
上面在本地Docker中成功部署了Android模擬器,并局域網(wǎng)訪問(wèn)成功,下面我們?cè)贚inux安裝Cpolar內(nèi)網(wǎng)穿透工具,通過(guò)Cpolar 轉(zhuǎn)發(fā)本地端口映射的http公網(wǎng)地址,我們可以很容易實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),而無(wú)需自己注冊(cè)域名購(gòu)買云服務(wù)器.下面是安裝cpolar步驟
cpolar官網(wǎng)地址: https://www.cpolar.com
- 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 安裝完成后,可以通過(guò)如下方式來(lái)操作cpolar服務(wù),首先執(zhí)行加入系統(tǒng)服務(wù)設(shè)置開機(jī)啟動(dòng),然后再啟動(dòng)服務(wù)
# 加入系統(tǒng)服務(wù)設(shè)置開機(jī)啟動(dòng)
sudo systemctl enable cpolar
# 啟動(dòng)cpolar服務(wù)
sudo systemctl start cpolar
# 重啟cpolar服務(wù)
sudo systemctl restart cpolar
# 查看cpolar服務(wù)狀態(tài)
sudo systemctl status cpolar
# 停止cpolar服務(wù)
sudo systemctl stop cpolar
Cpolar安裝和成功啟動(dòng)服務(wù)后,內(nèi)部或外部瀏覽器上通過(guò)局域網(wǎng)IP加9200端口即:【http://192.168.xxx.xxx:9200】訪問(wèn)Cpolar管理界面,使用Cpolar官網(wǎng)注冊(cè)的賬號(hào)登錄,登錄后即可看到cpolar web 配置界面,接下來(lái)在web 界面配置即可
4. 配置公網(wǎng)地址
點(diǎn)擊左側(cè)儀表盤的隧道管理——?jiǎng)?chuàng)建隧道,創(chuàng)建一個(gè)android 模擬器的公網(wǎng)http地址隧道!
- 隧道名稱:可自定義命名,注意不要與已有的隧道名稱重復(fù)
- 協(xié)議:選擇http
- 本地地址:6080(docker部署后對(duì)外訪問(wèn)的端口)
- 域名類型:免費(fèi)選擇隨機(jī)域名
- 地區(qū):選擇China vip
點(diǎn)擊創(chuàng)建
隧道創(chuàng)建成功后,點(diǎn)擊左側(cè)的狀態(tài)——在線隧道列表,查看所生成的公網(wǎng)訪問(wèn)地址,有兩種訪問(wèn)方式,一種是http 和https,兩種都可以訪問(wèn),下面選擇其中一種進(jìn)行遠(yuǎn)程訪問(wèn)
5. 遠(yuǎn)程訪問(wèn)
使用上面Cpolar生成的 https公網(wǎng)地址,在任意設(shè)備的瀏覽器進(jìn)行訪問(wèn),即可成功看到我們Android 模擬器,簡(jiǎn)單幾步即可實(shí)現(xiàn)無(wú)需云服務(wù)器,無(wú)需公網(wǎng)IP實(shí)現(xiàn)遠(yuǎn)程訪問(wèn).
小結(jié)
為了更好地演示,我們?cè)谇笆鲞^(guò)程中使用了cpolar生成的隧道,其公網(wǎng)地址是隨機(jī)生成的。
這種隨機(jī)地址的優(yōu)勢(shì)在于建立速度快,可以立即使用。然而,它的缺點(diǎn)是網(wǎng)址由隨機(jī)字符生成,不太容易記憶(例如:3ad5da5.r10.cpolar.top)。另外,這個(gè)地址在24小時(shí)內(nèi)會(huì)發(fā)生隨機(jī)變化,更適合于臨時(shí)使用。
我一般會(huì)使用固定二級(jí)子域名,原因是我希望將網(wǎng)址發(fā)送給同事或客戶時(shí),它是一個(gè)固定、易記的公網(wǎng)地址(例如:android.cpolar.cn),這樣更顯正式,便于流交協(xié)作。
6. 固定Cpolar公網(wǎng)地址
由于以上使用cpolar所創(chuàng)建的隧道使用的是隨機(jī)公網(wǎng)地址,24小時(shí)內(nèi)會(huì)隨機(jī)變化,不利于長(zhǎng)期遠(yuǎn)程訪問(wèn)。因此我們可以為其配置二級(jí)子域名,該地址為固定地址,不會(huì)隨機(jī)變化【ps:cpolar.cn已備案】
注意需要將cpolar套餐升級(jí)至基礎(chǔ)套餐或以上,且每個(gè)套餐對(duì)應(yīng)的帶寬不一樣?!綾polar.cn已備案】
登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,選擇保留二級(jí)子域名,設(shè)置一個(gè)二級(jí)子域名名稱,點(diǎn)擊保留,保留成功后復(fù)制保留的二級(jí)子域名名稱
保留成功后復(fù)制保留成功的二級(jí)子域名的名稱
返回登錄cpolar web UI管理界面,點(diǎn)擊左側(cè)儀表盤的隧道管理——隧道列表,找到所要配置的隧道,點(diǎn)擊右側(cè)的編輯
修改隧道信息,將保留成功的二級(jí)子域名配置到隧道中
- 域名類型:選擇二級(jí)子域名
- Sub Domain:填寫保留成功的二級(jí)子域名
點(diǎn)擊更新
(注意,點(diǎn)擊一次更新即可,不需要重復(fù)提交)
更新完成后,打開在線隧道列表,此時(shí)可以看到公網(wǎng)地址已經(jīng)發(fā)生變化,地址二級(jí)名稱變成了我們自己設(shè)置的二級(jí)子域名名稱
7. 固定地址訪問(wèn)
最后,我們使用固定的公網(wǎng)https地址訪問(wèn),可以看到同樣訪問(wèn)成功,這樣一個(gè)固定且永久不變的公網(wǎng)地址就設(shè)置好了,隨時(shí)隨地都可以遠(yuǎn)程訪問(wèn)本地android模擬器,無(wú)需公網(wǎng)IP,無(wú)需云服務(wù)器!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-850094.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-850094.html
到了這里,關(guān)于Ubuntu系統(tǒng)使用Docker本地部署Android模擬器并實(shí)現(xiàn)公網(wǎng)訪問(wèn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!