Apogee’s Android/Java Runtime Environments (AJREs) are suitable for high-end wireless communication devices and a wide range of “connected” devices, such as the smartphones, home gateways, Telematics devices, set-top boxes, etc., that need to run, on the same device, both Android1
and Java SE applications. AJRE completely replaces Android's Dalvik VM and core Java library with IBM's J9 VM and Harmony Class Library, while leaving all other Android's components intact.
Apogee also provides a CJRE for Android
that is able to execute both Java and Android application on the same device without replacing Dalvik VM.
Each AJRE includes the target-specific ports of the following components:
- IBM's J9 Virtual Machine (J9VM), compatible with Sun's latest Java ME CDC VM 1.1.2 (JSR-218).
- J9VM completely replaces Android’s Dalvik VM.
- IBM's Just-in-Time (JIT) compiler, integrated with the port of J9VM.
- Harmony Class Library (HCL) from Apache Foundation, integrated with the port of J9VM.
- Harmony completely replaces Android's core library (which is actually a subset of Harmony)
- Android’s native libraries
- Android's application framework
- Android’s applications
|Java SE 5/6 & Android applications
|Harmony Class Library
|IBM's J9 Java VM, GC, JIT
|Native Libraries (libc/SSL/WebKit)
Each AJRE can effectively execute:
- multi-threaded Android and Java applications on multi-core processors.
- Java applications that use advanced graphics created with Java SE AWT or Swing.
- Java applications that use dynamically loaded components (e.g. OSGi bundles).
Each AJRE can effectively support:
- debugging of Android and Java applications using JVMDI/JVMTI.
- profiling of Android and Java applications using JVMPI/JVMTI.
- dynamic dumping of Java heap (or portions of Java heap).
- tracing of Java heap allocations, garbage collection activities, and executions of threads.
- Running of Android applications requires obtaining their binaries in a .jar format or using 'dex2jar' tool to convert them to their respective .jar files.