Xlet
En Xlet är mycket lik en Java-applet och introducerades ursprungligen i Sun Microsystems Java TV- specifikation för att stödja applikationer för digital-TV . Även om Xlet ser ytligt annorlunda ut från andra applikationsmodeller i Java, som applet och MIDlet , är det faktiskt tänkt att vara en generalisering av sådana modeller. Xet i Xlet betyder ett okänt, vilket betyder att Xlet-ramverket kan användas i alla sammanhang snarare än specifikt för digital-TV . Följaktligen återintroducerades Xlet senare som en del av Personal Basis-profilen i javax.microedition.xlet
-paketet, som skiljer sig något från den ursprungliga designen i Java TV-specifikationen.
Xlet-tillhandahållandet av en paus/återuppta-funktion är väsentlig för en set-top box -miljö (STB), som har begränsade minnesresurser och begränsningar av bandbredd från head-end- leverantören. Den nuvarande praxisen och avsikten med Xlet-ramverket är att tillhandahålla nedladdningsbara applikationer för PBP-plattformar ( Personal Basis Profile) . I synnerhet använder BD-J -plattformen Xlets som sitt programmeringsramverk.
Medan Sun har tillhandahållit en Java TV- referensimplementering inom vilken de tillhandahåller en enkel Xlet-runner kallad RunXlet, har minst en annan öppen källkodsförsök gjorts för att implementera en Xlet-körning.
Kodexempel
Gränssnittet för en Xlet definieras i javax.tv.xlet
-paketet:
public interface Xlet { public void initXlet ( XletContext ctx ) kastar XletStateChangeException ; public void startXlet () kastar XletStateChangeException ; public void pauseXlet (); public void destroyXlet ( boolesk ovillkorlig ) kastar XletStateChangeException ; }
alltså ett exempel på en stubb Xlet är
importera javax.tv.xlet.XletStateChangeException ; importera javax.tv.xlet.XletContext ; importera javax.tv.xlet.Xlet ; public class BasicXlet implementerar Xlet { public BasicXlet () {} public void initXlet ( XletContext context ) throws XletStateChangeException {} public void startXlet () throws XletStateChangeException {} public void pauseXlet () {} public void destroyXlet ( boolean unconditional ) throws XletException {} public void }