Additionally, even the interpreter loop which reads and executes Java
bytecode and is one of the hot spots of the VM execution can be heavily
optimized by implementing the loop in ARM code. For example, the
CLDC-HI HotSpot interpreter loop is made of highly optimized ARM
code that is auto-generated by the JIT module at product build time.
Naturally, run-time speed optimization comes at the cost of use of
memory. The compiled ARM code is bigger in size than the lightweight
Java bytecode and occupies more space. However, Symbian OS devices
come with sufficient memory to allow this overhead in favor of having an
optimized run-time speed.
We previously discussed how IPC and JES are used in the Java ME
subsystem. This is an area which involves threads and process-context
switching done by the Symbian OS kernel. To minimize the overhead,
each operation that involves context switching strives to be coherent
but also to pass additional information if that can save another con-
text switch later on. Therefore, OEM engineers who work inside the
Java ME subsystem should design those switches to be as efficient as
Other performance considerations are always considered on a case-
by-case basis for each newly developed JSR. In the case of the UI, this
is a mission-critical operation which is carefully considered. The LDCUI
support was handcrafted to ensure maximal performance and other JSRs
(e.g., JSR-184 3D and JSR-226 SVG) can also take advantage of any
graphics hardware acceleration present on the device.
Ensuring security on mobiles is one of the highest priority items in every
design checklist. In the Java ME subsystem, security is divided into two
key areas: the MIDP security model and the Symbian OS security model.
Please note that there is no direct relation between the two. The MIDP
security model is completely orthogonal to the Symbian OS Platform
Security model. Both the SystemAMS and the Java ME run-time environ-
ment are subject to platform security and must be assigned with platform
security capabilities in order to allow their internal logic execution or to
allow JSR implementations to integrate with sensitive native operations.
Allowing Java applications to access restricted Java operations is based
on Java security. MIDP Security is an internal module in the Java ME sub-
system and handling of all Java restricted operations is done separately,
with no relation to platform security.
The MIDP implementation does not implement a default security
policy. It provides a customizable security framework which requires a
number of modules to be provided by the device manufacturer, which
together define the actual security policy. Symbian OS licensees and