Amazon Fire TV Stickアプリ開発環境セットアップ（Fire App Builder）

#Fire App Builder のセットアップ

Fire TV で動作する Javaアプリベースアプリを開発するのに必要なFire App Builder 。　本稿では Fire App BuilderをWindowsに導入して、Amazon Fire TV へサンプルアプリを転送するまでの手順をたどります。

### その前に、、Fire App Builderの位置づけ
FireTVでアプリを開発するには以下の方法があります。FireApp Builderはその中でも JavaベースでFire TVアプリを１から開発したい人向け、、という位置づけです。

- Amazon Creator　を使う (HTML5ウェブアプリベース)
- Fire App Builder　を使う(Javaベース）
- Fire TV対応ウェブアプリスターターキット（WASK）を使う（HTML5、CSS3、JavaScriptを使う開発者向け）
- Androidアプリをカスタマイズする
- ウェブアプリをカスタマイズする
- ゲームアプリ(Unity、Cocos2d-x、GameMaker)をカスタマイズする



**元にしたサイト**
**Get Set Up | Fire App Builder** （英語）amazon appsotre
https://developer.amazon.com/ja/docs/fire-app-builder/toc-get-set-up.html

**環境**
Fire TV Stick (2017年版：CPU = MediaTek Quad-core ARM)
Windows 10 Pro

#ステップ1 : ダウンロードとサンプルアプリのビルド
##Fire App Builderのダウロード

###Git のダウンロードとセットアップ
Windows版 Gitをダウンロードしセットアップします。
https://gitforwindows.org/
数多くのオプションがセットアップ時に選択できますが、すべてデフォルトで問題ありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/2b42a52f-1baa-64f4-ff5d-a01bca35da95.png)


###　Git の設定でシンボリックリンクを True にする
GitのCloneの際にすべてのLinuxシンボリックリンクをWindowsのシンボリックリンクへ変換する設定です。
コマンドプロンプトを「管理者で実行」で起動し以下のコマンドを実行します。
※管理者権限がない場合、またはこのコマンドが実行できない場合も、あとに紹介するスクリプトをつかってシンボリックリンクの変換ができます。

```
C:\Windows\system32>git config --global core.symlinks true

C:\Windows\system32>
```



###fire-app-builder のクローン
https://github.com/amzn/fire-app-builder へアクセスし緑色の "Clone or download"　をクリックしURLをクリップボードへコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/32a093ac-ca83-1292-8c84-5ee119c65744.png)

その後、コマンドプロンプトを起動、お好きな場所へディレクトリを移動し、Git Cloneコマンドを実行します。

```
C:\Users\daigo>git clone https://github.com/amzn/fire-app-builder.git
Cloning into 'fire-app-builder'...
remote: Enumerating objects: 3042, done.
remote: Total 3042 (delta 0), reused 0 (delta 0), pack-reused 3042
Receiving objects: 100% (3042/3042), 10.46 MiB | 2.04 MiB/s, done.
Resolving deltas: 100% (876/876), done.
Checking out files: 100% (1083/1083), done.

C:\Users\daigo>
```

##　JDKのセットアップ
JDKが導入されていることを確認します。

以下のフォルダがあれば jdk は導入されているでしょう。
C:\Program Files (x86)\Java\jdk1.8.0_* 
C:\Program Files\Java\jdk1.8.0_*

JREが導入されていない場合は、
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
から Java SE Development Kit 配下 Windows x86 または Windows x64 をダウンロードして導入します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/5391d822-0801-769b-9443-1be7aed59a18.png)

## Android Studio のインストール

https://developer.android.com/studio/index.html?hl=ja
からAndroid Studio をダウンロードして　インストールします。
インストール方法は以下で動画で説明されています。
https://developer.android.com/studio/install?hl=ja

セットアップでは、すべてデフォルトで進めて問題ありません。

インストールが終わると、デフォルトで初回起動が行われます。初回起動の際、セットアップウィザードが実行されますが、それもすべてデフォルトの選択を行います。

最終的に以下のようなウェルカム画面が出ます。
このウェルカム画面はAndroid Studioを起動するたびに表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/18971fb5-751f-908f-70e3-66520bb1fbab.png)


## サンプルアプリをAndroid Studioで開く

ウェルカム画面から
Open an exiting Android Studio Project 　を選択します。
最初に Git hub からfire-app-builderをクローンしたローカルフォルダの中の `Application` フォルダを選択しOKを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/b41128d1-6ff6-5264-b6f2-0f1e8572e398.png)

するとビルドが開始されますが、途中で止まります。

###  ビルドエラーの解消
インストール直後の状態では、依存するPlatformなどがダウンロードされていないためビルドが成功しません。このためビルドが止まるたびに依存する物のダウンロードを行う必要があります。
といってもやることは簡単で、ビルドアウトプットに表示されたリンクを上から押していくだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/7ce26c72-fa3c-264e-b719-468a0ecfad9e.png)

ビルドアウトプットに表示されたリンクを押すと以下のような画面で必要な物のダウンロードが開始されま、終了すると再度ビルドがかかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/bc95e285-cf90-361c-2ab0-c9317b9733e9.png)


###  Failed to resolve: com.android.support:recyclerview-v7:23.1.1　の解消
`ERROR: Failed to resolve: com.android.support:recyclerview-v7:23.1.1` が表示されたら
`Add Google Maven repository and sync project` をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/b674755d-c0b9-035d-0ea9-68ec34d5b5a0.png)
その後 `Do Refactor`  をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/44b73e93-cf84-90c3-ec69-50c06fad4f92.png)

### GradleのUpdate は "Don't remind me again for this project." を選択
GradleのUpdateを勧めるウインドウは"Don't remind me again for this project." をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/50924dad-c70d-3e8b-7c8e-f4f6ce3684b0.png)

### シンボリックリンク変換スクリプトの実行
また、以下のように `fire-app-builder\Utils\src\main\res\values-en-rUS\strings.xml:1:1: Error: プロローグにはコンテンツを指定できません。`というメッセージが出て止まることがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/bddc4a25-eee0-15fb-c044-14326d50e686.png)
これは、Gitで取得されたシンボリックリンクがWindowsのシンボリックリンクに置き換わっていないのが原因です。

この場合、以下のページの "[download these Powershell scripts.](https://m.media-amazon.com/images/G/01/mobile-apps/dex/firetv/fireappbuilder/symlinks_scripts_windows.zip)"からダウンロードできるツールを使ってGitのシンボリックリンクをWindowsのシンボリックリンク、またはハードリンクに変換することができます。
https://developer.amazon.com/ja/docs/fire-app-builder/configure-windows-symlinks-no-admin-priv.html
ざっくりの手順としては

1. `symlinks_scripts_windows.zip`　をダウンロード
2. ZIPを解凍して得られた`convert_to_windows_symLinks.ps1`（シンボリックリンクへ変換）`convert_to_windows_hardLinks.ps1`（ハードリンクへ変換）　　を GitでCloneした `fire-app-builder` フォルダへ配置
3. `convert_to_windows_symLinks.ps1` （シンボリックリンクへ変換）をPowerShellで実行し動けばそれでよし、動かなければ`convert_to_windows_hardLinks.ps1`（ハードリンクへ変換）を実行する。

# ステップ2 : adb でFire TV と接続する
Fire App Builderのセットアップが終わったので、adbでFire TVとつないでアプリをFire TVで実行していきます。

## Amazon Fire TVでデバッグモードを有効にする。

Fire TV をテレビに繋いで画面表示が出る状態で作業を進めます。
1. ホームスクリーンから "設定" を選ぶ
2. "My Fire TV" を選択し "開発者オプション"を選択
3. "ADB デバッグ" を "オン"　にします。
4. "不明ソースからのアプリ" を "オン" にします。
![20190727_223451.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/7e58ca07-81a2-5067-6183-236f45688a76.jpeg)

## ADB (Android Debug Bridge)ドライバのセットアップ
この項はADBにネットワーク接続(無線LAN接続)をする場合はは省略できるので通常は省略します。
もしADBにUSB接続したい場合はドライバのセットアップが必要で、その場合は以下のドライバファイルをダウンロードしてセットアップします。
https://s3.amazonaws.com/android-sdk-manager/redist/fire_devices_usb_driver.zip 

## ADB (Android Debug Bridge) へ PATHを通す
ADBコマンドを簡単に実行できるようにOSのパスを通します。

1. Android Studio のTools から SDK Managerを選択
2. Android SDK Location: の右のテクストボックスにある フォルダパスをコピー
3. コピーしたフォルダパスの最後に　\platform-tools　を追加した場所にPATHを通します。

例：　　C:\Users\daigo\AppData\Local\Android\Sdk\platform-tools

Windows10の場合、"システムのプロパティ" の "詳細設定"タブを選択、"環境変数"ボタンをおして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/bf643be9-d054-afd1-dc3c-91ac785dc33d.png)

システム環境変数　の中の　Path　を選択して編集
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/8f210771-3a3d-5559-de51-2fa7a8746446.png)

新規　をクリックして上記で得たフォルダパスを貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/e36b4d9f-d7eb-0793-1fc5-93fa00686f1d.png)

## PC と Fire TV と ADBで接続する
###ネットワーク経由で接続する場合
Fire TV へ接続するためにFire TVの IPアドレスを確認します。
Fire TV のIPアドレスは　**"ホームスクリーン" ＞ "設定" ＞ "My Fire TV" ＞ "バージョン情報" ＞ "ネットワーク"**　とたどると確認できます。
![20190727_223411.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/c85697e0-b547-bc3f-10fc-f3ae95c4ad4e.jpeg)


またPCのIPアドレスも念のため確認し、Fire TVと接続するPCがFire TVと同じネットワーク内に接続されていることを確認します。PCのIPアドレスの確認は　コマンドプロンプトから `ipconfig` を実行することで表示できます。 

```
C:\Users\daigo>ipconfig
```

|例）|IPアドレス|サブネットマスク|
|:--|:--|:--|
|PC|192.168.0.3|255.255.255.0|
|Fire TV|192.168.0.166|255.255.255.0|


IPアドレスが確認できたら、ADBで接続します。
コマンドプロンプトで　`adb connect <Fire TVのIPアドレス>:5555` 　と実行します。

```
C:\Users\daigo>adb connect 192.168.0.166:5555
* daemon not running; starting now at tcp:5037
* daemon started successfully
failed to authenticate to 192.168.0.166:5555
```

この時Fire TV側では
　**"USBデバッグを許可しますが？"**
と表示されます (ネットワーク接続であってもUSBデバッグと表示されます)。ここで。
　**"このコンピューターを常に許可"**
にチェックをいれて"OK"を選択します。

## サンプルアプリの実行
前項でADB接続が完了したら Android Studio から　Run 'app'　ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/a2052c1d-011b-5991-9b34-e865baf829ff.png)

Select Deployment Targetダイアログが出たら "Amazon AFTT" を選択してOK　を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/547b2995-57f2-4766-f3fa-e7c711c5fe61.png)


すると長いコンパイル時間を経て、FireTVでサンプルアプリが実行されます。
![20190727_224024.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/46b0ada0-ee5d-8a22-cb22-921ca783c372.jpeg)
![20190727_224000.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414368/64489d17-239d-3e38-3c2d-15b56a725479.jpeg)

これで開発環境のセットアップは終了です。

次の記事 >> [Fire App Builder 基本画面の説明とカスタマイズ](https://qiita.com/Daigorian/items/2843d38306dc3ac5b1d3)