Screen subclasses handle rendering, interaction, traversal, and scrolling,
with only higher-level events being passed on to the application and very
little control over look and feel. The actual drawing to the display is
performed internally by the Java ME implementation and the MIDP
application cannot define the visual appearance. User interaction, such
as navigation or scrolling, and other operations are also handled inter-
nally by the Java ME implementation. When using the high-level API,
it is assumed that the underlying implementation does the necessary
adaptation to the device's hardware and native UI style.
The low-level API classes ( Canvas and Graphics ) provide very
little abstraction but allow the application to control precise placement of
graphic elements, as well as access to low-level input events. Applications
that program to the low-level API are not guaranteed to be portable,
since the precise control means accessing details that are specific to a
The Symbian OS architecture provides highly powerful UI and graphics
capabilities which are encapsulated in two major Symbian OS subsys-
tems: the Graphics subsystem and the Application Framework (APPARC)
The Graphics subsystem governs the functionality for drawing to the
screen, embedding picture objects, and font and bitmap handling. The
subsystem also contains two other sets of APIs: the Window Server Client-
Side API, which provides functionality to draw to windows and receive
window events, and the animation APIs, which allow animations to be
run in a high-priority system thread.
The APPARC subsystem includes, as the name implies, the frameworks
that define the application structure and their basic user interface han-
dling. 'Application' here has a slightly more focused meaning than just
a software program: it implies a program with a user interface, rather
than a UI-less program (e.g., a background process doing a system task).
APPARC also includes reusable frameworks for handling UI controls, text
layout and non-keyboard input mechanisms.
It was clear from the beginning of Java ME on Symbian OS that LCDUI
widgets must be mapped to native controls and rendering must use the
Graphics subsystem frameworks. In addition, the tight integration with
the Graphics subsystem and APPARC had to take into consideration the
mandatory requirement for customization by Symbian licensees.
The LCDUI integration with Graphics and APPARC can basically be
characterized into two functionality areas: common functionality inside a