Closed31

Android Emulator を Apple Silicon Mac で動作させたい

ピン留めされたアイテム
snakasnaka

TL;DR

  • Emulator が動かなかったのは、 Android Studio 4.2.2 をインストールしていたため
  • Apple Silicon Mac では Android Studio Arctic Fox 以降を使う
  • Android Studio をアンインストールする際、 ~/Library~/.android にゴミが残るので、自分で削除する必要がある
snakasnaka

モチベーション

Apple Silicon Mac で Android Emulator が動作しなくなった。
そもそも、Andrid 仮想デバイスにも X86 や ARM などの種類があり、実機とその仮想デバイスの組み合わせに関係があるのかどうか、よくわかっていない。

Android Emulator をもうちょっと理解することで、問題の領域をある程度特定できる状態にしたい。

関連Scrap:

https://zenn.dev/snaka/scraps/30388151e60242

情報ソース

https://source.android.com/docs/setup/create/avd?hl=ja

前提

  • お仕事関係で扱うアプリが古いこともあり、開発環境のメンテナンスが行き届いていなくて、周辺ツールを新しいものにすると動かなかったりする
    • とりあえず最新版入れておけばOKとはならない...
snakasnaka
snakasnaka

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 関係しないんだな。

snakasnaka

この記事の時点で Android Emulator の Apple Silicon 版が Preview だったってことは、今の最新版 ( ローカルで稼働している ) は、 Apple Silicon 版が動いている。という可能性が高そう。

snakasnaka

↑と、書いたが...
x86 版がインストールされているっぽいことが発覚した

$ file ~/Library/Android/sdk/emulator/emulator
/Users/snaka/Library/Android/sdk/emulator/emulator: Mach-O 64-bit executable x86_64
Hidden comment
snakasnaka

https://www.youtube.com/watch?v=D2ww3Q2J9O4

観たけど...
結局、Android Studio をアンインストールして、新しいバージョン入れ直したということか...

snakasnaka

アンインストールで削除するべきファイルたちは参考になった

(概要欄から引用)

# 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

snakasnaka

以下は存在しなかった

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
snakasnaka
snakasnaka

Android まわりのバージョン体系よくわからん

注 : 昨年発表した通り、Android Studio のバージョン番号体系を Android Studio のベースになっている IntelliJ IDEA の年とバージョンに一致させ、そこに独自のパッチ番号を付加するように変更しました。今後はコードネーム(アルファベット順)を利用します。最初は Arctic Fox で、次は Bumblebee(現在カナリー版)です。Android Studio Arctic Fox(2020.3.1)では、Android Studio が IntelliJ プラットフォームのバージョン 2020.3 にアップデートされます。

snakasnaka

仕事の関係で、Android Studio 最新版は使えなさそうだけど Arctic Fox まで上げてみるか...

snakasnaka

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

ダウンロードアーカイブ

https://developer.android.com/studio/archive?hl=ja

今インストールされていた 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 使っていれば良さそう?

snakasnaka

Android Studio のアンインストール

snakasnaka

~/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
snakasnaka

Android Studio Arctic Fox | 2020.3.1 をインストールする

https://developer.android.com/studio/archive?hl=ja

上記のページから

Android Studio Arctic Fox | 2020.3.1 を検索して以下をダウンロードする

Mac: android-studio-2020.3.1.22-mac.dmg(996.6 MB)

snakasnaka

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
snakasnaka

今度は起動した

$ emulator -list-avds
Pixel_3a_API_34_arm64-v8a

$ emulator -avd Pixel_3a_API_34_arm64-v8a

このスクラップは4ヶ月前にクローズされました