ARMベースのSurface Pro X買って開発環境構築


はじめに

LTE/4Gでインターネットに常時接続可能で(しかもGoogle Fi SIM使えばほぼ世界中でネット接続可能)、Type-Cで(モバイルバッテリーからも)充電ができて、バッテリーの持ちがそこそこ良くて、軽くて、ペンが使えて ... RAMも(iPad Pro 1TB版のような6GBではなく)16GBあってということで、Surface Pro X購入しました。

ARMベースのWindowsでx86ベースの32bitアプリであればWOA(Windows On ARM)でエミュレーション動作するものの、現時点では64bitアプリが動きませんが、どの程度困るのか、検証してみました。あくまでも書いている時点の一ユーザーのやってみた記録であり、SurfaceのメーカーやOSベンダー、アプリケーションベンダーが保証する内容では全く以てないことを先に申し上げておきます。また、状況がかなり変化して記述が古くなってしまっているので、近いうちに内容をアップデートするようにします(2020/10/24追記)。

なお、ARM64版WSL2(やdocker, Hyper-V上のLinux環境)で動作する開発環境については、別記事にまとめています。
- ARMベースのSurface Pro X買って WSL2でARM64 Linux開発環境構築

動いた

Adobe Creative Cloud

Adobe Creative Cloudのデスクトップ版アプリの最新版は64bitで、32bitアプリの最終版はバージョン4.9とのことで、バージョン4.9をどこからダウンロードすればよいか悩んだものの、結局、普通にWindows版のCreate Cloudインストーラを実行すれば、Surface Pro X上では32bit版が自動的にインストールされました(4.9.0.504)。

Android Studio

下に挙げているようにWindows 32bit版が動作しますが、公式ブログ(Moving Android Studio and Android Emulator to 64-bit versions)にもあるように、32bit版のAndroid Studio IDE、Android Emulatorが2020年末を以てサポート停止になることに注意が必要です。

Windows 32bit版がこちらで提供されているので、ダウンロードの上、zipファイルを展開し、android-studio\bin\studio.exe を実行すれば起動します。

以前(64bit版のWindowsで動作するAndroid Studio 64bit版で)開発したアプリをビルドしようとしたところ、Could not reserve enough space for object heapと怒られてしまったので、gradle.propertiesファイル内の

org.gradle.jvmargs=-Xmx1536m

というJava VMに渡している最大ヒープ指定を(そもそも32bit版のJava VMで動作するのだから)

org.gradle.jvmargs=-Xmx150m

といった感じに小さめに取ってみたら(gradleのバージョンを更新した上で)問題なくビルドできました。

なお、(問題が出そうなポイントでもある)実機との連携ですが、Pixel 4 XLとの連携では特に問題なく動作しているように見受けられます。独自のドライバが必要なケースでは、連携に問題が生じるのかもしれません。

Hyper-V (Build 19559以降でサポート)

Insiders Build 19559以降でサポートされています。英語ですがこちらの記事が参考になります。
- Running Hyper-V in Windows on ARM

Microsoft Office (Office 365)

こちらは明示的に32bit版をダウンロードしてインストールで動作しています。

Microsoft Teams

Web版のTeamsの画面(https://teams.microsoft.com/ )の左下からデスクトップ アプリをダウンロードクリックしても、インストーラーの起動時にコケてしまうので、こちらのダウンロードサイトの下方にあるWindows 32ビットからダウンロードしてインストールする必要があります。

iTunes

Microsoft Store版のiTunesがダウンロード、使用可能です。自動的に(ARM64版がないので)x86版がダウンロードされます。むしろ、インストーラ版のiTunesは32bit Windowsのものをインストールしようとしても、(OSが64ビットなので)エラー表示がされインストールできないので、Microsoft Store版一択です。

Visual Studio Code

こちらも普通にWindows版ということでインストールしてしまうと、64bit版をインストールしようとして失敗してしまうので、こちらのサイトから明示的に32bit版(例えば、Windows→System Installer→32bit)をダウンロードして、インストールします。

Visual Studio 2019

こちらは(VSCodeと違ってそもそも)32bit版しかないので、普通にWindows版をダウンロードして、インストール可能です。

ただし、個別のコンポーネントに関しては、64ビットで動作するものがインストール可能なコンポーネントとして出る・出ないの区別があるようです(上はSurface Book 2上のVisual Studio 2019インストーラ、下はSurface Pro X上のVisual Studio 2019インストーラ)

なお、ARM64に対応したアプリの開発に関しては、こちらが詳しいです。

WSL1

Windowsの機能の有効化または無効化からWindows Subsystem for Linuxが普通に有効化可能です。有効化が完了したら、Microsoft Storeから必要なLinuxディストリビューションをダウンロードして実行します。こんな感じでarm64版のportが動作しています。

WSL2, docker

こちらが詳しいです。私も今はWSL2 + VSCode + dockerを常用しています。

新しいMicrosoft Edge

普通にこちらのサイトにアクセスし、Windows 10版をダウンロードすれば、問題なく動作します。
要は、32bitアプリなのでエミュレーションで動作しますよ、という話です。

拡張機能(プラグイン)も自分が使っている範囲では特に問題なく動作しています。

エミュレーションしているのだから当たり前ですね。

なお、ARM64版の新しいMicrosoft EdgeはMicrosoft Edge Insider Channelからダウンロード可能です。

少しわかりにくいのですが、例えば、Canaryチャネルのダウンロード(Windows 10)を選ぶことで、(ダウンロード時 or インストール時に)ARM64環境であることが自動的に認識され、ARM64版Edgeがインストールされます。タスクマネージャーでも 32ビット 記載のないEdgeが動作していることがわかります。

動かなかった

Hyper-V (Build 19559以降でサポート)

上記の「動いた」をご覧ください。
Windowsの機能の有効化または無効化を見ても、(Windows 10 Proにアップグレードした)ARM版でもHyper-Vの項目はありませんでした。ただし、仮想マシン プラットフォーム自体は両方に存在しています。

Intel版Windows 10 Pro ARM版Windows 10 Pro

Power BI Desktop

Microsoft Store版ではなく、こちらからダウンロード可能な(Intel)ネイティブ版が動作しません。

32bit(x86)版をダウンロードし、起動するとバナーが表示されるのですが、画面が表示される前にクラッシュしてしまいます。

Visual Studio 2019 (Xamarin)

Visual Studio 2019は動いたの項にも載せたのですが、Xamarinを使ったAndroidアプリがビルドできていません。詳細はまだちゃんと追えていませんが。

おわりに

エクスプローラを開くと、Cドライブには、Program Files (Arm) なるフォルダがありました。ここいらのものはARMネイティブということのようです。それでは。