このページの本文へ

前へ 1 2 3 4 5 6 次へ

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

メニュー画面を表示してみよう

SDL対応アプリ開発環境の構築その3~Android版のSDLのAPIを使いこなす

2019年01月12日 11時00分更新

文● 柴田文彦 編集●アスキー編集部

提供: トヨタ自動車株式会社

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

エミュレーター上に出してみたメニュー画面

SDLのAPIを探訪するための基本方針

 SDL対応アプリ開発環境の構築と、アプリ開発手法を解説するこの連載では、これまで第1回でSDLの車載器エミュレーターの構築方法を解説し、第2回ではGitHubで公開されているAndroidおよびiOS対応のサンプルプロジェクトを入手してそのままビルドし、車載器エミュレーター上でアプリを動作させるための手順を取り上げた。

 残りの2回では、SDLが用意するAPIを利用して、実際のアプリを作っていく方法を解説する。第3回の今回は、Android用のアプリのプロジェクトを、次回の第4回ではiOSのプロジェクトをそれぞれ取り上げる。

 その際には、何らかの実用的なアプリを短時間で作成するのにも無理があるので、どのようなアプリにも間違いなく必要となる領域に話題を絞ることにする。特に、アプリと車載器との情報のやり取りの部分、つまり車載機上にアプリ独自のユーザーインターフェースを構成し、その操作にアプリ側で応答するために必要な処理を中心に解説する。

 車の中というやや特殊な環境でも動作する、というより、車の中だからこそ、十二分に機能を発揮できるアプリのアイディアを、SDL対応アプリとして具体化するための、最初のステップとなる部分だ。

 今回のAndroidアプリのプロジェクトは、前回も利用したSDLのサンプルプロジェクトをベースにする。そこに手を加えることで、ユーザーインターフェースを充実させていく、という方針を取ることにした。Androidのサンプルプロジェクトに含まれるコードは、必要最小限に近いものだからだ。たとえば、車載機のディスプレイ上には、ユーザーが操作できるボタンが1つも配置されていない。それだけに、実際のアプリのベースとなるプロジェクトとして利用しやすい。

 次回の話になるが、iOSについては、標準的な白紙のiOSアプリプロジェクトに、SDLのSDKを追加し、コードを書き加えていく手法を取る。というのも、サンプルプロジェクトの内容が比較的充実しているだけに、ベースのプロジェクトとしては、やや利用しにくいからだ。

 今回作成するAndroidアプリでは、まずユーザーインターフェースの基礎となる車載機側のテンプレートの選択から始めて、テキストメッセージの表示、ソフトボタンの配置、ボタン操作に対して車載機のディスプレイにアラートを表示、サブメニューを含むメニューの追加といった基本的な機能を実現していく。以下に順を追って具体的な手順を詳しく解説しよう。

Androidアプリのサンプルプロジェクトの構成を確認

 すでに述べた通り、Androidアプリについては、SDLのサンプルプロジェクトをベースとして話を始める。もし、Android Studioの標準的なプロジェクトから始める必要がある場合には、SDLのサイトにある公式ドキュメントの中の「Instration」に、プロジェクトの「build.gradle」ファイルを編集してディペンデンシを追加する方法が、また「Integration Basics」には、システムのパーミッションの設定や、Android Oreo以降で必要な、サービスをフォアグラウンドで走らせるための方法などが述べられている。必要に応じて参照していただきたい。

 サンプルプロジェクトを利用すれば、それらの設定はあらかじめ組み込まれているので、ここでは、それらはすでに済んでいるものとして話を進める。

 前回は、とにかく動かしてみることに重点を置いていたので、サンプルプロジェクトの中身についてはほとんど触れなかった。ここでプロジェクトに含まれるJavaソースファイルレベルで、プロジェクトの構成を確認していこう。Androidアプリとして最小限必要なMainActivity.javaに加えて、サンプルプロジェクトには名前が「Sdl」で始まる3つのSDL関連のソースファイルが加えられている(図1)。

図1:SDLがGitHubに公開しているAndroidアプリのサンプルプロジェクトのJavaソースファイル構成。このうち、SdlService.javaを編集していく

 このうち最も重要なのは「SdlService.java」だ。今回実際に書き加えていくプログラムは、すべてこのファイルの中に記述することになる。このファイル名が示す「SDLサービス」という語は、これまでのSDLの解説にも登場しなかった聞き慣れない名前だろう。それもそのはず、その中の「サービス」という部分は、SDLとは何の関係もなく、Androidアプリの中のプログラムの実行形態としての「サービス」だからだ。このサービスの中では、SDLのSDKの中核を担う「SdlManager」クラスを実装し、SDL対応アプリとSDL車載機が連携して動作するための機能を実現する。

 それ以外のSDL関連のソースファイル「SdlReceiver.java」と「SdlRouterService.java」については、説明を割愛する。と言っても、このサンプルプロジェクトに含まれる両ソースコードは、ほとんどプレースホルダーのようなもので、アプリ独自の実装は何も含んでいない。

前へ 1 2 3 4 5 6 次へ

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,980
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,100
7
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥1,880
8
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,899
9
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
10
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

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