Введение

Java TV – это программный фреймворк на основе Java, предназначенный для использования на телевизионных приставках и основанный на компонентах, называемых Xlets. В настоящее время он используется исключительно в конфигурации Connected Device Configuration, в частности для разработки приложений iTV. API включает классы Xlet в пакете javax.tv.xlet. Другие пакеты публичного API включают:
javax.tv.graphics – предоставляет простое графическое полотно для рендеринга;
javax.tv.locator – предоставляет локатор в стиле URL для доступа к сервисам и медиа, например, service:/SERV1;
javax.tv.service – определяет механизм для баз данных сервисной информации (SI) и API, представляющих элементы SI, такие как телевизионные каналы и медиа, доступные для воспроизведения.

Критика

Хотя фреймворк является общим, Sun в настоящее время предоставляет поддержку только для Java ME. Для некоторых областей, таких как медиалокаторы, он фактически устарел и заменен другими стандартами локаторов на платформах, таких как BD J. Источником путаницы является то, что на платформах, поддерживаемых с 2008 года, примеры, такие как SvcDispXlet из введения к API, написанный примерно в 2001 году, не могут быть развернуты, поскольку он использует виджеты AWT, такие как `java.awt.Button`. Большинство платформ iTV, вместе с BD J, реализуют Personal Basis Profile без виджетов AWT, в отличие от Personal Profile, который их включает. Референтная реализация Sun для Java TV стремится ограничить свою подверженность проблемам поддержки, используя собственную небольшую версию JMF, внутренне называемую "jmflite", в рамках полной Java Media Framework. Как и в случае с ограничениями эмуляторов MIDP, предоставляемых Sun, референтная реализация Java TV от Sun не была обновлена для поддержки более поздних версий JDK, например, для удаления вызовов `Thread.stop()`. Метод `Thread.stop()` был объявлен "final" в Java 1.5 (что означает, что классы, расширяющие `Thread` и переопределяющие `stop()`, будут выдавать ошибку во время выполнения в JRE 1.5 при загрузке класса). Это указывает на то, что Sun пока не взяла на себя публичных обязательств или не разработала дорожную карту для развития Java ME за пределы JRE 1.3. Если бы такое обновление произошло, это потребовало бы значительных усилий со стороны всех производителей устройств с поддержкой Java ME.