天然パーマです。

Android端末を持ってなくてもエミュレータでGoogle Play配布アプリを動かす

iPhoneをずっと使っているのでAndroid端末、僕持ってないんですよねー。とはいえAndroidの環境でアプリの動作確認をしたかったりします。Nexus7のWifiモデルを買ってもいいんだけど、早急にGoogle Playで配布されているアプリをAndroidで検証したかったので、調べつつそれが出来ないかやってみました。結果、Android SDKの中にあるAndroidのエミュレータで動かすことに成功したので、その行程を紹介します。現時点で出来るってことで今後不可能になるかもってのと、自己責任でお願いします。

Android SDKが用意されていることを前提として、ざっくりと行程を紹介すると

  1. BlueStacksというソフトをインストールする
  2. そのソフト内でGoogle Playからダウンロード出来て動かせる、ただ使い難いのでSDKのエミュレータを使う
  3. Device IDなるAndroidアプリがあるのでこいつを入れてアカウントと紐づいたデバイスのIDを取得する
  4. デバイスのIDが分かればAPK DownloaderというChromeのエクステンションで.apkをゲットできる
  5. SDKのエミュレータを起動
  6. .apkをエミュレータ内に仕込んでインストール
  7. 動くー

以下それぞれ詳細



BlueStacks

アプリの.apkファイルさえあればSDKのエミュレータで動かすことが出来るんだけど、Google Playの配布元からは工夫しないとゲット出来ない。で工夫する際にGoogleのアカウントと紐づいたデバイスのIDが必要なんだけど、端末を持っていない僕としてはそれが無いんですよ。そこでこのBueStacksというPC/Mac用のソフトの出番です。

スクリーンショット 2013-04-12 12.23.20.png

BlueStacksについてどうなってるのか?よく理解してないんだけど、端末としてエミュレートされているっぽい。Google Play上のアプリをダウンロードしてインストール、そして、ソフト内で動かすことが出来ます。ただそれだと挙動が遅かったり、表示がずれたりして検証にはあんまり向いてない。けれどGoogle Playにある「Device ID」って言うソフトを使えば仮想だけど固有っぽいデバイスのIDを取得することが出来ます。

とりあえずそのアプリを使ってデバイスIDをメモっておく。

APK Downloader

デバイスIDさえあれば、ChromeのエクステンションであるAPK Downloader経由でGoogle Play上の.apkファイルを手に入れることが出来ます。

スクリーンショット 2013-04-12 12.26.38.png

エミュレータに仕込む

Android SDKから希望のエミュレータを起動させます。そしてその後

$ {Android SDKへのパス}/sdk/platform-tools/adb install ~/Download/xxxxx.apk

というコマンドを打てばエミュレータにインスコされて、動く!

スクリーンショット 2013-04-12 12.32.17.png



ってことでAndroidのデバグが実機持ってなくても出来ましたよー。