Integration of Java ME and Native APIs
In Chapter 10, we discussed the architecture of the Java ME subsystem on
Symbian OS - the subsystem binaries, the Java Application Management
System (AMS), the CLDC-HI virtual machine (VM), interaction between
the VM and AMS and the integration with Symbian OS architecture,
platform security and Symbian C++ programming idioms.
Now that the monolithic and so-very-abstract entity of the Java ME
subsystem on Symbian OS has been broken into smaller and more
concrete entities, and the interaction between them has been explained,
a question that should be asked is - when an application invokes a given
Java API method, does it go outside the Java ME subsystem into the native
Symbian OS services? Or is it handled internally and independently, in
the Java ME subsystem only? In more technical terms, how do Java ME
APIs map to the native Symbian OS APIs?
For example, given a Java ME API, such as JSR-135 Mobile Media
API (MMAPI), is the multimedia content played by the Java ME subsys-
tem itself? Or does it use the native multimedia subsystem and delegate
the playing and recording of content to the native Multimedia Frame-
work (MMF)? Another example is the Generic Connection Framework
(GCF) - does the Java ME subsystem have its own HTTP implementation?
Or does it use the native Symbian OS Application Protocols subsystem,
which contains components for using the HTTP protocol, and associated
utilities? Assuming that the Java ME subsystem makes use of the native
services - how does the Java ME subsystem integrate with the native
Symbian OS Multimedia Framework or with the Application Protocols
But even more important is the following question - if there is inte-
gration, why is it needed and what purpose does it serve? All those
challenging questions bring us to the topic of this chapter, which explores
the options, considerations and decisions in regards to Java ME JSR
integration with native Symbian OS services.