Android Studioエミュレータ上でGoogle IO Android アプリを実行してみた

## はじめに
この記事では、Android StudioエミュレータでGoogle IO Android アプリを実行させる手順を説明します。ソースには[Google I/O (2019) Android App](https://github.com/google/iosched/blob/master/README.md)を使用します。

## 前提環境
* macOS Mojave
* Android Studio 4.0
* openjdkインストール済
    * brew cask install adoptopenjdk8

## 概要
Android Studioでプロジェクトをテストできる環境構築するために、以下のステップが必要です。詳細は以下のセクションをご参考ください。

* SDK ManagerをConfigure
* AVD ManagerをConfigure
* プロジェクトをテスト

※ Android StudioでSDKとAVDのインストールは説明しませんので、ご不明の場合、[こちら](https://qiita.com/blendthink/items/fd7772b5a8773ee8bc0f)の記事ご参考ください。

## 環境設定
###  SDK Manager をConfigure

Android Studio起動後最初の画面の右下の「Congiure」を選択し、SDK Managerをクリックします。

![configure1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/5ea441b9-1ae6-379f-a219-bbe8de62c7ff.jpeg)
![config2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/99e5dcc6-b2a8-e4b0-9f51-e5b91a43255a.png)

SDK Manager画面のSDK Platformタブで、Android Platform Packageのバージョンを選定、ここでは「Android 9.0 (pie)」を選択します。Applyボタンを押します。
![sdk1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/2250d51a-4408-61db-81d4-8ca01e8e96c7.jpeg)

同じ画面のSDK Toolsタブで、ご必要なSDK Developer Tools選定、ここでは「Android Emulator」と「Android SDK Platform-Tools」を選択します。ApplyしてOKボタンを押します。

![sdk2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/7071d7a7-4af2-9ce7-aee6-5d1bd29e5c54.jpeg)

###  AVD Manager をConfigure

上記SDK ManagerのCongiureが終わったら、自動的にAndroid Studio起動後最初の画面に戻ります。
もう一度画面右下のConfigureを押して、「AVD Manager」を選択します。

![avd1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/e8d61368-3845-72be-bfc1-65f27633ef82.jpeg)

AVD Manager で「Create Virtual Device」を選択します

![avd2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/ef2ec4b3-b83c-ea8a-a1ce-e7b19209228d.png)

AVD Manager 内ご自身が使用されたPhone タイプを選択して「Next」をクリックします

![avd3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/99fa8c2f-9c89-d82c-9421-dc51bdf2c00b.png)

System Imageをダウンロードして「Next」をクリックして「Next」をクリックします（System Imageは使用されるAndroid端末をベースで選択してください）。

![avd4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/0bdff118-ce66-8f6a-907f-e3cd1a58449a.png)

Virtual Device ConfigurationでデバイスをConfigureします。基本はデフォルトのConfigurationで良いです。
「Finish」ボタンをクリックします。
ここまでAVDのConfigureが完了となります。

![avd5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/f47bc9cc-7b48-f4a6-5dfe-90a817be35dc.png)

## プロジェクトをビルド

### ソースを読み込む 
上記AVD ManagerのCongiureが終わったら、自動的にAndroid Studio起動後最初の画面に戻ります。
この画面で「Open an existing Android Studio project」を選択します。

![pjt1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/53e1b8d8-538f-ba07-a992-572a65a90c62.jpeg)

Githubでダウンロードした[Google I/O (2019) Android App](https://github.com/google/iosched/blob/master/README.md)、解凍後のソース(iosched-master)場所を指定して、「Open」をクリックします。

![Screen Shot 2020-07-28 at 12.00.03.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/4aebdc56-98ff-a45f-3f76-f6dd9a02c7a0.jpeg)

### ソースをビルド
Google I/O (2019) Android アプリの[README](https://github.com/google/iosched/blob/master/README.md)ファイルにより、ビルド方法は***gradlew build*** コマンドです。

![Screen Shot 2020-07-28 at 16.32.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/6e82c9d3-e6b7-c5cf-a1b7-c9b62ed1d7b7.png)

自分はあまりgradleに詳しくないため、まずgradlewを使ったビルド方法を調査しました。

こちらの[Building Java Projects with Gradle](https://spring.io/guides/gs/gradle/)です！
この説明により、以下のビルド手順が推奨されるので、それに従って実施しました。

* gradleをインストール
* gradle wrapperでプロジェクトをビルド
* gradlewでビルドする

#### gradleをインストール

    brew install gradle

gradleのバージョンを確認
![Screen Shot 2020-07-28 at 15.19.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/133dd3fa-2fdd-0c0a-2017-335c1a141603.png)

#### gradle wrapperでプロジェクトをビルド

ターミナルでコマンド***gradle wrapper***を実行させます。以下の実行ログより、６分ぐらいかかりました。
※ 実行場所はiTermなどのターミナルエミュレータやAndroid Studioのビルトインターミナルどちらでも一緒です

![Screen Shot 2020-07-28 at 16.53.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/3fe75556-427b-263c-8bec-a6bbbc8d4e9d.png)

#### gradlewでビルド
まず、gradlew権限を修正します。iosched-masterパスの下で***chmod 755 gradlew***でgradlewファイル権限を修正します。

続いて、コマンド***./gradlew build***を実行させます。

![Screen Shot 2020-07-28 at 17.01.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/bbbb3c16-5895-07e0-cc1f-3c0109b477ba.png)

ビルド完了まで、なんとか53分掛かった！！

![Screen Shot 2020-07-28 at 17.08.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/6e44c37c-8755-17f8-5964-7910420da849.png)


### ソースを実行させる
ソースをビルド後、Android Studioの右上にDeviceが選択できるようになります。ここで、「Nexus 6 API 25」を選定して、「Run」または「Debug」ボタンを押します。

![dev3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/2f690f72-82f8-ee4f-739c-072a0307ac09.png)

数分後、Androidエミュレータが表示されるようになります。
![Screen Shot 2020-07-28 at 14.40.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/7922398c-93ed-8052-df5c-ff492f7094ba.png)

## 最後に
以上で、Android Studioエミュレータ上でGoogle IO Android アプリを実行手順を説明しました。


実はAndroidエミュレータ以外に、USBデバッグもできます。Devoloperモード有効するため、Android端末でBuild Numberを7回押します。
そうすると、USBでPCとAndroid繋がった後、Deviceの所に、motorola Nexus 6が表示するようにします。
![device2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544279/f6e250a5-7977-69ab-785d-36e0f837defa.png)