
如果您使用 Ubuntu Touch 並且想要 順利安裝並運行 Android 應用程式你可能已經聽說過 Waydroid 了。將你最喜歡的 Android 應用程式嵌入到你的 Ubuntu 手機或平板電腦中的想法非常誘人,但當你真正嘗試時,問題就開始出現了:系統要求、效能、相容性、電池消耗,以及如何安裝 APK 檔案而不至於崩潰。
在接下來的幾行中你會發現 Ubuntu Touch 系統上 Waydroid 的完整使用指南本指南涵蓋了該工具的方方面面,從它的功能、與系統的整合方式、局限性,到如何安裝和管理安卓應用程式(包括F-Droid等應用程式商店)。所有內容均以西班牙語(西班牙)講解,語言通俗易懂,同時又不忽略那些至關重要的技術細節。
Waydroid是什麼?它在Ubuntu和Ubuntu Touch上是如何運作的?
簡而言之,Waydroid 就是 一個完整的 Android 環境,運行在 Linux 容器內它不是經典的模擬器或大型虛擬機器:它是一個相容層,將 Android 與 GNU/Linux 系統(如 Ubuntu 桌面、Ubuntu Touch 或衍生發行版(Debian、Droidian、UBports 等))整合在一起。
這個項目是在以下方面的演變而來的: Anbox-Halium 是 Anbox 的一個變體,專為 Linux 手機優化。其理念是透過減少中間層,更有效地利用宿主設備的本地硬體。因此,Android 應用的運作效能更接近原生應用,延遲更低,使用者體驗也比傳統虛擬機器流暢得多。
為了實現這一點,Waydroid 依賴 Linux 中的標準容器技術,特別是命名空間 (用戶、進程ID、UTS、網路、掛載點、IPC)。這些命名空間可讓您隔離進程、使用者、網路和其他資源,從而使容器中「封閉」的 Android 系統作為一個獨立的系統運行,但與發行版的其餘部分共享同一個核心。
容器管理是透過以下方式完成的: LXC(Linux 容器)是一個非常成熟的容器化環境管理工具特定的模組會被載入到該Linux核心中,例如 binder_linux 和 ashmem_linux這些對於 Android 的正常運作至關重要,無需單獨的「特殊」核心。
實際上,這意味著 Waydroid 內部運行的 Android 系統可以相當直接地存取你的硬體。圖形、觸控輸入、音訊等等,CPU 都不會被模擬,所有硬體也不會像通用模擬器那樣被重新建立;相反,它直接使用裝置本身的 Linux 核心。這就是為什麼它的性能遠超傳統虛擬機器的原因。
Waydroid 使用的 Android 系統鏡像通常是基於 LineageOS,通常基於 Android 10這是一個極簡但完整的鏡像,適合在容器內運行,並提供運行各種 Android 應用程式所需的一切。
以 Ubuntu Touch 為例,Waydroid 的設計目的是… 正在開發基於 Wayland 協定的會話這是一項關鍵要求:Android 視窗的整合、渲染方式以及與環境其他部分的互動都依賴 Wayland。在執行 Ubuntu 的桌上型電腦上,同樣適用此要求:如果您不使用 Wayland,Waydroid 將無法正常運作。
Waydroid 的優勢:近乎原生整合 Android 應用
Waydroid最大的優勢之一是 Android應用程式與桌面環境或觸控介面的整合非常自然你並不是簡單地「在手機裡打開另一個手機」;Android 應用程式可以與原生 Linux 應用程式非常透明地共存。
例如,你可以有 同時開啟Ubuntu Touch原生瀏覽器和Android即時通訊應用程式或遊戲用戶可以像在傳統安卓智慧型手機上一樣,在它們之間輕鬆切換。這種並行共存是該專案的關鍵特性之一。
Waydroid 也允許這樣做 Android應用程式捷徑會出現在標準的Ubuntu選單或應用程式清單中。在 Ubuntu Touch 系統中,這意味著 Waydroid 初始化完成後,你會看到新的 Android 應用程式圖示與系統應用程式圖示混雜在一起。如果它們沒有立即出現,只需重新加載應用範圍(從螢幕中心向下滑動並鬆開)即可刷新清單。
另一個非常有趣的特點是 以多視窗模式運行 Android 應用視窗會根據桌面環境的視覺風格進行調整,這在平板電腦或其他需要更接近PC體驗的裝置上尤其有用。您可以像操作本機程式一樣重新定位和調整Android視窗的大小,讓操作更方便。
對於那些將該設備用作便攜式遊戲機或媒體中心的用戶,Waydroid 提供 安卓應用的全螢幕模式這非常適合遊戲或視訊內容,因為它充分利用了螢幕空間,而無需處理額外的系統欄或邊框。
如果您更喜歡經典的體驗,我們也有提供。 顯示完整 Android 介面的模式在那裡,您將擁有自己的主螢幕和應用程式抽屜,就像在 Ubuntu Touch 中使用 Android 手機一樣,而不僅限於單一視窗。
技術要求和支援的環境
要讓 Waydroid 正常工作,您必須滿足一系列要求。 必須嚴格遵守的技術要求跳過其中任何一個步驟通常都會導致難以調試的錯誤。
首要基本要求是使用 Wayland 作為圖形會話協議在桌面系統上,如果您在 X11 環境下啟動 Ubuntu 並嘗試啟動 Waydroid,則會立即遇到問題。而對於 Ubuntu Touch 和其他基於 Halium 的行動系統,會話已在 Wayland 上建立,因此無需額外設定即可解決這個問題。
在桌上型 GNU/Linux 系統上,也需要具備以下條件: 已安裝 Python 3這通常不是問題,因為幾乎所有當前的發行版都預設包含它,但它是 Waydroid 工具包運行所必需的依賴項。
另一個關鍵組成部分是 LXC 是 Waydroid 使用的容器技術。例如,在桌面版 Ubuntu 系統上安裝 Waydroid 之前,需要確保 LXC 已正確安裝。在典型的 Ubuntu 安裝中,執行此操作的命令類似於:
sudo apt install lxc
如果沒有該軟體包,Waydroid 將無法建立和管理 Android 容器,因此值得從一開始就檢查它是否存在,以避免後續的重新安裝。
關於分銷,Waydroid 提供 為各種版本的 Ubuntu 和 Debian 準備的軟體倉庫例如,Ubuntu 20.04 (focal)、21.04 (hirsute) 和 Debian 11 以及 Droidian 和 UBports 等衍生系統都有相應的軟體包。要新增軟體來源,首先需要定義一個包含版本號碼的變量,然後取得 GPG 金鑰並註冊軟體來源。
export DISTRO="hirsute"
curl https://repo.waydro.id/waydroid.gpg > /usr/share/keyrings/waydroid.gpg && \
echo "deb [signed-by=/usr/share/keyrings/waydroid.gpg] https://repo.waydro.id/ $DISTRO main" > /etc/apt/sources.list.d/waydroid.list && \
sudo apt update
現在有了軟體倉庫,在桌面版 Ubuntu 上安裝就變得非常簡單了。 sudo apt install waydroid接下來,容器會被初始化,並透過一些命令啟動,例如: sudo waydroid init y sudo systemctl start waydroid-container.
在 Ubuntu Touch 系統中,情況則有所不同: 從 Focal 基礎版開始,所有基於 Halium 9 或更高版本的裝置都預先安裝了 Waydroid。換句話說,您無需手動新增儲存庫或安裝額外的軟體包:只需從終端初始化它,它就會下載 Android 映像並準備就緒。
Waydroid 在 Ubuntu Touch 上的基本設置
如果您的手機或平板電腦搭載的是 Ubuntu Touch 系統,並且基於 Halium 9 或更高版本,那麼發生這種情況是正常的。 Waydroid 已安裝在系統中,等待您首次啟動它。初始啟動是透過裝置上的 shell 完成的。
要開啟該 shell,您有以下幾個選項: 透過電腦上的 ADB 連接,如果啟用了 SSH,也可以使用 SSH,或使用 Ubuntu Touch 自帶的終端應用程式。這些方法中的任何一種都會開啟一個命令列介面,您可以在其中輸入 Waydroid 命令。
一旦 shell 打開,關鍵步驟就是運行 初始化命令:
waydroid init
此過程會下載 Android 映像檔、建立容器並安裝準備環境所需的一切。根據您的網路連線和裝置效能,此過程可能需要一些時間,請耐心等待。
完成後,只需 重新載入 Ubuntu Touch 應用程式列表,檢查 Android 應用程式圖示是否出現。如果一開始看不到它們,請在應用程式視圖中從螢幕中間向下滑動並鬆開以刷新。之後,您安裝的任何 Android 應用程式都會新增到該清單中。
在 Ubuntu 桌面上安裝並重新啟動 Waydroid
在安裝了 Ubuntu 或 Debian 的桌面系統上,除了前面提到的要求之外,安裝並執行 Waydroid 的基本流程相對簡單。新增軟體倉庫並更新軟體包索引後,後續步驟如下: 使用 apt 安裝 Waydroid:
sudo apt install waydroid
然後執行 Android 容器初始化:
sudo waydroid init
圖片準備就緒後,您需要… 啟動容器服務 使用 systemd:
sudo systemctl start waydroid-container
如果出現問題,例如您事先沒有安裝 LXC 或設定錯誤,您可以始終選擇 徹底卸載並重新安裝 Waydroid為此,首先需要停止會話和容器:
waydroid session stop
sudo waydroid container stop
然後使用以下命令卸載該軟體包:
sudo apt remove waydroid
最後,將資料資料夾從容器中刪除,以徹底清理所有資料:
sudo rm -rf /var/lib/waydroid
完成此過程後,您可以 重複安裝過程,確保滿足所有先決條件。從 LXC 開始,然後再次運行 sudo waydroid init 以及容器服務的啟動。
在 Ubuntu Touch 上使用 Waydroid 安裝 Android 應用程式 (APK)。
Waydroid初始化完成後,下一步合乎邏輯的步驟是: 以 APK 檔案的形式安裝您自己的 Android 應用程式在 Ubuntu Touch 中,這也是透過命令列完成的,但過程非常簡單。
首先是 將 APK 檔案複製到裝置上可存取的路徑。典型的資料夾通常是:
/home/phablet/Downloads
您可以透過多種方式取得該檔案:直接從您的行動瀏覽器下載、透過 USB 從您的電腦傳輸、使用 ADB 推送,或使用您熟悉的任何其他工具。
APK安裝完成後,再次在設備上開啟一個shell(透過ADB、SSH或終端應用程式),然後使用以下命令: Waydroid 特有的應用程式安裝命令,表示完整的檔案路徑:
waydroid app install /home/phablet/Downloads/mi-aplicacion.apk
如果檔案有效且相容,則安裝將完成。 您很快就能在 Ubuntu Touch 應用程式清單中看到 Android 應用程式圖示。和以前一樣,如果它沒有立即出現,請從螢幕中心向下拖曳刷新清單。
使用應用程式商店:F-Droid、亞馬遜應用程式商店等等
手動安裝 APK 檔案也可以,但這樣比較方便。 在 Waydroid 中整合應用程式商店,用於管理安裝和更新。在沒有Google認證的環境下,最常見的選擇通常是 F-Droid 和亞馬遜應用程式商店,以及其他替代應用程式商店。
F-Droid之所以脫穎而出,是因為 它提供了一個免費開源應用程式(FOSS)目錄。它不需要Google帳號,也不依賴谷歌的專有服務,這與Ubuntu Touch以及自由軟體的理念完美契合。要安裝它,只需從官方網站下載其APK文件,或使用類似這樣的工具。 wget然後使用 Waydroid 指令:
wget https://f-droid.org/F-Droid.apk
waydroid app install F-Droid.apk
安裝 F-Droid(或其他任何替代應用程式商店)後,您就可以… 透過 Android 圖形介面搜尋、安裝和更新應用程式。但是,由於 Waydroid 的特性,這些應用程式商店不會完全自動更新應用程式:您需要定期打開應用程式商店,檢查更新,並確認安裝每個更新。
整體流程通常相同: 找到應用,點擊安裝或更新,等待下載完成,然後接受安裝對話方塊。 這些資訊由 Android 系統在 Waydroid 中顯示。雖然比在經過認證的 Android 手機上操作起來稍微繁瑣一些,但完全夠用。
對於進階用戶來說,有可能 建立已預先安裝特定應用程式商店的自訂 Waydroid 鏡像。這樣一來,就可以在多個裝置上部署 Android 環境,而無需在每個裝置上手動重複安裝 F-Droid 或任何其他應用程式商店。
卸載安卓應用程式並管理儲存空間
當你停止使用某個安卓應用程式時,最好… 卸載它可以釋放儲存空間並減少潛在衝突。在搭載 Waydroid 的 Ubuntu Touch 系統中,這項任務也是透過裝置 shell 執行的。
首先開啟終端(透過 ADB、SSH 或 Ubuntu Touch 終端應用程式本身),然後 使用 Waydroid 命令列出和刪除應用程式例如,您可以使用下列命令查看已安裝的應用程式:
waydroid app list
該命令將顯示應用程式識別碼 (APP_ID),您需要卸載的就是這些應用程式。找到您要卸載的應用程式後,您可以運行:
waydroid app remove [APP_ID]
如果您已設定 ADB,則也可以使用下列命令:
adb uninstall [APP_ID]
使用上述任何方法卸載應用程式後,圖示可能需要一段時間才會從 Ubuntu Touch 清單中消失。在這種情況下, 向下拖曳即可重新載入應用程式列表 從應用程式視圖中強制更新。
從 Ubuntu Touch 存取 Android 內部存儲
在某些情況下,它非常有用。 能夠直接存取 Waydroid Android 環境的文件 備份、行動資料或檢查已下載的內容。
Android 系統辨識的內部儲存通常位於類似這樣的路徑中:
/home/phablet/.local/share/waydroid/data/media/0
從 Ubuntu Touch 中,您可以 使用檔案總管或終端機瀏覽該資料夾。複製文件、與其他應用程式同步數據,或瀏覽已儲存的內容。它實際上相當於普通安卓手機的“內部儲存”,但可以透過 Linux 層存取。
重要限制:電池、相容性和硬體
雖然 Waydroid 是一個非常強大的工具,但它也很重要。 在開始每天使用之前,請務必充分了解它的局限性。並非全是優勢,了解潛在的障礙在哪裡也很明智。
許多用戶注意到的第一個限制是 Waydroid 活動時電池消耗增加最終,整個 Android 系統及其服務和進程都會與 Ubuntu Touch 並行運作。如果您想節省電量,建議在不需要 Waydroid 時將其停止。
你還必須假設 並非所有安卓應用程式都能在 Waydroid 上運作。特別是那些嚴重依賴 Google Play Integrity 或 SafetyNet 等服務的應用程式(例如網路銀行、某些支付服務、對安全性要求很高的應用程式),通常會驗證裝置是否已通過 Google 認證並安裝了官方的 Play 服務。
就像在 Ubuntu Touch 中使用 Waydroid 一樣 您沒有經過認證的環境或官方應用程式商店。許多此類應用程式將無法運行或顯示錯誤訊息。這也會影響那些需要特定Google認證設備或與該公司專有生態系統緊密相關的功能的程式。
要考慮的另一個方面是 Ubuntu Touch 和 Waydroid 在使用外設方面可能存在衝突。如果兩個系統同時嘗試存取攝影機、麥克風或其他設備,其中一個系統可能會失去存取權限。安卓應用經常抱怨無法使用鏡頭,因為相機正被主系統使用。
對於那些需要類似 Google Play 服務所提供功能的用戶來說,還有… microG,這些服務的免費實作。在某些情況下,將其整合到 Waydroid 中可以提高與某些應用程式的兼容性,但這並非萬全之策:需要嚴格完整性檢查或認證的應用程式仍然會遇到問題。
APK安裝與日常使用故障排除
在 Waydroid 上安裝應用程式時,最常見的錯誤之一是遇到以下訊息 執行安裝命令時出現「無效的 APK 檔案」錯誤乍看之下像是檔案損壞,但通常問題要簡單得多。
最常見的原因是 系統在指定路徑中找不到 APK 檔。這可能是由於名稱拼字錯誤、從不同的目錄執行命令,或忘記包含完整路徑造成的。為避免此類錯誤,建議始終使用絕對路徑,例如:
waydroid app install /home/phablet/Downloads/mi-aplicacion.apk
如果錯誤仍然存在,則可能是以下原因: APK檔案已損壞、不完整或與您的裝置架構不相容。在這種情況下,最好從可靠的來源重新下載,或尋找適合您硬體(ARM、ARM64 等)的其他版本。
即使是日常使用,也可能出現一些小的整合故障或偶爾的崩潰。在很多情況下, 重啟 Waydroid 容器可以解決很多問題。例如,在 Ubuntu 桌面版中,您可以使用以下命令:
sudo systemctl restart waydroid-container
如果問題持續或看起來更加嚴重,最好查看日誌,尋找類似事件,並在必要時採取相應措施。 向相關項目報告此錯誤。.
Google Play 商店、Google 服務及其他選項
整件事中最棘手的一點是… Waydroid 上沒有 Google Play 商店和 Google 的專有服務。Google 維護一份經過認證的裝置列表,如果某個系統不在該列表中,Google 就會阻止其官方存取其應用程式商店和某些 API。
這意味著,即使你擁有 Waydroid 內含一個功能完整的 Android 環境您將無法正式使用 Play 商店。許多應用程式僅透過該商店分發,因此您必須使用其他 APK 儲存庫或第三方商店來安裝它們。
這種方法對大部分曲目都相當有效,但是 它不能保證與經過認證的安卓設備上的行為完全相同。需要 SafetyNet、Play Integrity 或進階安全性檢查的應用程式可能無法啟動或功能受限。
如前所述,microG 可以透過提供以下功能來部分彌補這些不足: 免費實現某些谷歌API然而,這並不能解決所有問題,尤其是銀行應用程式和其他關鍵服務,通常仍會保留其限制。
Waydroid + Ubuntu Touch 生態系統中的錯誤管理和報告
Waydroid是一個不斷發展的項目, 與 Ubuntu Touch 和其他系統的整合正在不斷改進。使用不同設備時,遇到一些小錯誤、異常行為或差異是正常的。
當您檢測到故障時,建議… 區分這是 Ubuntu Touch 特有的問題還是 Waydroid 的問題與基礎系統(介面、會話管理器等)相關的錯誤應在 Ubuntu Touch 問題追蹤系統中報告。但是,與 Android 容器、Waydroid 命令或 Android 應用程式執行相關的特定錯誤則應在 Waydroid 官方問題追蹤系統中處理。
發送報告時,請盡量包含以下內容 請提供盡可能詳細的資訊:裝置型號、Ubuntu Touch 版本、重現錯誤的詳細步驟以及錯誤資訊。這些資訊有助於開發人員快速診斷問題並提出修復方案或臨時解決方案。
綜上所述,顯然 Waydroid 已成為那些希望將 Android 世界與 Ubuntu Touch 相結合的用戶的重要工具。它允許您以集成的方式運行許多應用程序,訪問 F-Droid 等替代商店,從終端管理 APK,並更好地利用設備的硬件,同時始終牢記 Google 認證的限制、更高的電池消耗以及在同一核心上組合兩個系統時可能出現的硬體衝突。 分享訊息,讓更多用戶了解主題。


