CLOUSD
免費註冊
入門

免安裝,線上執行 Android App

從瀏覽器或電腦打開 Android App 的四種方式、各自要花多少時間,以及透過雲手機一分鐘就能打開 App 或 APK 檔案的做法。

想在線上執行 Android App 的理由,差異很大。Mac 或 iPhone 使用者需要用一個只有 Android 版的 App,用一個小時就好。審查者收到一個 APK,完全不想讓它靠近自己的手機。開發者想在 Android 12 和 Android 17 上展示同一個建置版本,又不想帶兩台裝置。產品經理想在辦公室裡沒人有的機型上,看看競爭對手的 App。

「免安裝」的意思是,什麼都不會落在你的電腦或你自己的手機上。App 還是會被安裝在某個地方:一台在別處執行、把畫面串流到你瀏覽器的手機上。這篇指南比較幾種做法,並一步步帶你走過最快的那一種。

四種做法比較

做法設定時間裝置Android 版本最適合限制
電腦上的模擬器第一次 20-60 分鐘,要下載好幾 GB通用的裝置設定任何版本,每個版本一個映像檔本來就在用 Android Studio 的開發者需要效能夠的電腦;完全不是線上的
瀏覽器裡的 App 預覽幾秒鐘通用少數幾個簡短展示你自己做的 App有工作階段限制,通常要上傳自己的建置版本
一支備用手機有的話就不用設定單一機型它裝的那一版快速的個人檢查只有一個版本,而且常常過時
雲手機約一分鐘以真實手機型號打造12 到 17任何 App 或 APK,從瀏覽器操作需要網路連線;免費分鐘用完後要付費

在自己電腦上跑模擬器,是開發者的標準答案,除了時間之外不用花錢。但對不是開發者的人來說並不適合,而且它根本不是線上的。為 App 展示打造的瀏覽器預覽很快,但它們是給開發者展示自己建置版本用的。備用手機堪用,直到你需要第二個 Android 版本為止。

雲手機介於這些之間:一支在資料中心執行的完整 Android 手機,把畫面串流到你的瀏覽器,並接收你的滑鼠和鍵盤輸入。它和模擬器的詳細差別,請看線上 Android 模擬器頁面。

怎麼在雲手機上執行 App

  1. 建立手機。 註冊後,從 12 到 17 選一個 Android 版本,再選一個國家。手機大約一分鐘就緒,以 150 多款真實手機型號之一打造。
  2. 在瀏覽器打開它的畫面。 點擊就是觸控,滾輪就是捲動,鍵盤就是輸入。
  3. 安裝 App。 在控制台把 APK 檔拖到手機上、透過 API 上傳,或透過 ADB 中繼執行 adb install app.apk。App 文件說明了每一種方式。
  4. 使用 App。 登入、試試各個流程、截圖。
  5. 關機或重置手機。 關機的手機不收費。重置會讓它回到全新狀態,App 和資料都會被移除。

在 Clousd 上,前 30 分鐘免費,不需信用卡,通常足夠試用一個 App。之後按分鐘計費,手機開機時每分鐘 $0.004,每台每天最多 $0.80。

該選哪個 Android 版本

大多數 App 在任何目前的版本上都能跑,但有兩種情況需要刻意選擇。好幾年沒更新的 App 在最新的 Android 上可能會出問題,而新的 App 可能拒絕安裝在較舊的版本上。APK 本身會告訴你它的範圍:

aapt2 dump badging app.apk | grep -E "sdkVersion|targetSdkVersion"

sdkVersion 是 App 接受的最低 API 等級,targetSdkVersion 則是它建置與測試時鎖定的版本。對應的 Android 版本是:API 31 和 32 是 Android 12,33 是 Android 13,34 是 Android 14,35 是 Android 15,36 是 Android 16,37 是 Android 17。

實用的預設選擇,是最接近 App 目標版本的那一版。如果你想知道的是 App 對一般使用者的表現,而不是在最新版本上的表現,選一個範圍中間的版本,例如 14 或 15,是合理的做法。不確定的話,就建立兩台手機比較看看:第二台也只要再一分鐘。

APK、XAPK 與分割 APK

不是每個下載檔都是單一的 APK。以 bundle 形式發布的 App,會是一個基礎 APK,加上針對螢幕密度、語言和處理器的分割檔案。下載網站會把它們打包成 .xapk 或 .apks,其實就是 zip 壓縮檔。

  • 一般的 .apk 可以直接安裝。
  • 如果是 bundle,先解壓縮,再把各部分一起安裝:
adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk split_config.xxhdpi.apk
  • 如果 bundle 裡有好幾個處理器的分割檔,安裝符合手機的那一個。用 adb shell getprop ro.product.cpu.abi 就能知道是哪一個。

錯誤訊息 INSTALL_FAILED_NO_MATCHING_ABIS 代表你安裝的檔案裡沒有給這支手機處理器用的程式碼,INSTALL_FAILED_MISSING_SPLIT 則代表 bundle 少了某個部分。

信任一個 APK 之前

在不是你自己的手機上執行 App,本來就讓它碰不到你的檔案、相片和帳號。不過,做幾項檢查還是值得的:

  • 來源。 優先選擇開發者自己的網站或應用程式商店。鏡像站會重新打包檔案。
  • 雜湊值。 如果開發者有公布 SHA-256,就比對一下:Linux 或 macOS 用 sha256sum app.apk,Windows 用 certutil -hashfile app.apk SHA256。
  • 簽章。 Android 建置工具裡的 apksigner verify --print-certs app.apk 會顯示是誰簽署的。憑證和官方版本不同,就是警訊。
  • 權限。 aapt2 dump permissions app.apk 會列出 App 要求的權限。一個手電筒 App 要讀你的聯絡人,根本沒必要。
  • 帳號。 不要在不信任的 App 裡登入你的主要帳號。用這支手機看看它會做什麼,然後重置。

給開發者:不用發布,也能展示建置版本

雲手機是把建置版本快速拿給沒有 Android Studio 的人看的好方法。安裝 debug 版本、打開手機,在通話中帶審查者一步步看。如果要檢查版本差異,就建立兩台手機,一台 Android 12、一台 Android 17,安裝同一個 APK 比較看看。

Log 也透過同一條 ADB 連線取得:

adb logcat --pid=$(adb shell pidof -s com.example.app)

更完整的工作流程,包括在多個版本上跑測試、讀當機 log,請看線上測試 Android App。

這篇沒有涵蓋的

  • iOS App。 這些都只是 Android 手機。
  • 簡訊。 手機收不到簡訊,所以註冊時堅持要簡訊驗證碼的 App,在這裡收不到。
  • 實體世界的東西。 對著你桌面的相機、感應卡片的動作,都不是一支在資料中心執行的手機能做到的。

延伸閱讀

所有指南

準備好啟動
你的第一台雲手機了嗎?

免費試用 30 分鐘

免綁卡