4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DelphiAdvent Calendar 2016

Day 1

Delphi で Android TV 開発 ~導入編~

Last updated at Posted at 2016-11-30

これは Delphi Advent Calendar 1日目の記事です。

Android TV プロローグ

先日テレビを買いました!

TV 名前は Bravia X9350D
ごく普通の僕は、ごく普通にお金を払い、ごく普通に購入しました
でもただひとつ違っていたのは、このテレビは AndroidTV だったのです!

ということで、Delphi で Android TV アプリを作る方法を紹介します。
(とはいえ、すごく普通の事です…)

#Android TV とは
Android 5.0 をベースにした TV 用の OS です。
TV とは別の世界に Android TV があるわけではなく、Android TV の上に全ての機能が実装されています。

開発したのは Google ですが、開発パートナーとして Sony がテレビ部分に関してアドバイスをしたとのこと…

また、SoC については台湾 MediaTek が Google と共同で開発したそうです。

MediaTek、Android TV向けSoCとAndroid Wear向けSoCを発表

##メリット

  • Google Play からアプリをダウンロードして使える
    これが最大にして唯一のメリットです。
    開発者目線でいえば、Android 開発のノウハウが使えるので、それは大きなメリットです。
    ただし、Android そのままではありません。
    違いについては後述します。

##デメリット

  • 落ちる
    Android なので普通に落ちます。むしろ落ちまくりです。
    テレビを観る事すら、ままなりません!
  • 寿命
    Android ベースの OS なので常にバージョンアップしていく必要があります(セキュリティとかの問題で)。
    しかし、実際問題、大体2~3年前の端末は切り捨てられていきます。
    つまり、今までのテレビのように何年も何十年も使えるわけではありません!

##Android との違い
TV 用のため、いくつか変更されています。

###アプリに審査がある
リビングに置かれるという性質からか、Android TV 用のアプリは審査があります。
審査を通らないと Google Play に公開できません。

###ハードウェアが違う
テレビなので基本的にタッチパネルではないため直接的に UI を操作できず、操作はもっぱらリモコンのクリックになります。
そのため、UI のイベントは OnTouch ではなく OnClick に反応する様にします。
また、カメラやセンサーなどのテレビとして必要の無い機能もありません。
これらに留意して UI を構築しなければなりません。

###暗黙的 Intent があまり使えない
テレビなので基本的にテレビに要らない機能がありません。
たとえば、メーラーやブラウザがありません(※ただし Bravia には Opera が載っています)。
なので、Intent を使った呼び出しが失敗しうる事を考えながらコードを組まなければなりません。

#Android TV の開発
##開発者モード
Android TV のアプリを開発するにあたって、通常の Android と同じように開発者向けオプションを有効にせねばなりません。
これは非常に普通な手順です。

qiita1.png

##IPの取得
テレビとの接続には WiFi や有線 LAN を使うので IP を調べます。

qiita2.png

##接続
ここまで準備ができたら adb を使って AndroidTV に接続します。
次のように adb connect を使います。

; xxx.xxx.xxx.xxx は TVIP
adb connect xxx.xxx.xxx.xxx:5555

ポート番号 5555 は adb のデフォルトのポート番号です。

これで接続に成功するとあとは通常の adb に対する操作がすべて利用可能になります。
たとえば adb logcat なども普通に動作します。

#Delphi で開発

adb over WiFi で Android TV に繋がったら Delphi を起動してみます。
すると!
プロジェクトマネージャに、Android TV のデバイスが表示されているはずです。

qiita3.png

あとは、いつも通りプロジェクトをビルドして実行すると…

qiita4.png

無事動作しました!!!

ということで、導入編はここまで!!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?