Xlet очень похож на Java-апплет и изначально был представлен в спецификации Java TV компании Sun Microsystems для поддержки приложений для цифрового телевидения . Хотя Xlet внешне отличается от других моделей приложений в Java, таких как applet и MIDlet , на самом деле он призван быть обобщением таких моделей. X в Xlet означает неизвестный, то есть фреймворк Xlet может использоваться в любом контексте, а не только для цифрового телевидения. Соответственно, Xlet был позже повторно представлен как часть профиля Personal Basis в пакете, который немного отличается от первоначального дизайна в спецификации Java TV.javax.microedition.xlet
Предоставление Xlet функции паузы/возобновления имеет важное значение для среды телевизионной приставки (STB), которая имеет ограниченные ресурсы памяти и ограничения по полосе пропускания от провайдера головной станции . Текущая практика и цель фреймворка Xlet заключается в предоставлении загружаемых приложений для платформ Personal Basis Profile (PBP). В частности, платформа BD-J использует Xlets в качестве своего фреймворка программирования. [1]
Хотя Sun предоставила эталонную реализацию Java TV, в рамках которой они предоставляют простой Xlet-раннер под названием RunXlet, была предпринята по крайней мере еще одна попытка реализовать Xlet-раннер с открытым исходным кодом. [2]
Интерфейс для Xlet определен в javax.tv.xlet
пакете:
public interface Xlet { public void initXlet ( XletContext ctx ) выдает исключение XletStateChangeException ; public void startXlet () выдает исключение XletStateChangeException ; public void pauseXlet (); public void destroyXlet ( boolean unconditional ) выдает исключение XletStateChangeException ; }
Таким образом, примером заглушки Xlet является
импорт javax.tv.xlet.XletStateChangeException ; импорт javax.tv.xlet.XletContext ; импорт javax.tv.xlet.Xlet ; public class BasicXlet implements Xlet { public BasicXlet () {} public void initXlet ( контекст XletContext ) выдает XletStateChangeException {} public void startXlet () выдает XletStateChangeException {} public void pauseXlet () {} public void destroyXlet ( логическое безусловное ) выдает XletStateChangeException {} }