Android TV on HiKey

Android TV is a smart TV platform that can be built for both TVs and stand alone media players and set top boxes.

The goal of this project at Linaro is to evaluate Android TV components from AOSP on 96boards.org's TV platform. Hikey is not a preferred platform for TV, there are few dedicated hardware platforms from 96boards.org designed specifically for TV like Poplar. As Hikey gives a stable AOSP Android baseline we started our development efforts on Hikey. We will migrate or port all our implementation on Hikey to 96boards TV platform in coming months.

Development Summary

The steps we followed to build Android for TV on Hikey is described below :

Setting Android for TV on Hikey

The key differentiator in Android for TVs is the TV input framework subsystem developed by google. By default the Hikey sources are built for mobile so we have to enable few flags in .mk files to make the Android built for TV platform. This has been achieved with few additions to device.mk and hikey.mk files.

* In device.mk PRODUCT_CHARACTERISTICS := tv has bee added.

* In hikey.mk following line is added $(call inherit-product, device/google/atv/products/atv_base.mk)

This enables Android TV for Hikey platform.

Integrating LiveTV app

Live Channels app is for watching Live TV. This is a free app to watch your favorite news, sports, movies and TV shows from various channel sources such as built-in tuner, IP-based tuners, and more and show them instantly on your Android TV.

Google provides the sources for reference Live TV app, https://source.android.com/devices/tv/reference-tv-app.html. This app is essential to list the TV channels and select the channel. The Live TV app works with TV input framework. The TV application is a component of the TV Input Framework (TIF) and cannot be used independently of the other components.

This application is built separately and integrated into Android filesystem on Hikey.

Integrating Sample Android TV Channel app

Sample Android TV Channel App (TV Input) using TIF. This opensource app is designed to show how to build live TV channel apps for Android TV using the TV Input Framework (TIF). The sample is a service that once installed, is recognized and run by the default TV app (e.g. Live Channels app).

The sources and instructions to build this app and it's dependencies are provided here : https://github.com/googlesamples/androidtv-sample-inputs

Integrating other dependencies

ExoPlayer supports features not currently provided by MediaPlayer, including Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common Encryption.

ExoPlayer with HLS support: http://developer.android.com/guide/topics/media/exoplayer.html

This app is downloaded separately and built.

Evaluating

After preparing the filesystem images and flashing them all on Hikey. We connect Hikey over WiFi to the network. The Live TV app is launched, this app will search for available input channels. Since we also have included the Sample Android TV input channels app, it acts as a service and simulates few channels from network. These can be selected using USB mouse or USB keyboard connected to Hikey.

Instructions to Build and Evaluate Android TV on HiKey

Instructions to download the sources, building the components and preparing the filesystem images are populate on separate page, here :

https://wiki.linaro.org/LHG/Build-AndroidTV-For-Hikey

Planned tasks

Our next goal is to

* Get OP-TEE secure media playback working along with Android TV

* Implement a sample TV input service app that works with actual hardware input devices like Antenna, HDMI input, Video In etc. using USB antenna or USB video-in on Hikey.

LHG/AndroidTVONHikey (last modified 2017-01-17 13:06:02)