# 用電腦玩手機:Android模擬器、手機投影推薦與在開發的應用 ###### tags: `智慧型手機` `模擬器` `投影` `行動版開發` `Android` ## 模擬器 VS 投影:調整、便利 VS 真實、完整 ## Android模擬器 特點:不需要實體手機,即可在電腦執行Android APP與介面 - 甚至有可調整的軟硬體規格,以及模擬不同的真實裝置型號 - 但仍有不少實體手機特性無法模擬,且效能與還原度難兼顧 ### 模擬器的分類(依主要用途區分):**遊戲應用OR測試開發** #### - 不亞於實體手機的執行效能(應用版) 強調效能足以順暢執行遊戲,且有鍵盤按鍵映射等娛樂功能 - BlueStacks Hyper-V版: - 基於Windows自家虛擬化平台技術(相當於內建的虛擬機器功能) - 效能較高,接近實體高階手機(只模擬部分軟硬體) - 但目前只支援到Android 7 - 其他手遊模擬器: - 知名如BlueStacks一般版、Noxplayer、LDPlayer...... - 基於**改版的**Virutalbox,軟硬體模擬部分相對完整(有完整的Android設定,BlueStacks除外) - 其中BlueStacks 5、Noxplayer的測試版支援到Android 9 - noxplayerz則有wsa與android 12支援 - 補充1:[Windows Subsystem for Android(WSA)](https://docs.microsoft.com/zh-tw/windows/android/wsa/) - Win11以上支援(仍未正式發布,還不夠穩暫不推薦) - 類似WSL使用Hyper-V的運作機制 - 能如一般Windows應用程式開啟個別視窗操作 - 搶先安裝可參考[這篇](https://www.gdaily.org/28643/windows-11-install-google-play),能額外裝Google play教具實用性(否則一般版本只能使用APK安裝或亞馬遜商店) - 補充2:[Google Play Games](https://play.google.com/googleplaygames) - 尚未發布,僅知以模擬器形式用作,還不確定能否執行一般APP與其效能、硬體模擬表現 #### - 模擬完整實體手機硬體特性(開發版) - 強調模擬實體手機的硬體功能,如GPS、相機、電量...... - 可依需求調整如螢幕解析度、儲存容量、記憶體等規格數值 - 但效能比手游模擬器差,執行明顯較不順暢 - 常見產品舉例 - AVD:Android Studio內建與預設模擬器,效能與調整性等各方面中庸 - Genymotion:第三方開發,僅個人使用免費,基於**原版的**Virutalbox,軟硬體模擬效果更多樣,但用起來更慢(?) #### 加碼補充: - [啟用Hyper-V時,模擬器無法使用ADB連線的參考解法(要用的port被系統保留了......)](https://blog.miniasp.com/post/2019/03/31/Ports-blocked-by-Windows-10-for-unknown-reason) - [Android模擬器與WSA的討論](https://www.techbang.com/posts/95353-play-android-mobile-games-with-a-big-screentrend-various) - [可直接在PC安裝執行的Android x86](https://quickfever.com/android-os-for-pc-267751/) ## 手機投影 特點:直接使用實體手機,可在電腦上檢視甚至操作畫面 - 沒有模擬器不夠擬真的限制,且有實體操作情境 - 但無法直接調整手機的軟硬體環境特性 ### 手機投影軟體範例 - Windows 10/11內建的螢幕連線,基於Miracast的無線投影,只能顯示畫面,無法在電腦上操作 - Scrcpy,下載後免安裝簡單易用,需實體USB連線電腦並開啟偵錯模式,可用滑鼠/觸控操作手機 - 米卓鏡射助手,須在電腦與手機端安裝,操作特點同前者(目前有Win11支援問題?),但另支援Wifi連接、鍵盤按鍵映射等便於遊戲娛樂的功能 ## 開發應用 - APP:在電腦編譯後於手機執行(例如以原生Java/Kotlin、React Native、Flutter等開發應用程式) - 模擬器 (預先提醒,ADB包含在Android Studio,或是自行安裝) - 應用版:手動指令,輸入:`adb connect localhost:{模擬器在設定畫面提供的port}` - 開發版:自動連接ADB(不確定狀態的話可輸入:`adb devices`,可看到目前手機的序號) - 實體手機:USB偵錯模式連線 - Mobile-Web:直接在手機瀏覽器輸入網址(佈署後的用完整URL,開發中可用ngrok以跨網域連線展示) - 雖然可在電腦版瀏覽器模擬手機、響應式修改尺寸,效果仍可能與在實體手機裝置上有落差!