https://twocups.cn/index.php/2020/01/09/10/
【教程】Chrome ARC 安裝使用過程詳解(要使用ARC Welder嗎?)2020年更新
版權聲明:本文為博主原創文章,轉載請注明出處:https://twocups.cn/index.php/2020/01/09/10/
最近想在 Linux 上使用 Android 程序,所以准備找一個好用的安卓模擬器。但我無意中看到了這個—— ARC Welder,一款能在谷歌游覽器上運行 apk 的擴展程序。
ARC Welder 是一個 Chrome 的擴展程序,它可以直接通過游覽器來運行 Android 程序,並且可以在 Windows、Linux 和 Mac 上跨平台運行。ARC 的全稱是 Android Runtime for Chrome,即 Chrome下 Android 程序運行環境。ARC Welder 在2015年由Google官方推出並公開測試,一經推出則由輕量級的虛擬機的優勢快速獲得了一部分人的喜愛,隱隱有進一步擴大安卓平台的影響力以及引領跨桌面系統運行的勢頭。但它的缺點也很明顯,就是能夠適配的軟件太少。

我在網上幾乎查遍了國內國外的所有關於 ARC Welder 的資料,但那些方法放到現在2020年沒有一個能用的。但在我不斷地查閱資料和嘗試下,終於還是成功地使用了 Chrome ARC。所以我決定自己寫一篇博客,來詳細地描述 Chrome ARC 的安裝使用過程。一方面,記錄一下自己的安裝過程,方便以后要用的時候復現;另一方面,也能為想要使用 Chrome ARC 的朋友提供一個切實可行的方法。
先展示一下成果(時間: 2020年1月9日 ),至簡的頁面和超輕的占用完美地符合了我對於該類軟件的需求。

我介紹的 Chrome ARC 安裝使用方法有以下幾個優勢:
1. 具有時效性。
網上的資料主要分為2015年和2018年兩種,我會分別為大家演示這兩種安裝使用方法以及他們失效的原因。如今是2020年,而時間也的確是這兩種方法失效的原因。(或許2023年有人指出說我的方法失效了,當然歡迎,前提是 Chrome ARC 能活到那個時候 xD)
2. 解決了 ARC Welder 適配軟件太少的問題,能適配更多的 Android 程序
適配軟件太少也是 ARC Welder 最令人詬病的地方,要不然以能夠跨平台的 Chrome 內置輕量級虛擬機這個優勢,早就起飛了。不過有一些本身就不允許被裝在虛擬機里面的應用(比如釘釘)或者一些 Chrome ARC 本身邏輯無法解析的應用,肯定還是裝不上的。
3. 解決了 ARC Welder 一次只能使用一個應用的問題,應用多開無壓力
ARC Welder 一次只能打開一個 Android 程序,如果想要打開其他的 Android 程序,就必須關掉之前的程序,這非常不方便。再說,如果不程序多開,那么 ARC Welder 輕量級的優勢就體現不出來了。
4. 不需要XX上網
ARC Welder 屬於比較特殊的一類擴展程序,無法使用離線程序包安裝,而必須在 Chrome 網上應用店在線安裝。而 Chrome 網上應用店國內無法直接訪問,這就導致如果你不會XX上網,你是一定用不了 ARC Welder 的。我的方法可以在僅僅使用國內網絡的情況下安裝使用 Chrome ARC。
建議各位想要使用 Chrome ARC 的朋友先看完全文再自己進行操作,因為文章的前半部分講述的是我根據網上主流的方法進行安裝但是失敗並查找原因。如果你對安裝出錯的原因不感興趣,那么可以直接跳到“Chrome ARC 安裝使用過程詳解”部分。
初次嘗試
最開始,我先嘗試了網上比較主流的 ARC Welder 安裝使用方法,就是通過 Chrome 網上應用店在線安裝 ARC Welder。Chrome 網上應用店直接搜索“ARC Welder”是搜不到的,只能通過特定的網址進入 ARC Welder 的頁面。
傳送門:Chrome網上應用店的 ARC Welder 頁面

雖然文件大小標明12.78MiB,但實際這只是 ARC Welder 本體的大小。在此之前還需要下載 ARC Welder 的運行環境,所以一共要下載200+MiB。
Native Client 是 Chrome 中最強大(偽)的運行環境,Unity3D 生成 HTML 版本的時候就是依賴這個環境的,但現在的 Chrome 都是默認關閉這個環境的。在 Chrome 地址欄輸入“chrome://flags/”,然后在該頁面中搜索 Native Client,並開啟該環境(選擇Enabled)。

之后點擊 Chrome 的“應用”按鈕。如果找不到這個按鈕,也可以直接在地址欄輸入“chrome://apps/”並按回車。在這個界面就可以看到 ARC Welder 的圖標,點擊即可運行。

不過有一個更簡單的打開方法,直接從系統里打開 ARC Welder 也行。

首次打開ARC Welder是需要選擇一個文件夾作為工作目錄的。按照提示點擊頁面右下角的【Choose】按鈕,然后選擇一個空文件夾作為 ARC Welder 的工作目錄。之后就會進入“Test your APP”界面,點擊【Add your APK】按鈕,從電腦選擇一個已經下載好的安卓APK文件。

然后,ARC Welder 就一直卡在了這個頁面,也就是網上俗稱的“轉圈圈”。

在網上查閱資料后發現安裝 ARC Welder 后還需要安裝 ARChon Runtime for Chrome 才行(安裝完會有兩個警告,無視即可)。
傳送門:ARChon Runtime for Chrome 網站

這種離線擴展程序的安裝包的使用方法都是一樣的。由於現在 Chrome 不允許離線擴展程序的安裝,所以我們需要先修改 crx 文件的后綴,比如 zip 或 rar,把里面的文件解壓出來。然后在 Chrome 的擴展程序里面打開“開發者模式”后選擇 “加載已解壓的擴展程序”,再選擇剛才我們解壓出來的文件。
在安裝完 ARChon Runtime for Chrome 后,我重新啟動 ARC Welder,但還是一直卡在 “轉圈圈” 頁面。所以我又根據網上的方法換了個環境,把 ARChon Runtime for Chrome 換成了 App Runtime for Chrome (Beta) 。但還是沒什么用,我還是在老地方卡着。
原理解釋
我查遍了幾乎國內外所有的 ARC Welder 資料,要么就是卡在“Test your APP”頁面沒有解決的,要么就是在“Test your APP”頁面完全沒有出現問題的。幸好 Chrome 的擴展程序有調試界面,我可以具體地定位問題,看看是哪里出錯了。

問題主要是出在我紅色框圈住的這一塊,之后的部分都是服務重新嘗試后再次失敗的。 由此我們可以看出,一直卡在“Test your APP”頁面主要的原因有三個:
1. Reporting crash is not supported.
2. NativeClient: could not load manifest url.
3. Net::ERR_FILE_NOT_FOUND
Native Client 是我們之前開啟過的環境,第二個原因說明現在它無法加載特定的地址,並且第三個原因說明有些文件無法被找到。於是我猜測這部分資源可能被 Google 放在了境外的服務器上導致國內無法訪問,於是我通過學校的有線網絡再次嘗試(學校的有線網絡是可以連接外網的),發現還是一摸一樣的問題。於是我想到谷歌之前把這個項目砍掉的傳聞,猜測可能是谷歌不打算繼續研究這個項目,所以撤掉了部分支持文件,所以 ARC Welder 在現在的2020年無法正常使用了。這么說來,Google網上應用店中 ARC Welder 的評論都是清一色的運行不了和 ARC Welder 現在在Google網上應用中搜索不到就能解釋的通了。
不過我不想讓我之前的努力都白費,想再進一步嘗試一下。於是我繼續去搜集更多的資料,想找到一點轉機。要知道,一家企業要是不在乎盈利,那它能做的事就很多了。同樣的,程序員要是不在乎時間和精力,那總有解決問題的方法嘛。
首先我們要弄清我們之前裝的三個擴展程序 ARC Welder、ARChon Runtime for Chrome 和 App Runtime for Chrome (Beta) 之間的關系是什么。我之前以為 ARChon Runtime for Chrome 和 App Runtime for Chrome (Beta) 都是用來支撐 ARC Welder 運行的環境,但其實並不是這樣。
Android Runtime for Chrome(ARC)是由 Google 推出的在 Chrome 中運行 Android 程序的軟件。但遺憾的是,ARC 只能在 Chrome OS 上運行,並且只能運行Google提供的一些Android程序。
后來,ARC 被作為擴展程序放進了桌面版 chrome 中,並命名為“ARC Welder”。由於其存在於桌面版 chrome 中,因此 ARC 具備了跨平台的功能,能同時在 Windows、Linux 和 Mac 上運行。為了支持 ARC Welder 在 Chrome 中的應用,App Runtime for Chrome (Beta) 被開發。這種跨平台輕量級虛擬機像極了如今的容器技術,也因此得到了一些程序員的喜愛,但極少的 Android 程序適配也的確限制了它的發展。
再后來,黑客 Vladikoff 將其改進(破解),制作了一個定制版本的 ARC,命名為“ARChon Runtime for Chrome”。他讓 ARC 可以安裝任何的 Android 程序,並且在此情況下穩定住了能同時在 Windows、Linux 和 Mac 上運行的特性。但是,ARChon Runtime for Chrome 不支持原始的 Android 應用程序包(APK),它們需要被轉換成一個 Chrome 擴展程序才能使用。
現在這三個擴展程序的關系就非常明顯了,ARC Welder 和 App Runtime for Chrome (Beta) 作為擴展程序是需要一起安裝的,這也就是為什么最初我們安裝 ARC Welder 的時候本體只有12.78MiB,但我最終下載了200+MiB的原因。而 ARChon Runtime for Chrome 是被人改進(破解)后,可以無視 Google 停止服務的擴展程序(因為它已經是一個獨立的擴展程序了)。
簡單點來說,ARC Welder + App Runtime for Chrome (Beta) = ARChon Runtime for Chrome + 需要自己將 apk 格式轉換為 crx 格式。沒錯,那個之前一直卡住我的“Test your APP”界面還附帶了一個將 apk 格式轉換為 crx 格式的功能。
Chrome ARC 安裝使用過程詳解
首先,我們需要將剛才安裝的擴展程序全部卸載干凈,然后將 Chrome 更新到最新的版本。

之后,我們需要安裝 ARChon Runtime for Chrome。
下載地址:ARChon-v1.2-x86_64
這個擴展程序適用於64位的 Intel x86 架構下桌面版 Chrome 和64位的 Chrome OS。如果你的電腦不是這個配置,就需要你自己去官方網站下載了。
傳送門:ARChon Runtime for Chrome 官方網站

開頭的“Warning”也驗證了我們的想法,這個運行環境( ARChon )將會替代官方的運行環境( ARC Welder 和 ARC Beta ),並且完全不依賴兩者。
我們將下載好的壓縮文件解壓,打開 Chrome 擴展程序頁面的“開發者模式”,並選擇“加載已解壓的擴展程序”,然后選擇剛才我們解壓出來的文件。Chrome 的離線擴展程序安裝都是這個步驟,如果是 crx 文件,那么就先修改文件后綴將其變為壓縮文件再解壓。安裝好后會出現兩個錯誤/警告,不過並不影響使用,我們不用管它。


至此,我們 ARC 環境就算安裝完成了,接下來我們需要將我們要安裝的原始 Android 應用程序包(APK)轉換成一個 Chrome 擴展程序。之前有一個在線 apk 格式轉換為 crx 格式的網站(http://huodong.ustc.edu.cn/Crx),不過現在這個網站不能用了。於是我們只能使用當初 Vladikoff 提供的轉換程序 chromeos-apk,不過好在這個方法也並不復雜。
首先,我們需要下載並安裝 Node.js,只有10+MiB。這里 apk 格式轉換為 crx 格式我是在 Windows 系統下操作的,如果有用不了 Windows 的朋友,可以讓周圍用 Windows 的朋友幫忙轉換一下,或者發給我幫你轉換(我的聯系方式在網站的“關於我們”頁面中)。
傳送門:Node.js 官方網站
安裝完成后,打開“Node.js command prompt”。

然后,我們在 Node.js command prompt 的命令行中安裝轉換程序 chromeos-apk 。只需要輸入一下指令,然后回車運行即可。

安裝好轉換程序 chromeos-apk 后,我們就需要通過這個程序將我們的原始 Android 應用程序包(APK)轉換成一個 Chrome 擴展程序。原始 Android 應用程序包(APK)最好是 Google Play 商店里的,比較純凈,但是登錄 Google 商店需要XX上網。不能XX上網的朋友也可以自己在國內的安卓應用網站里下載 APK,盡量保持 APK 純凈就行。為了方便大家理解,我們后面以應用程序包“net.tandem_8427_apps.evozi.com.apk”舉例。
我們再打開 Node.js command prompt,在 APK 所在目錄下輸入以下指令,將 apk 格式轉換為 crx 格式。
拿我們舉例的應用程序包來說,就應該先切換到該 apk 所在目錄下,再輸入指令“chromeos-apk net.tandem_8427_apps.evozi.com.apk –archon”。
這里再介紹一下會用到的其他指令。

轉換成功后,會在當前目錄生成“包名.android”的文件夾(記住這個文件夾的名字,后面要用),即為轉換后的 crx 文件目錄。拿我們舉例的應用程序包來說,轉換后 crx 文件目錄的名稱就是“net.tandem.android”。

這個 crx 文件目錄就相當於離線 crx 包修改后綴后解壓的文件夾,那么后面的安裝大家就應該非常熟悉了。只要打開 Chrome 擴展程序頁面的開發者模式,並選擇“加載已解壓的擴展程序”,然后選擇剛才我們解壓出來的文件即可。
但是經過我實際測試和查閱網上的資料后發現,一般還會遇到以下問題:
1. 在chrome加載CRX文件目錄時,出現錯誤“There is no “message” element for key extName.”
解決方法:以文本模式(例如使用 txt、word、VS Code )打開該 crx 文件夾下的“_locales/en”目錄下的“messages.json”文件,在“extName”節點下,添加“message”字段標簽,值則對應 crx 文件夾的名字(就是剛才說記住的文件夾的名字),然后保存退出即可。拿我們舉例的應用程序包來說,添加的部分為“,”和“”message”:”net.tandem.android””。

2. 在chrome加載CRX文件目錄時,出現錯誤“WebGL 不受支持。”。
解決方法:在 Chrome 地址欄輸入“chrome://flags”,將以下四個功能全部打開。
- Override software rendering list
- Native Client
- WebGL 2.0 Compute(最新的 Chrome 中這個功能已經被合並了,搜索不到了,不用特意去開啟)
- WebGL Draft Extensions

然后徹底關閉 Chrome,再重新打開(如果不知道如何徹底關閉 Chrome,那就重啟電腦)。之后打開 Chrome 的“設置”,打開“高級”,“系統”一欄打開“使用硬件加速模式(如果可用)”。提示:如果你進行了之前的操作,那么這個默認開啟的功能將會被關閉,需要你再次手動打開。

經過以上的操作,我們就可以順利的使用 Chrome ARC 了。和之前的 ARC Welder 的打開方式是一樣的。在 Chrome 地址欄輸入“chrome://apps/”,然后選擇我們安裝好的應用即可使用。

當然,還有更簡便的方法,就是直接從系統里打開該應用。
