Java ME Subsystem Architecture
The final two chapters of this topic give you an insight into how things
work under the hood of the Java ME platform. If you ever wondered what
makes the virtual machine (VM) tick and click or how the Application
Management System (AMS), profile, configuration and VM are built and
how they interact, then the next two chapters give you a glimpse into the
fascinating implementation of Java technology on Symbian OS.
This chapter gives an overview of the implementation architecture, and
the interaction and roles of the various entities that comprise the Java ME
platform, as a Symbian OS subsystem. 1 The next chapter deals exclusively
with how the Symbian OS Java ME subsystem acts as an abstraction layer
for Java applications to make them use the same API calls as native
Symbian OS applications. These two chapters are also highly valuable
for engineers who work in systems development and integration.
There are a few widespread misconceptions about the Java ME subsys-
tem architecture that will be shattered after reading this chapter. When
you have finished, you will easily spot the four mistakes in a sentence
such as 'The KVM aborted the MIDlet installation'.
10.1 Java Applications and Symbian OS
From the point of view of the Symbian OS architecture, the Java ME
subsystem is a replaceable component that Symbian OS licensees can
extend, customize or replace altogether. Additionally, the Java ME sub-
system, as a whole, is a native application just like any other standard
native application (although it is a very large application) that is shipped
with the device, burnt on the ROM.
So the Java ME subsystem is a native application that accesses operating
system resources generally through the same publicly available APIs as
1 The Java ME subsystem sources are under
\ src \ common \ generic \ j2me in the
Symbian OS source repository.