20210115のMacに関する記事は2件です。

M1 MacでAndroidエミュレータを動かす

先日M1 Macを購入し、 思ったよりもトラブることなく快適に使っています。

Androidの開発環境を作っていたところ、まだ公式にはエミュレータが使えない状態だったので、何とかできないかと試してみました。

※ この記事内の情報はすべて、執筆時点(2021/01/15)のものです。

Android Studioを入れたての状態だと

M1 Macはまだサポートされていないので……
image.png
AVDマネージャを開くと、「Your CPU does not support VT-x.」と警告されます。
(そもそもVT-xが使えることは無さそうですが。)

image.png
x86用のイメージでエミュレータを開こうとしても、エラーが出て起動できません。

ARM用イメージを試してみる

AVDマネージャからARM用イメージを追加して試してみます。

image.png
「Other Images」に、arm64-v8a用のイメージがありました。
とりあえずこれを使おうとしてみます。

image.png
x86用イメージと同様、エラーが出て起動できませんでした。
arm64版のイメージだからって、そのまま使えるわけではないみたいです。

Android Emulator M1 Previewを試す

google/android-emulator-m1-previewを試してみます。

https://github.com/google/android-emulator-m1-preview

  1. releasesのページから一番新しいのを取得(執筆時点ではInitial Preview 2)
  2. dmgを開いて「Android Emulator」をApplicationsにインストールする
  3. インストールした「Android Emulator」を右クリックから開く ※普通に開くと「開発元を検証できないため開けません」のエラーが出ます

image.png

開きました。:tada:

ADBのパスを通す

しかし、別の警告が出ています。

image.png

警告に書いてある通り、エミュレータの設定画面でADBのパスを指定します。(adbコマンドにパスが通ってれば自動検知されるかも?)
私の環境では、「/Users/<ユーザー名>/Library/Android/sdk/platform-tools」の中にありました。

そして、エミュレータを起動した状態でAndroid Studioを見ると・・・

image.png

「Virtual Device」として検出された!
ビルドしたアプリが動いた!(画面は無しです。)
デバッグ機能も使えた!!

というわけで、M1 Mac上でAndroid Studioからエミュレータが使えるところまで持ってこれました。:tada::tada:

とはいえ……

まだまだプレビュー版で、このエミュレータだけで開発できる状況ではなさそうです。
既知の課題も山盛り。

  • Webview doesn't work in the AOSP version, but works in the Google APIs version preview v3. However, Chrome doesn't work.
  • No device skins
  • Video codecs not working
  • 32 bit ARM apps won't work
  • Graphical glitches in some Vulkan apps
  • Popup on startup about not being able to find the ADB path (ADB will still notice the emulator if you have it installed though)
  • When building, it may be faster to start then cancel the Python triggered build and then reissue ninja -C objs install/strip versus letting the Python triggered build finish.

なんとWebviewも動かない。
正式版が出るまでは、ちゃんと実機も用意して開発するのが良さそうですね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

iOSからMacのRailsアプリをlocalhostでデバッグする時の設定

なんども忘れるので備忘録として

流れ

  • MacとiOSを同じWiFiネットワークに接続
  • Macの接続IPアドレスを確認
  • iOSで接続しているネットワークにプロキシを設定
  • iOSのプログラムソースの修正
  • サーバーをローカル起動

MacとiOSを同じWiFiネットワークに接続

MacとiOSは同じWiFiネットワークに接続。

Macの接続IPアドレスを確認

システム環境設定⇨ネットワーク⇨WifiからIPアドレスを確認。
networking1.png

networking.png

iOSで接続しているネットワークにプロキシを設定

設定アプリ⇨Wifi⇨iマーク⇨HTTPプロキシ⇨手動でサーバーとポートを指定。
networking5.png
networking4.png
networking3.png

iOSのプログラムソースの修正

static let v1Url: String = {
        #if DEBUG
        return "http://192.xxx.xxx.2/api/v1/"
        #endif
        return "https://xxxxxxxx.com/api/v1/"
    }()

サーバーをローカル起動

bundle exec rails s -b 0.0.0.0

-b 0.0.0.0
を指定しないとlocalhost以外からだとアクセスができない
同一ネットーワークでかつIPが分かれば、どの端末でも誰でもアクセスできるので、漫画喫茶などのネットワークでやる際は注意は必要

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む