はじめて Android のハンズオンに参加する前の準備

## はじめに
はじめて Android のハンズオンに参加する方向けに、Android の開発環境構築手順をまとめました。
ハンズオンの事前準備の参考資料として活用して頂ければ幸いです。

**環境構築にはトータルで数 GB のダウンロードが必要なため、ハンズオン会場ではなく事前に環境構築を済ませておくことをお奨めします。**
（過去何度か、ダウンロードで待ちぼうけになるハンズオン参加者がいらっしゃいました…）

## Android Studio の インストール
次の URL から必要に応じた Android Studio をダウンロードします。
### 安定版のダウンロード
通常はこちらで大丈夫かと思います。
https://developer.android.com/studio/
### Preview 版のダウンロード
Preview 版の Android Studio でしか実行できない機能を使う場合は、下記 URL からダウンロードします。
https://developer.android.com/studio/preview

もし、指定のバージョンが表示されない場合は
https://developer.android.com/studio/preview?hl=en
だと表示されるかも知れません（英語サイト）
### Android Studio のインストール
https://developer.android.com/studio/install
に各 OS ごとのインストール手順が動画で示されているので、それに従ってインストールして下さい。

## Android SDK のインストール
（前述の手順でインストールされているかも知れませんが、念のため。。。）
Android アプリをビルドするためには、ローカル環境に Android SDK がインストールされている必要があります。

Tools > SDK Manager で SDK Manager を開くと、API Level（Android の OS バージョン）ごとの SDK がインストールされているかどうかがわかります。
<img width="1004" alt="スクリーンショット 2019-12-19 0.46.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/e63e74a0-43d2-a869-8502-0c761637fb37.png">

ソースコード中の `compileSdkVersion` に指定されている API Level の SDK がインストールされていれば OK です。
もし、インストールされていなければ、ここの画面からもインストールをすることが可能です。

インストールを進めようとすると以下の画面が表示されます。
<img width="789" alt="スクリーンショット 2019-12-19 16.42.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/30fb974d-19e5-4e7d-8ec7-01e87ba12608.png">

License Aagreement に同意し、 `Accept` を選択して `Next` をクリックします。

<img width="790" alt="スクリーンショット 2019-12-19 16.42.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/d9be2587-4c86-7e78-0a67-7c1712e6ae22.png">

しばらくかかります。。。


## 端末の準備
### Android 端末を持っている方
開発者オプションの設定

設定アプリから、 **デバイス情報** を開きます。
![Screenshot_20191219-221104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/d1b00bbb-cf4c-8261-71ce-35bd55b57881.png)
 **ビルド番号** を7回タップします。
![Screenshot_20191219-221132.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/66f05f38-88a7-d14c-d4e0-e3181551ca07.png)
タップしている最中に（デベロッパーになるまであと2ステップです）と表示されるはずです。
![Screenshot_20191219-221143.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/1aec3524-b80e-d87f-a98f-2499ea9a1e1e.png)
完了したら、（これでデベロッパーになりました）と表示されます。
![Screenshot_20191219-221200.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/0829786c-e9f4-b411-1428-edb9d41a21bc.png)

**開発者向けオプション** が追加されているので開きます。
![Screenshot_20191219-221211.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/203bc861-5d1f-3110-6f9e-799c8eb1a058.png)

開発者向けオプションを ON にし、 **USBデバッグ** を ON にします。
![Screenshot_20191219-221223.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/7186b213-a4e7-e9e2-8d59-63c15aba7ebe.png)

「USBデバッグを許可しますか？」ダイアログの内容を確認して OK をタップします。
![Screenshot_20191219-221226.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/bf6d8af7-5c68-d0d9-0d11-0cdeb677eecd.png)

PC と接続すると、「USBデバッグを許可しますか？」ダイアログが表示されるので、 許可をタップします。
（必要に応じて、 `このパソコンからのUSBデバッグを常に許可する` にチェックをつけておいて下さい）
![Screenshot_20191219-221244.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/2a2a9d30-1b6e-e49d-6c28-bc47162792e5.png)

これにて Android 端末の準備完了です。


### Android 端末を持っていない方
Android Emulator のインストール
SDK Manager を開き、 `＋ Create Virtual Device...` をクリックします。
<img width="595" alt="スクリーンショット 2019-12-19 23.50.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/dfcfe70c-d3a1-4c39-bafa-871d2db10c16.png">

Select Hardware で任意の端末を選び、 `Next` をクリック。
<img width="497" alt="スクリーンショット 2019-12-19 23.50.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/8499b3c6-f04f-1318-25de-cfcfae551c17.png">

System Image で任意の OS を選び、 `Next` をクリック。
<img width="496" alt="スクリーンショット 2019-12-19 23.50.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/fd966283-78b7-60a7-f230-77913f94fa20.png">

Android Virtual Device (AVD) で `Finish` をクリック
<img width="497" alt="スクリーンショット 2019-12-19 23.50.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/6336e2a8-bfc8-be85-07dc-4ef22d0fb1c7.png">

以上で準備は完了です。


## 一度ビルドを通しておく
初回ビルド時には大量のダウンロードが行われる可能性があるので、一度ビルドを通しておくと安心です。
Firebase の Codelab のように、apk の署名の SHA1 が必要な場合、少なくとも一度はその PC で Android アプリのビルドを行っておく必要があります。

Android Studio で File > New > New Project を開きます。
何でも良いのですが、 `Empty Activity` を選択して `Next` をクリック。
<img width="891" alt="スクリーンショット 2019-12-20 0.14.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/bbd3d977-dc65-241d-ade7-4f500910b04d.png">

Configure Your Project もそのまま `Finish` をクリック
<img width="893" alt="スクリーンショット 2019-12-20 0.15.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/693b6da1-4cf0-cf2b-2207-63e9a3d57655.png">

Android Studio のツールバーの緑三角ボタンをクリックします。
<img width="295" alt="スクリーンショット 2019-12-20 0.18.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/ea1f9bc9-a5c3-f5ab-d4b9-31a1cd5f8d5e.png">

Android Emulator または USB 接続した Android 端末で、次のような画面が表示されれば OK です。
<img width="402" alt="スクリーンショット 2019-12-20 0.17.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/45cfce6a-feec-91bd-ee28-c746a1e99f36.png">

これにて環境構築は終了です。
お疲れさまでした！！


## ハンズオンスタッフ向け
以降は、ハンズオンを開催するスタッフ向けの情報です。

### 事前に環境構築＆ビルドしてもらう事をお奨めします
ハンズオン会場のネットワークの輻輳を回避するためにも、事前（できれば何日か前）に環境構築＆ハンズオンコードの共有＆ビルドしておいてもらうことをお奨めします。

環境構築だけでもかなりのダウンロードが発生しますが、`build.gradle` に指定されている `compileSdkVersion`, `buildToolsVersion` 次第では、ダウンロードサイズが大きくなり、ビルドが成功するまでに時間がかかってしまう可能性があります。

事前配布ができない場合、当日会場に到着された方から順次配布し、ビルドを試しておいてもらう事をお奨めします。

可能であれば、ハンズオン前（前日や当日開始前）にインストールサポートのイベントを開催するのも手かも知れません。

### ネットワークまわり
会場のネットワークの設定次第では、Android Studio から SDK や System Image をダウンロードできない場合がありました。
可能であれば、事前に会場のネットワークで、Android Studio から SDK や Emulator Image がダウンロードできるか確認しておくことをオススメします。

#### 確認方法
前述の SDK Manager で `SDK Platforms` タブ内に SDK の一覧が表示されていれば大丈夫です。
もしくは、AVD Manager / Create Virtual Device / Next で表示される `System Image` ダイアログで次のような表示になっていれば大丈夫です。
（エラーが表示されていなければ OK）
![スクリーンショット 2019-12-19 1.19.03（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9695/828f7fe5-c486-5a36-c8f9-332c96f6c770.png)

ダメだった場合に備えて、予備の Wi-Fi があると安心かも知れません。