開発環境の構築
今回詳細は省略します。
なお詳細は、当コラムの「FireHD8(7)、アプリ開発環境」で紹介する予定です、後日ご参照下さい。
○開発環境の構築
○Android Studioのダウンロード
https://developer.android.com/studio/index.html?hl=ja
○Android Studioのインストール
https://akira-watson.com/android/adt-windows.html
開発者オプションの設定
○開発者オプションの設定
通常、Androidでは「開発者オプション」は表示されないようになっています。
※トリッキーな操作を行うと、このオプションが表示されるようになります。
※通常、一般の人は使用する必要がないので、誤って表示されないように!!!
3番めの画面で、「バージョン情報」で「決定ボタン」を何回か、押下します。
この状態で、前のメニューに戻ると「開発者オプション」が表示されます。
開発者オプションを選択して、「ADBデバッグ」をONに変更します。
これで、実行時に、ADB機能を使用することができます。
○なお、以下の操作で「開発者メニュー」を表示することもできます。
開発者メニューは今回は使用しません。
決定ボタン+下向きカーソル押下して、その後「三」(メニュー)を押下する
サンプルプログラムの作成
○サンプルプログラムの作成
まずプロジェクトを作成します
「File」「New」「NewProject」
対象のデバイスを指定します
Templates:Android TV(FireTVStick)を指定
★ここで、FireTV Stickを指定★
Activity: BlankActivityを指定
プロジェクト名&開発言語を指定します
Name:FireTV01
Language:kotlin
コンパイル終了
下側のウィンドウで、コンパイル結果が確認できます
BUILD SUCCESSFUL in 5s
○ディレクトリ構成
ソースプログラムに加えて
各種リソース:
layout(画面構成)
values(リテラルリソース)
等を確認できます。
○状況ウィンドウ:BUILD/LOG/Event等の確認
BUILD(コンパイル)の結果はどうか?実行の状況はどうか?
DEBUG(デバッグ)の指示、問題ははっせしていないか?
LOG(ログ)にエラーはでていないか?EVENT(イヴェントログ)はどうか?
エミュレータで実行
まず、実機でテストする前に、エミュレータを作成して、エミュレータで実行します。
私の現在の環境では、エミュレータでテストするには不十分でした。
HDD: 10GB/457GB(使用済/総容量)
MEM; 5.6GB/7.8GB(使用済/総容量)
TVエミュレータの作成で、HDDに4.6GB必要です
また実行には6GBのHDDが必要なようです
⇒ これならば、実機でテストした方が早いです
早い話、エミュレータ使用するには10GB以上のHDDの空きが必要です!?
※メモリも4GB以上の空きが必要です(AndroidStudioで1GB+エミュレータで3GB)
※やはり開発には、開発用のマシンを用意する必要があるようです
○エミュレータの作成
時間はかかりましたが、エミュレータは無事に作成できました。
○エミュレータの実行
以下のエラーが発生しました:
「Error while waiting for devices: The emulator for AVD Android_TV_720p_API_30 has terminated」
このエラーはHDD容量の残が2-3GBの場合に表示されるようでうす、6GB程度の空きを作る必要があるようです。
最後の図は、エミュレータ実行中のタスクマネージャでのリソース状況です。
実機で実行(Wifi接続)
さて、サンプルプログラムを実機(FireTvStick)で実行します。
※Wifi接続にて、実機でテストします。
○サンプルプログラムの実行
FireTVStickシミュレータでの動作確認ができたので、いよいよ実機でテストします。
・実機、FireTVStickが見つからない
・「adbコマンドで実機を見つける」を参照
○実機がみつかったので、再度サンプルプログラムの実行
実行デバイス:Amazon AFTSSS(FireTV)を確認
○プログラムの実行
実行開始します
「Run」「Run app」
○プログラムの停止
実行停止します
「Run」「Stop app」
○実機の再確認
右側ペインで確認
「DeviceManager」「Phisical」「Device」
Amazon AFTSSS
○実機に登録されたアプリを削除する場合
該アプリが選択されている状態で:例のAndroidアプリアイコンです
○リモコンの「三」(メニューボタン)を押下します
○右側に表示されたオプションで「アンインストール」を選択します
※なおアイコン表示位置を移動するには「移動」を選択して、移動できます。
実機で実行(USB接続)
○接続の問題について
「FireTVStick」(第3世代を使用)には、USBインタフェースが1個しかありません。
その1個も電源として使用しています。
そこで、USB接続を、電源からPCに変更します。
PCからFireTVStickに充電するには、以下の前提条件が必要でした:
○PCを十分な充電状態にすること
○PCを充電状態にすること(電源モードが「接続」状態)
※上記の条件を満たした場合、たまに接続に失敗しますが、上手く動作するようです。
○adbコマンドで事前確認
USBデバイスが「unautholized」から「device」として認識されか確認します。
adbコマンドで実行
実機での実行ですが、AndroidStudioで実機を認識できない場合、adbコマンドで実行が可能です。
○ADBコマンドにパスを通す
本来は、環境変数PATHの設定ですが、ここでは安直にかれんとディレクトリ変更で。
cd C:\Users\shim1\AppData\Local\Android\Sdk\platform-tools
○adbの初期化
adb kill-server adb start-server adb connect 192.168.0.153:5555 adb devices
参考URL:https://developer.amazon.com/ja/docs/fire-tv/installing-and-running-your-app.html
○ADBコマンドを使用して、アプリをインストール
なお再インストールの場合は「-r」を付加します。
※C:\Users\shim1\AndroidStudioProjects\FireTV01\app\build\outputs\apk\debug\app-debug.apk
adb install "C:\Users\shim1\AndroidStudioProjects\FireTV01\app\build\outputs\apk\debug\app-debug.apk" ##今回の実際のパス
○ADBコマンドを使用して、アプリを実行
なお「.MainActivity」はプライマリアクティビティの名前です
なお「com.example.sample.firetv01」はアプリのパッケージ名です
※C:\Users\shim1\AndroidStudioProjects\FireTV01\app\src\main\java\com\example\firetv01⇒com.example.firetv01/.MainActivity
adb shell am start -n com.example.sample.firetv01/.MainActivity ##今回の実際のパッケージ名
adbコマンドで実機を見つける
AndroidStudioで、FireTVStickの実機が見つからない場合、「adb」コマンドで調査します。
参考URL:ADBを使用してFire TVに接続する方法
https://developer.amazon.com/ja/docs/fire-tv/connecting-adb-to-device.html
○カレントディレクトリを変更する(adbコマンドインストール配下)
以下のディレクトリに「adb」コマンドがインストールされています。
cd C:\Users\shim1\AppData\Local\Android\Sdk\platform-tools
○テレビのIPアドレスを確認する
テレビに接続するために、テレビのIPアドレスが必要です。
IP=192.168.0.153
○adbコマンドの「connect」でテレビに接続します
adb connect 192.168.0.153 failed to authenticate to 192.168.0.153:5555
○adbコマンドでエラー原因を調べる:unauthorized
エラーの原因は、テレビ側で「USBデバッグ」が許可されていないためのようです。
adb devices List of devices attached 192.168.0.153:5555 unauthorized
○USBデバッグを許可しますか?に「OK」で答える
adb connect時にテレビ画面に表示されたメッセージです
connect時にテレビ画面に表示されたメッセージです
ここで「OK」を選択すれば、「autholized(device)」になるようです。
○「unauthlized」エラーの要因調査
今回のエラーは以下が要因ではありませんでした・・・。
del C:\Users\shim1\.android\adbkey del C:\Users\shim1\.android\adbkey.pub
○エラーの要因を取り除いて、再度adbコマンド実行する
adb kill-server adb start-server adb connect 192.168.0.153 adb devices List of devices attached 192.168.0.153:5555 device
初回は「192.168.0.153:5555 unautholized」
最終的には「192.168.0.153:5555 device」
○AndroidStudioのデバイスウィンドウに、FireTVStickが表示されました
デバイス名:Amazon AFTSSS です。
FireTVStickの名前を変更したい
最初、少々驚きました、何かの拍子に、接続するデバイスの選択画面が表示されたのですが、
その時、同じマンションの2階の方のFireTVStickが表示されたのです:「XYZさんのFireTVStick」
これでは、周囲から丸見えということでしょうか!?
※まあ、同一ネットワークではないので、誤って2階の方のTVに表示してしますということはないと思いますが・・・。
そこで、FireTVStick名を変更しようと、テレビの「設定」画面を見たのですが、なかなか見当たりませんでした。
検索して以下のサイトを見つけました:
Fire TV Stick のデバイス名(端末情報)を好きな名称に変更する方法
https://tanweb.net/2021/06/24/41214/
階層が深くて、知らないととても見つけることができません。
以下、FireTVStickの名前の変更方法を記します:
アマゾンにログインして、「アカウント&リスト」「アプリライブラリとデバイスの管理」~
まあ、何と長い手順なこと・・・・、迷子になりそうです・・・。
著者:志村佳昭(株式会社トリニタス 技術顧問)