このページの本文へ

車とスマホがつながるSDLの世界 第4回

Ubuntu 14.04.5を用意すべし!

SDL対応アプリ開発環境の構築その1~車載機エミュレーターを作成する

2018年12月13日 11時00分更新

文● 柴田文彦 編集●村山剛史/アスキー編集部

提供: SDLコンソーシアム

  • この記事をはてなブックマークに追加
  • 本文印刷

Dockerを使って簡便にSDL Coreを動かそう

 まずは、SDL Coreを動かす方法のうちの簡便なほう、つまりDockerを使ってSDL Coreのバイナリをロードして動かす方法について見ていこう。

 Dockerは、すでに述べたように、一種の仮想化ソフトウェアで、簡単に言えば、1つのアプリケーションを色々なプラットフォーム上で動作させることを目的とするもの。

 今回Dockerを利用するメリットは、MacやWindows PC上で、元はLinux上で動作するように作られたSDL Coreを動かせるようになることだ。iOSやAndroidのアプリ開発には、macOSやWindowsが不可欠だから、それらの上でSDL Coreを動かすことができれば、SDLアプリの開発用のマシンとOSを、1種類で済ますことも可能となる。

1. Docker本体(アプリ)をダウンロードしてインストール

 まずは、DockerをMacまたはWindows上にインストールするところから始めよう。Dockerには、いろいろなバージョンがあるが、今回の目的には無料で使えるDocker CE(Community Edition)で十分だ(図3)。

図3 Dockerには有償のものから無償のものまでさまざまなエディションがあるが、ここでは無料で使えるCE版で用が足りる

 インストーラーをダウンロードするにはメールアドレスを登録する必要があるが、特になんの義務も生じないようなので、安心して利用できる。抵抗がある人は、後で述べるような、もう1つの正攻法を使えばいい。

 Dockerを利用する場合には、メールアドレスを登録後に、Docker Storeにログインしてから、自分の使用するプラットフォーム用のものをダウンロードしてインストールしよう。今後の手順はmacOSの画面で説明するが、基本的にはWindowsでも同様だ。Windowsの場合は、Windows 10 Proが必要となる。

 Dockerは一般のアプリと同様に起動するが、いわゆる常駐プログラムのように、macOSならメニューバー、Windowsならタスクトレイの中で動作する。デフォルトでは、OSの起動時に自動的に開始されるようになっているので、特に操作は不要だ(図4)。

図4 DockerはデフォルトではOSとともに自動的に起動し、macOS上ではメニューバー、Windowsではタスクトレイの中で動作する


2. dockerコマンドを使って、SDL Coreをダウンロードして起動

 Dockerをインストールすると、macOSのターミナル、あるいはWindowsのコマンドプロンプトから起動できるコマンドも使えるようになる。今回は、このコマンドを使ってSDL Coreのバイナリをロードして、そのまま起動する。具体的には、以下のコマンドを入力すればいい。

$ docker run -d -p 12345:12345 -p 8087:8087 -p 3001:3001 --name core smartdevicelink/core:latest

 このコマンドの前半で、-pオプションを使って指定しているのは、SDL Coreが外部とやりとするためのポート番号だ。見慣れない数字だが、すべてこの通りに入力しよう。

 このコマンドにより、Docker内部のcoreという名前のプロセスとして、SDL Coreが起動する。うまく動いているか確認するには、次のようなコマンドをタイプしてみるといいだろう。

$ docker ps

 これで、「core」という名前のDockerプロセスが動いていることが確認できる(図5)。

図5 Dockerを使って起動した目的のプログラムが動作しているかどうかを確認するには、Docker独自のPSコマンドを使えばいい

 なお、いったん開発用のマシンをシャットダウンした後などに、再びSDL Coreを起動する場合には、毎回上のコマンドをタイプするのではなく、すでにDockerに登録されたcoreという名前を指定して、以下のようにタイプすればいい。

$ docker restart core

 これにより、非常に短時間でSDL Coreを起動できる。

 Windows環境でDockerを利用して車載機エミュレーターを実現する場合には、Windows Defenderやサードパーティのファイアウォールを適宜無効にしておく必要がある。これは忘れずに対処しないと、IPアドレスやポート番号が合っていても、まったく通信できなくて悩むことになる。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン