Android Emulator を Apple Silicon Mac で動作させたい
TL;DR
- Emulator が動かなかったのは、 Android Studio 4.2.2 をインストールしていたため
- Apple Silicon Mac では Android Studio Arctic Fox 以降を使う
- Android Studio をアンインストールする際、
~/Library
や~/.android
にゴミが残るので、自分で削除する必要がある
モチベーション
Apple Silicon Mac で Android Emulator が動作しなくなった。
そもそも、Andrid 仮想デバイスにも X86 や ARM などの種類があり、実機とその仮想デバイスの組み合わせに関係があるのかどうか、よくわかっていない。
Android Emulator をもうちょっと理解することで、問題の領域をある程度特定できる状態にしたい。
関連Scrap:
情報ソース
前提
- お仕事関係で扱うアプリが古いこともあり、開発環境のメンテナンスが行き届いていなくて、周辺ツールを新しいものにすると動かなかったりする
- とりあえず最新版入れておけばOKとはならない...
Emulator のシステム要件は満たしているので、問題はなさそう
- 16 GB の RAM
- 64 ビット Windows、macOS、Linux、または ChromeOS オペレーティング システム
- 16 GB のディスク容量
新しいエミュレータのクラッシュ レポートが存在する場合、AVD が起動しないことがあります(問題 #281725854)。
/tmp
に古いファイルが残っていないので、これは該当しなさそう。
ちょっと古い記事だけど読んでみる
Rosetta doesn’t translate the following executables:
- Kernel extensions
- Virtual Machine apps that virtualize x86_64 computer platforms
Here the Virtual Machine apps includes all VM software like Virtual Box,Android emulator etc.
なるほど、Android Emulator は Rosetta 関係しないんだな。
この記事の時点で Android Emulator の Apple Silicon 版が Preview だったってことは、今の最新版 ( ローカルで稼働している ) は、 Apple Silicon 版が動いている。という可能性が高そう。
↑と、書いたが...
x86 版がインストールされているっぽいことが発覚した
$ file ~/Library/Android/sdk/emulator/emulator
/Users/snaka/Library/Android/sdk/emulator/emulator: Mach-O 64-bit executable x86_64
観たけど...
結局、Android Studio をアンインストールして、新しいバージョン入れ直したということか...
アンインストールで削除するべきファイルたちは参考になった
(概要欄から引用)
# Uninstall Android Studio by running following commands
# Deletes the Android Studio application
rm -Rf /Applications/Android\ Studio.app
# Deletes All Android Studio related preferences
rm -Rf ~/Library/Preferences/Google/AndroidStudio*
rm -Rf ~/Library/Preferences/AndroidStudio*
# Deletes the Android Studio's plist file
rm -Rf ~/Library/Preferences/com.google.android.*
# Deletes the Android Emulator's plist file
rm -Rf ~/Library/Preferences/com.android.*
# Deletes main plugins
rm -Rf ~/Library/Application\ Support/Google/AndroidStudio*
rm -Rf ~/Library/Application\ Support/AndroidStudio*
# Deletes all logs that Android Studio outputs
rm -Rf ~/Library/Logs/Google/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
# Deletes Android Studio's caches
rm -Rf ~/Library/Caches/Google/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*
# Deletes older versions of Android Studio
rm -Rf ~/.AndroidStudio*
# Delete gradle files
rm -Rf ~/.gradle/
#Delete Projects created using Android Studio (Do not run this command if you want to keep the projects created previously on your Android Studio)
rm -Rf ~/AndroidStudioProjects
# Delete Android SDK tools
rm -Rf ~/Library/Android*
rm -Rf ~/.android
以下は存在しなかった
rm -Rf ~/Library/Preferences/Google/AndroidStudio*
rm -Rf ~/Library/Preferences/AndroidStudio*
rm -Rf ~/Library/Preferences/com.android.*
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*
以下はあえて残したいので実施していない
rm -Rf ~/.gradle/
rm -Rf ~/AndroidStudioProjects
Android Studio Arctic Fox について
Android まわりのバージョン体系よくわからん
注 : 昨年発表した通り、Android Studio のバージョン番号体系を Android Studio のベースになっている IntelliJ IDEA の年とバージョンに一致させ、そこに独自のパッチ番号を付加するように変更しました。今後はコードネーム(アルファベット順)を利用します。最初は Arctic Fox で、次は Bumblebee(現在カナリー版)です。Android Studio Arctic Fox(2020.3.1)では、Android Studio が IntelliJ プラットフォームのバージョン 2020.3 にアップデートされます。
仕事の関係で、Android Studio 最新版は使えなさそうだけど Arctic Fox まで上げてみるか...
Apple Silicon Mac の登場時期と Android Studio のバージョンについて整理
Apple M1
The original M1 chip was introduced in November 2020, and was followed by the professional-focused M1 Pro and M1 Max chips in October 2021.
https://en.wikipedia.org/wiki/Apple_M1
Wikipedia によると 2020 年秋ごろ
Android Studio 4.2.2
ダウンロードアーカイブ
今インストールされていた Android Studio 4.2.2 は 2021年6月30日 リリースだが
ZIP ファイルを見る限り、 Mac 向けは1種類、つまり Intel CPU向けだったように見える。
Android Studio Arctic Fox | 2020.3.1
Android Studio Arctic Fox | 2020.3.1 は 2021年7月28日 リリース
ZIP ファイルから、このときから Apple Silicon をサポートし始めたように見える。
ということは、Apple Silicon 対応の Android Studio で古いバージョンを使う場合 Arctic Fox 使っていれば良さそう?
Android Studio のアンインストール
~/Library や ~/.android 配下の関連ファイルも削除する
rm -r ~/Library/Android/
rm ~/Library/Preferences/com.google.android.studio.plist
rm ~/Library/Preferences/com.android.Emulator.plist
rm -r ~/Library/Application\ Support/Google/AndroidStudio4.2
rm -r ~/Library/Logs/Google/AndroidStudio2023.1
rm -r ~/Library/Logs/Google/AndroidStudio4.2
rm -r ~/Library/Caches/Google/AndroidStudio2023.1/
rm -r ~/Library/Caches/Google/AndroidStudio4.2/
rm -r ~/.android
Android Studio Arctic Fox | 2020.3.1 をインストールする
上記のページから
Android Studio Arctic Fox | 2020.3.1
を検索して以下をダウンロードする
Mac: android-studio-2020.3.1.22-mac.dmg(996.6 MB)
Emulator が ARM なので良さそう
$ file ~/Library/Android/sdk/emulator/emulator
/Users/snaka/Library/Android/sdk/emulator/emulator: Mach-O 64-bit executable arm64
Install Log
Preparing "Install Android SDK Build-Tools 34 (revision: 34.0.0)".
Downloading https://dl.google.com/android/repository/build-tools_r34-macosx.zip
"Install Android SDK Build-Tools 34 (revision: 34.0.0)" ready.
Installing Android SDK Build-Tools 34 in /Users/snaka/Library/Android/sdk/build-tools/34.0.0
"Install Android SDK Build-Tools 34 (revision: 34.0.0)" complete.
"Install Android SDK Build-Tools 34 (revision: 34.0.0)" finished.
Preparing "Install Android SDK Platform-Tools (revision: 34.0.5)".
Downloading https://dl.google.com/android/repository/platform-tools_r34.0.5-darwin.zip
"Install Android SDK Platform-Tools (revision: 34.0.5)" ready.
Installing Android SDK Platform-Tools in /Users/snaka/Library/Android/sdk/platform-tools
"Install Android SDK Platform-Tools (revision: 34.0.5)" complete.
"Install Android SDK Platform-Tools (revision: 34.0.5)" finished.
Preparing "Install Android Emulator (revision: 33.1.24)".
Downloading https://dl.google.com/android/repository/emulator-darwin_aarch64-11237101.zip
"Install Android Emulator (revision: 33.1.24)" ready.
Installing Android Emulator in /Users/snaka/Library/Android/sdk/emulator
"Install Android Emulator (revision: 33.1.24)" complete.
"Install Android Emulator (revision: 33.1.24)" finished.
Preparing "Install Google APIs ARM 64 v8a System Image (revision: 12)".
Downloading https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-34_r12.zip
"Install Google APIs ARM 64 v8a System Image (revision: 12)" ready.
Installing Google APIs ARM 64 v8a System Image in /Users/snaka/Library/Android/sdk/system-images/android-34/google_apis/arm64-v8a
"Install Google APIs ARM 64 v8a System Image (revision: 12)" complete.
"Install Google APIs ARM 64 v8a System Image (revision: 12)" finished.
Preparing "Install Android SDK Platform 34 (revision: 2)".
Downloading https://dl.google.com/android/repository/platform-34-ext7_r02.zip
"Install Android SDK Platform 34 (revision: 2)" ready.
Installing Android SDK Platform 34 in /Users/snaka/Library/Android/sdk/platforms/android-34
"Install Android SDK Platform 34 (revision: 2)" complete.
"Install Android SDK Platform 34 (revision: 2)" finished.
Preparing "Install Sources for Android 34 (revision: 2)".
Downloading https://dl.google.com/android/repository/sources-34_r01.zip
"Install Sources for Android 34 (revision: 2)" ready.
Installing Sources for Android 34 in /Users/snaka/Library/Android/sdk/sources/android-34
"Install Sources for Android 34 (revision: 2)" complete.
"Install Sources for Android 34 (revision: 2)" finished.
Parsing /Users/snaka/Library/Android/sdk/build-tools/34.0.0/package.xml
Parsing /Users/snaka/Library/Android/sdk/emulator/package.xml
Parsing /Users/snaka/Library/Android/sdk/platform-tools/package.xml
Parsing /Users/snaka/Library/Android/sdk/platforms/android-34/package.xml
Parsing /Users/snaka/Library/Android/sdk/sources/android-34/package.xml
Parsing /Users/snaka/Library/Android/sdk/system-images/android-34/google_apis/arm64-v8a/package.xml
Android SDK is up to date.
Creating Android virtual device
Android virtual device Pixel_3a_API_34_arm64-v8a was successfully created
今度は起動した
$ emulator -list-avds
Pixel_3a_API_34_arm64-v8a
$ emulator -avd Pixel_3a_API_34_arm64-v8a