Smart Device Link用の開発メモです。
日本語の情報がほぼ皆無だったので、忘れないよう記事にしていきます。
今回は、オフィシャルのサンプルコードをエミュレータ環境で動かすところをまでを目標としています。
Smart Device Linkとは?
すでに説明されている記事があったので詳しくは以下のページをご覧ください。
https://qiita.com/nishiokya/items/faccf4a0da217504eda6
実行環境
オフィシャルのエミュレータと、先日発売されたばかりの実機環境があります。
エミュレータ
オフィシャルのManticoreと、Docker用コンテナ環境があります。
どちらもTcpを利用した接続になります。
今回は、このエミュレータ環境で動作確認を行います。
SDLアプリ開発キット「SDL DEVELOPMENT TOOLS」
現在発売されている実機環境になります。
ターゲットは、Androidのみ動作するようです。
接続は、USBのみで、Wi-Fi、Bluetoothには対応していません。
サンプルコードを動かす
早速サンプルプログラムを動かしていきたいと思います。
サンプルコードやドキュメントは、以下のリンクをご参考ください。
ここからの説明は全て、上記のサンプルが対象となっています。
エミュレータで動くように設定する
今回はTcpでの接続を行うため、Tcp用の設定を行います。
Build Variantの設定
接続先の設定
接続先のIPアドレス、およびポート番号を設定します。
*接続情報については別途記載します。
private static final int TCP_PORT = 12345;
private static final String DEV_MACHINE_IP_ADDRESS = "エミュレータのIP";
とりあえずここまでくれば準備完了です。
SDLのエミュレーターと接続する
さきほど準備したサンプルコードを動かすためのエミュレータを準備します。
Manticoreを使ってみる。
オフィシャルで用意されているエミュレータです。
一番手軽に利用できますが、すべてのユーザと共用しているため、タイミング次第では使えなかったりします。
*ネットワーク環境は必須になりますが、個人的にはこれがおすすめです。
補足:Manticoreを使用するには、SmartDeviceLinkeサイトへのSIGN INが必要です
Manticore
https://www.smartdevicelink.com/resources/manticore/
使い方
**[LAUNCH MANTICORE]**ボタンをクリックします。
順番待ちが発生しても、しばらく待てば利用可能になります。
*以下の場合は、1名分待っている状態です。
利用可能な状態になると、URLと、PortNumberが表示されます。
また、左上のボタンを押すと全画面で表示されます。
サーバー情報を登録する
Manticoreのサーバー情報をサンプルコードに反映します。
TCP_PORT
にPortNumber
DEV_MACHINE_IP_ADDRESS
にURL
を設定してください。
今回の場合、以下のようになります。
private static final int TCP_PORT = 17680;
private static final String DEV_MACHINE_IP_ADDRESS = "m.sdl.tools";
実行してみる
アプリを実行するとシンプルな画面が表示されます。
接続ができた場合は、**「Connected through SDL」**という通知が表示されます。
アプリ接続後、Manticoreも自動で画面が変わり、アプリアイコンが表示されます。
Dockerのエミュレータ環境を使ってみる
ひさやんが、Docker環境用のSDLエミュレーターを公開されています。
*12/08時点の最新の環境のようです
コンテナの作成
以下のコマンドを使用して、コンテナを作成します。
$ docker run -d -p 12345:12345 -p 8080:8080 -p 8087:8087 -p 3001:3001 --name sdl5 hisayan/sdl_core_docker:5.0.0
エミュレータの起動
コンテナを起動したら、以下のURLにアクセスします。
http://localhost:8080/
**[OK]**ボタン(見えにくいですが・・)をクリックするとメイン画面が表示されます。
アプリ接続の許可設定
アプリと接続するために、接続の許可を行います。
真ん中下の**[⚙]**マークを選択し、
**[Allow SDL Functionally]**メニューをクリックします。
[All devices Not Allowed]をクリックし、
**[All devices Allowed]**に変更します。
これで準備は完成です。
サーバー情報を登録する
サーバー情報をサンプルコードに反映します。
TCP_PORT
に12345
DEV_MACHINE_IP_ADDRESS
にDocker実行環境のIPアドレス
を設定してください。
私の環境の場合、以下のようになります。
private static final int TCP_PORT = 12345;
private static final String DEV_MACHINE_IP_ADDRESS = "192.168.0.7";
実行してみる
中央下の**[ i ]アイコンをクリックします。
接続されている場合は、[Apps]**に、アプリ名が表示されます。
*今回は、[Hello Sdl]です
これでサンプルの実行は完了です。
最後に
次回はもう少しプログラム内の説明をしていきたいなと思っています。
あと現在アプリコンテストが実施されています。
せっかくなのでこれを目標にいろいろやっていきます!
クルマとスマホがつながるSDLアプリコンテスト