Fact-checked by Grok 2 weeks ago

Java Platform, Micro Edition

Java Platform, Micro Edition (Java ME) is a set of Java virtual machines and designed to support the development and deployment of applications on resource-constrained devices, including mobile phones, personal digital assistants (PDAs), systems, and (IoT) devices such as sensors and gateways. Originally introduced by in June 1999 as Java 2 Platform, Micro Edition (J2ME) to address the needs of and markets, it was later renamed Java ME around 2006 to align with the simplified naming conventions adopted for other Java editions. The platform has been maintained by since its acquisition of Sun in 2010 and remains deployed on over three billion devices worldwide, particularly in mobile and applications. The architecture of Java ME is modular, consisting of a (JVM) tailored for limited resources, core Java libraries, configurations that define the minimal runtime environment for device families, and profiles that provide device- or industry-specific . Configurations include the Connected Limited Device Configuration (CLDC), optimized for low-memory mobile devices with 160–512 KB of total memory and intermittent connectivity, and the Connected Device Configuration (CDC), suited for more capable connected devices with at least 2 MB of memory supporting a full-featured JVM. Profiles build atop these configurations; for example, the Mobile Information Device Profile (MIDP) on CLDC enables user interfaces, networking, and persistence for mobile applications like MIDlets, while the Foundation Profile on CDC offers a subset of Java SE without graphical user interfaces for server-like embedded uses. Other profiles, such as Personal Profile for web applets or Java TV for set-top boxes, extend functionality for specific vertical markets. Java ME supports key features like flexible user interfaces, robust security models, standard network protocols, and offline data storage, making it suitable for applications in , automotive systems, and smart devices. In the IoT domain, the current Java ME Embedded 8.3 release (from 2018) incorporates enhancements like the CLDC 8 for core runtime and APIs, enabling efficient operation on microcontrollers and gateways with tools like the Java ME SDK for and . Despite the rise of modern platforms like , Java ME continues to power legacy mobile ecosystems and new IoT deployments due to its maturity, portability, and vast existing codebase.

Overview

Definition and Purpose

Java Platform, Micro Edition (Java ME) is a subset of the Java platform designed specifically for resource-constrained environments, such as systems, mobile devices, and (IoT) applications, where memory is typically limited to 128–512 KB and processing power is minimal. This platform enables developers to create and run Java-based applications on devices like sensors, microcontrollers, and early mobile phones that cannot support the full Java Standard Edition (Java SE). By providing a streamlined , Java ME ensures compatibility across diverse hardware while maintaining core Java principles of portability and . The core purpose of Java ME is to facilitate the development of secure, efficient applications that can operate in networked or offline modes on low-resource devices, upholding the write-once-run-anywhere model adapted for constrained settings. It allows for dynamic downloading and execution of applications, leveraging built-in network protocols and flexible user interfaces to support real-world use cases in and . This focus on resource efficiency makes Java ME suitable for environments where full capabilities would be impractical due to limitations. To achieve these goals, Java ME incorporates key technical constraints, including a reduced set of class libraries that omit advanced features available in larger Java platforms. Early implementations lacked support for floating-point data types ( and ) to align with the absence of such in target devices. Rather than the standard , it employs the Kilobyte Virtual Machine (KVM), a compact optimized for minimal usage, requiring as little as 128 KB total budget including the VM, libraries, and heap. Sun Microsystems originally designed Java ME in 1999, targeting emerging consumer devices such as pagers and personal digital assistants (PDAs) to extend 's reach beyond desktops. This initiative addressed the growing need for portable code in the nascent and markets.

Relation to Other Java Platforms

The Java Platform, Micro Edition (Java ME) forms one of the three primary editions of the Java platform family, distinct from Java SE (Standard Edition), which targets desktop and general-purpose computing environments, and (formerly Java EE; Enterprise Edition), which is optimized for large-scale, server-side enterprise applications. Java ME is specifically engineered for resource-constrained devices such as systems, phones, and modules, providing a lightweight runtime that supports portable, secure applications while inheriting core language features from the broader ecosystem. This positioning allows Java ME to leverage the extensive Java developer community—estimated at over 9 million—while addressing hardware limitations not relevant to Java SE or . Architecturally, Java ME diverges from Java SE by employing a layered model of configurations and profiles for device-specific customization, rather than relying on the full, monolithic standard libraries of Java SE. The Connected Limited Device Configuration (CLDC) targets low-end devices with minimal resources (e.g., 160 KB non-volatile memory and intermittent connectivity), offering a of Java Virtual Machine (JVM) features and basic APIs, while the Connected Device Configuration (CDC) supports more capable hardware (e.g., 2 MB ) with closer alignment to Java SE subsets, including support for profiles like the Foundation Profile. In contrast, Java SE provides comprehensive class libraries for unrestricted environments, without the need for such modular tailoring to memory and processing constraints. Java ME also incorporates optimizations like just-in-time () compilation and generational garbage collection to enhance performance on limited hardware, further differentiating it from the resource-rich assumptions of Java SE and . Originally designated as J2ME (Java 2 Platform, Micro Edition), Java ME was renamed in June 2005 as part of ' (later 's) effort to streamline branding across editions, dropping the "2" to signify platform maturity and eliminate version confusion—mirroring changes like J2SE to Java SE. While Java ME maintains bytecode compatibility with Java SE, enabling ME-compiled class files to execute on SE-compatible JVMs under certain conditions, there is no straightforward migration path for applications due to API subsets and environmental differences; Java ME serves as a specialized subset rather than a precursor to the fuller-featured SE or platforms. Under Oracle's stewardship since acquiring in 2010, ME operates as a platform, with Oracle licensing runtimes and tools directly to device manufacturers and providers, often requiring commercial agreements for deployment. This contrasts with Java SE, which benefits from the open-source project under GPLv2 with Exception, allowing community-driven development and free distribution, though Oracle's JDK variant imposes subscription-based licensing for production use. ME lacks a comparable fully open-source , emphasizing Oracle's controlled to ensure consistency in constrained ecosystems.

History

Origins and Early Development

The Java Platform, Micro Edition (Java ME), originally known as Java 2 Platform, Micro Edition (J2ME), was developed by to extend the Java programming model to resource-constrained devices in emerging mobile and embedded markets, moving beyond the initial focus on desktop applets and web applications. Conceptualized in the late amid the rise of consumer electronics like personal digital assistants (PDAs) and early cellular phones, J2ME aimed to provide a lightweight runtime environment that maintained Java's "write once, run anywhere" portability while accommodating limited memory, processing power, and battery life. Sun unveiled J2ME at the JavaOne conference in 1999, demonstrating its potential through a prototype application on a Palm V PDA, targeting devices such as pagers, PDAs, and entry-level mobile phones that required compact, secure code execution without full (JVM) overhead. A key component of this early development was the K Virtual Machine (KVM), a stripped-down JVM designed for 16-bit or 32-bit processors with as little as 128 KB of memory. Originating from the Spotless project in Sun Laboratories, KVM was introduced in as the reference virtual machine for J2ME, enabling dynamic loading and collection tailored to constraints while ensuring compatibility with core APIs. This innovation addressed the need for a minimal , allowing Java applications to run on devices previously limited to native code. Formal standardization began through the Java Community Process (JCP). In August 1999, the expert group for JSR 30 approved the initial draft of the Connected Limited Device Configuration (CLDC), a foundational configuration for low-end devices with intermittent connectivity and limited resources. The specification reached final release in May 2000, defining subsets of essential Java libraries like java.lang and java.io, along with security features such as sandboxing for untrusted code. Concurrently, JSR 68, proposed in early 2000, outlined the overarching J2ME platform architecture, introducing the concepts of configurations and profiles to modularize support for diverse device classes. These milestones established J2ME as a flexible framework for consumer electronics, emphasizing portability across heterogeneous hardware. In 2005, Sun renamed J2ME to Java ME to streamline branding and align it with the Java SE (Standard Edition) and Java EE (Enterprise Edition) platforms, removing the "2" prefix while preserving the platform's focus on micro-embedded systems. This rebranding reflected evolving industry needs without altering the underlying specifications.

Adoption and Peak Usage

Java Platform, Micro Edition (Java ME) experienced significant market growth during the early , driven by its suitability for resource-constrained mobile devices. By April 2004, approximately 250 million mobile phones worldwide supported Java technology, marking a substantial increase from earlier years and reflecting the platform's expanding footprint in consumer handsets. Projections at the time estimated that the number of Java-enabled devices would surpass 1 billion by 2006, fueled by widespread integration in entry-level and mid-range phones. The platform achieved peak adoption around 2013, with over 3 billion Java ME-enabled mobile phones in circulation, representing a dominant presence in the feature phone segment that accounted for the majority of global mobile device shipments prior to the smartphone surge. This scale underscored Java ME's role as the de facto standard for mobile applications on non-smartphone devices, enabling consistent software experiences across diverse hardware. Key partnerships with major manufacturers accelerated this adoption. Nokia extensively integrated Java ME into its Series 40 and Series 60 platforms, which powered millions of devices and supported J2ME applications natively. Sony Ericsson developed dedicated Java platforms, such as the Sony Ericsson Java Platform (SJP) for Symbian-based devices and JP for non-Symbian models, ensuring robust MIDlet compatibility. Motorola similarly embedded Java ME support in its feature phones, contributing to cross-vendor application portability. Integration extended to operating systems like Symbian OS, where Java ME formed a core component for app execution, and BlackBerry, which incorporated Java 2 Micro Edition (J2ME) as part of its foundational runtime for secure, open development. During its peak, Java ME facilitated a vibrant ecosystem of applications, particularly through the Mobile Information Device Profile (MIDP), which enabled the deployment of MIDlets—lightweight, portable apps. Popular examples included games like Snake, a simple yet iconic title that demonstrated the platform's graphics capabilities on early Nokia devices. MMS clients, such as those for sending multimedia messages, leveraged MIDP's networking APIs to enhance mobile communication beyond basic SMS. Early web browsers, including versions of Opera Mini, operated as MIDlets to deliver lightweight internet access on low-bandwidth connections, bypassing hardware limitations. These applications highlighted Java ME's versatility in enabling interactive content distribution via over-the-air updates. The (JCP) played a pivotal role in this success by overseeing the development of Java Specification Requests (JSRs) that standardized configurations and profiles, ensuring among devices from different vendors. Notable JSRs, such as JSR 30 for Connected Limited Device Configuration (CLDC) and JSR 37 for MIDP, promoted consistent APIs and runtime environments, reducing fragmentation and encouraging developer adoption across ecosystems. This collaborative standardization effort, involving industry stakeholders, solidified Java ME's position as a reliable platform for mobile innovation during the .

Decline in Mobile and Shift to Embedded Systems

The introduction of Apple's iPhone in 2007 and Google's Android platform in 2008 marked the beginning of a rapid shift in the mobile ecosystem, where advanced smartphones with native app development frameworks overshadowed Java ME's role in feature phones and basic mobile devices. By 2010, smartphone shipments had surged to nearly 300 million units globally, capturing a significant market share from traditional Java ME-dependent platforms, as developers migrated to more capable and integrated environments like iOS and Android SDKs. This transition sidelined Java ME, which had peaked in adoption during the early 2000s with widespread use on devices from Nokia, Sony Ericsson, and others. The decline accelerated with the end of support for major Java ME platforms; for instance, Nokia terminated developer support for , a key Java ME host, effective January 1, 2014, halting new app submissions and updates. Market data reflects this erosion: global shipments, heavily reliant on Java ME, peaked at approximately 1.4 billion units in 2010 but plummeted to under 300 million by 2020, with lingering legacy use primarily in developing markets where affordable basic phones persisted. As penetration exceeded 80% worldwide by the mid-2010s, Java ME's mobile footprint contracted sharply, prompting to de-emphasize consumer mobile development in favor of more sustainable applications. Post-2011, Oracle redirected Java ME efforts toward embedded systems and the (IoT), launching Java ME Embedded as a dedicated platform for resource-constrained devices. This initiative targeted IoT growth, providing a Java SE 8-compatible runtime for low-power environments like microcontrollers and networked sensors. The latest major release, Java ME 8.3 in 2018, specifically optimized for sensors, gateways, and evaluation boards such as and , enabling secure, modular applications with features like the Device Access API for peripheral integration. Java ME's ongoing relevance lies in its maintenance for legacy embedded systems, where it supports billions of deployed devices, and its compatibility with modern ecosystems, including integration via IoT projects that extend Java tools for device connectivity and cloud backends. This shift has sustained Java ME as a bridge between historical mobile codebases and contemporary IoT standards, avoiding in and machine-to-machine contexts.

Configurations and Profiles

Connected Limited Device Configuration (CLDC)

The Connected Limited Device Configuration (CLDC) serves as the foundational configuration within the Platform, Micro Edition ( ME), providing a minimal runtime environment tailored for highly resource-constrained, connected devices such as early phones, pagers, and systems. It defines a subset of features, core libraries, and APIs that enable the execution of small Java applications while accommodating limited processing power, memory, and intermittent network access. CLDC was initially specified in version 1.0 through Java Specification Request (JSR) 30, finalized in May 2000, which established the baseline for devices with severe limitations by excluding advanced Java features to fit within tight footprints. This version targeted the deployment of Java on platforms like two-way pagers and personal digital assistants (PDAs), emphasizing portability across diverse hardware without requiring floating-point hardware support. CLDC 1.1, defined in JSR 139 and finalized in March 2003, refined the configuration with enhancements such as improved internationalization support and the addition of implemented in software, allowing developers to perform basic numerical computations without dedicated hardware. Core features of CLDC include the K Virtual Machine (KVM), a compact optimized for low-memory environments, along with basic input/output (I/O) capabilities through a subset of the java.io package for stream-based data handling. The Java language subset omits advanced constructs like finalizers for object cleanup, imposes restrictions on error handling (e.g., no support for certain reflective operations), and limits multithreading to basic synchronization primitives, ensuring efficient operation on constrained systems. Networking is facilitated via the Generic Connection Framework (GCF), which provides a unified for intermittent, low-bandwidth connections like those over cellular or short-range networks. Hardware requirements for CLDC focus on to support widespread adoption: a 16-bit or 32-bit CPU with a clock speed of at least 16 MHz, total memory ranging from 128 KB to 512 KB (with at least 128 KB allocatable as space and the remainder for / storage of libraries and the VM), and support for battery-operated, low-power scenarios. These specifications ensure CLDC can run on devices with intermittent connectivity, typically limited to speeds below 9600 bps, without demanding persistent high-speed links. Over time, CLDC evolved significantly with version 8 under JSR 360, finalized in , which aligned the platform more closely with 8 by incorporating language features like generics, annotations, enumerations, and try-with-resources statements, while maintaining and the core for modern embedded applications. This update enhanced developer productivity by enabling more expressive code without expanding the runtime footprint substantially.

Mobile Information Device Profile (MIDP)

The Mobile Information Device Profile (MIDP) is a Java specification that extends the Connected Limited Device Configuration (CLDC) to provide a standardized runtime environment for developing and deploying applications on resource-constrained mobile information devices, such as cellular phones and personal digital assistants. It targets devices with limited memory (typically 512 total), battery power, and variable user interfaces, enabling mass-market applications like games, , and information services. MIDP defines core APIs for user interfaces, data persistence, networking, and application management, while maintaining across versions. MIDP 1.0, specified under JSR 37 and released on September 19, 2000, introduced the foundational application model for mobile Java, including support for over-the-air () provisioning to allow users to discover, download, and install applications via wireless networks using HTTP and JAD/ files. Key APIs in this version include the Low-Level (LCDUI) package (javax.microedition.lcdui), which provides a simple, device-agnostic toolkit for building graphical user interfaces with components like forms, lists, and canvases suitable for small screens and limited input methods such as buttons or keypads. Additionally, the Record Management System () API (javax.microedition.rms) enables persistent through record stores, allowing MIDlets to save and retrieve small amounts of user data locally. MIDP applications, known as MIDlets, follow a defined lifecycle managed by the (AMS): the startApp() method initializes the application, pauseApp() suspends it during inactivity (e.g., incoming calls), and destroyApp(boolean unconditional) terminates it, ensuring resource cleanup. For security, untrusted MIDlet suites operate within a that restricts access to sensitive (e.g., networking or I/O), requiring explicit user permissions or digital signatures for trusted code to mitigate risks in unverified downloads. MIDP 2.0, under JSR 118 and released on November 20, 2002, enhanced these foundations with improved OTA status reporting, better persistence options, and optional integration of the Mobile Media API (MMAPI, JSR 135) for basic multimedia playback like tones and simple video. MIDP 3.0, specified in JSR 271 and approved on December 9, 2009, introduced support for modern mobile capabilities while preserving compatibility with prior versions, including gesture handling in LCDUI for interactions, support for concurrent MIDlets, and inter-MIDlet communication. These additions addressed evolving device diversity, enabling more expressive user interfaces and richer applications without requiring full Java SE subsets.

Connected Device Configuration (CDC)

The Connected Device Configuration (CDC) is a configuration within the Platform, Micro Edition ( ME) designed for resource-rich, connected devices that require a more robust than those supported by CLDC. It defines a minimal of the SE platform, including core class libraries, APIs, and a tailored for devices with enhanced processing and memory capabilities, enabling the development of sophisticated applications. CDC version 1.0 was specified through JSR 36, approved in 2001, while version 1.1 followed via JSR 218, finalized in 2005, incorporating updates aligned with SE 1.4 features such as assertions and improved support while maintaining . At its core, CDC employs the C Virtual Machine (CVM), a high-performance implementation of the (JVM) specification written in C to optimize execution on embedded hardware without sacrificing full Java 2 compatibility. This includes support for , either natively or via software emulation, allowing numerical computations that are absent in lighter configurations. Networking capabilities are expanded to include full and protocols through the java.net package, facilitating robust, always-on connectivity for data exchange in networked environments. CDC targets devices equipped with a 32-bit CPU and at least 2 MB of total (with approximately 2.5 MB ), providing around 1 MB for the Java to accommodate larger applications and data sets. This configuration suits non-mobile systems such as TV set-top boxes, car navigation units, and printers, where persistent connectivity and higher computational demands are essential. CDC serves as the foundational for profiles, enabling layered extensions for user-facing applications on these platforms.

Foundation Profile and Personal Basis Profile

The Foundation Profile, defined in JSR 46 and revised in JSR 219, is a headless profile built on the Connected Device Configuration (CDC) for ME, providing core non-graphical from Java SE for resource-constrained, network-connected devices. It includes essential packages such as java.io for input/output operations, java.net for networking, java.util for utilities like collections and date handling, and java.lang.reflect for reflection capabilities, enabling server-side or gateway applications without support. Targeted at devices with at least 512 KB of RAM and 1 MB of ROM, the profile's libraries typically occupy 512 KB to 2 MB, supporting headless environments like embedded servers or data processing units. The Personal Basis Profile, specified in JSR 129 and updated in JSR 217, extends the Foundation Profile by adding a subset of the (AWT) for basic graphical user interfaces, along with support for printing via java.awt.print and limited sound capabilities through javax.sound.midi. This profile focuses on lightweight components, such as single-frame windows and simple event handling, without heavyweight widgets, making it suitable for consumer devices requiring minimal GUI functionality like personal digital assistants (PDAs), interactive televisions, and set-top boxes. With library sizes ranging from 2 MB to 16 MB and minimum device requirements of 1 MB RAM and 2 MB ROM, it accommodates applications in environments like Blu-ray players, where applications leverage its APIs for interactive media playback. Key differences between the profiles lie in their scope and resource demands: the Foundation Profile is strictly non-graphical and optimized for minimal footprints in server or gateway roles, while the Personal Basis Profile introduces elements for end-user devices, increasing complexity and size accordingly. Both profiles ensure compatibility with features up to version 1.1 for core language elements and 1.3 for select APIs, facilitating porting of legacy Java applications to embedded systems while adhering to CDC's specifications.

Implementations and Tools

Reference Implementations

Oracle's primary for Java ME development is the Java ME SDK 8.3, released in 2018, with a maintenance update 8.3.1, which provides a comprehensive environment for building and testing applications with built-in emulators, runtimes, and libraries. This SDK ensures full compliance with key Java Specification Requests (JSRs), including support for configurations such as Connected Limited Device Configuration (CLDC) and Connected Device Configuration (CDC), along with debugging tools, device skin emulators, and utilities for on Windows and host systems. It also integrates for scenarios, enabling developers to simulate resource-constrained devices without physical . No major updates have been released since 2018, as has directed efforts toward Java SE solutions. Complementing the SDK, ME Embedded 8.3 serves as the for and applications, targeting / architectures and specific boards like Model B and Galileo Gen 2. This implementation extends to platforms such as IoE (/BREW MP), providing a lightweight optimized for low-power devices with features like headless operation and secure file systems. Up to ME 8, it maintains JSR compliance for including Foundation and Basis , facilitating deployment on hardware with minimal footprint. From ' legacy efforts, the Wireless Toolkit (WTK) 2.5.2_01 offered essential tools for MIDP-based development, including build utilities, emulation, MIDlet signing, and a device emulator compliant with MIDP 2.0 (JSR 118) and CLDC 1.1 (JSR 139). It supported Windows and hosts, with features like push registry emulation and optional package integration for (JSR 82) and location APIs (JSR 179), aiding early mobile application testing. Sun also developed phoneME as an open-source of CLDC and CDC, launched in 2007 to promote Java ME adoption in mobile and markets through customizable virtual machines and libraries under GPLv2 licensing. Active until around 2011, phoneME Feature targeted feature phones with MIDP support, while phoneME Advanced addressed higher-end devices, emphasizing reduced implementation variance and community contributions for JSR-compliant builds.

Third-Party Implementations and Emulators

Third-party implementations of the Java Platform, Micro Edition (Java ME) have extended its reach beyond official reference versions, often tailoring the platform for specific hardware constraints, cross-platform compatibility, or emulation purposes. These efforts include open-source projects that provide alternative runtimes and tools, as well as vendor-specific adaptations that optimized Java ME for proprietary device ecosystems. While these implementations vary in compliance with (JCP) standards, they have preserved legacy applications and enabled development in niche areas like embedded systems and retro gaming. Open-source projects have been instrumental in maintaining Java ME's accessibility. MicroEmulator, a pure Java implementation of Java ME, serves as a CLDC/MIDP emulator that runs MIDlets in web browser applets or as standalone applications, licensed under LGPL with major components under the . It supports demonstration and testing of J2ME applications without requiring physical devices. Similarly, phoneME Advanced offers an open-source runtime based on the Connected Device Configuration (CDC), targeting advanced phone categories and desktops with support for related profiles and optional packages like the Foundation Profile. This implementation leverages OS features such as and multi-tasking for higher-performance embedded scenarios. Codename One, another open-source tool, transpiles MIDlets written in Java to native code for cross-platform deployment on , , and the web, building on Java ME's lightweight UI libraries like LWUIT to bridge legacy mobile development to modern ecosystems. Vendor adaptations have customized ME for specific platforms, enhancing device-specific features while adhering to core configurations. Nokia's implementation for the platform integrated ME (J2ME) to support MIDP-based applications and games on feature phones, including extensions for and hardware access via the Nokia , enabling widespread deployment of apps on over a billion devices historically. IBM's J9 provided an embedded runtime compliant with ME profiles like CLDC and CDC, offering a configurable layer for resource-constrained systems with optimizations for compact, predictable performance on processors like NXP. Android's Dalvik , while and not fully compliant with ME standards, drew inspiration from ME's model but used a DEX format optimized for mobile, allowing partial portability of ME code to early Android environments through conversion tools. Emulators from third-party sources have facilitated testing and preservation of Java ME applications on contemporary hardware. FreeJ2ME, an open-source emulator focused on J2ME games, runs on Windows, , and , supporting 2D titles from legacy phones with libretro and SDL2 frontends for retro gaming communities. These tools contrast with reference implementations by emphasizing compatibility for archival purposes over full development suites.

Standards and Specifications

Java Specification Requests (JSRs)

The development of the Java Platform, Micro Edition (Java ME) is governed by the (JCP), a collaborative framework that facilitates the creation of Java specifications through Java Specification Requests (JSRs). These JSRs define the core components, APIs, and standards for Java ME, ensuring consistency and portability across diverse embedded and mobile devices. The JCP process involves expert groups comprising industry stakeholders who review proposals, draft specifications, and approve final releases, promoting open participation while maintaining technical rigor. A pivotal early JSR was JSR 68, approved on May 27, 2000, which outlined the architecture for what was then known as the 2 Platform, Micro Edition (J2ME). This JSR introduced key concepts such as configurations (minimal runtime environments tailored to device capabilities) and profiles (higher-level built atop configurations), providing a flexible model for subsetting Java features to suit resource-limited hardware. Although withdrawn in 2011 as its architectural guidelines were integrated into subsequent specifications, JSR 68 laid the groundwork for Java ME's evolution and interoperability. By 2014, over 50 JSRs had been completed for ME, with the total reaching 85 as of the latest JCP records, encompassing foundational elements and optional extensions. These specifications have enabled a robust by standardizing for networking, , and user interfaces, allowing vendors to build compatible implementations without proprietary lock-in. Among the core JSRs defining Java ME's foundational configurations and profiles are those for the Connected Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP). JSR 30 (2000) specified CLDC 1.0 for small, connected devices with limited resources, while JSR 139 (2003) updated it to CLDC 1.1 with enhancements like improved networking and . For MIDP, JSR 37 (2000) defined version 1.0 to support mobile applications on CLDC devices; JSR 118 (2002) advanced it to version 2.0 with multimedia and over-the-air updates; and JSR 271 (2009) introduced MIDP 3.0 for richer interactions on advanced handsets. Similarly, the Connected Device Configuration (CDC) and related profiles form another pillar. JSR 36 (2000) established CDC 1.0 for devices with more capable processors and memory, and JSR 218 (2005) revised it to CDC 1.1, aligning with Java SE 1.4 APIs for better compatibility. The Foundation Profile, intended for non-graphical, network-connected applications on CDC, was defined in JSR 46 (2001) and updated in JSR 219 (2006) to incorporate Java SE 1.4 features. The Personal Basis Profile, adding basic graphical support, originated in JSR 129 (2002) and was refined in JSR 217 (2006) for enhanced subsetting from Java SE. These core JSRs play a crucial role in ensuring by mandating compatible runtime behaviors and subsets, allowing developers to target multiple device classes with a single codebase. Post-2018, following Oracle's de-emphasis on ME in favor of SE for systems, many of these JSRs entered maintenance or archived status, with no new major revisions but ongoing availability of specifications and reference implementations for legacy and specialized uses. This has sustained Java ME's adoption in billions of devices, fostering an ecosystem of tools and applications despite evolving market shifts.

Embedded Systems Reference (ESR) Specifications

The E-S-R was formed in late as a non-profit organization registered in to develop and promote the adoption, use, and improvement of Java technologies through the creation of cost-effective specifications. The consortium focused on providing a lightweight alternative to full Java Specification Requests (JSRs) for resource-constrained environments, aiming for compatibility with Java SE features within Java ME contexts to support seamless application development across and ecosystems. Over time, it produced several specifications tailored to , machine-to-machine communication, and other domains, emphasizing low overhead and . Key specifications include B-ON (associated with JSR 361, approved in 2014), which forms the foundation for the ME Embedded Profile (MEEP 8) by defining a reliable initialization phase and extending CLDC capabilities for robust execution. MicroUI provides essential graphical user interfaces for embedded devices, supporting 2D APIs and character LCD displays suitable for microcontrollers with limited resources. The Micro Widget Toolkit (MWT) offers media widgets and a for building interactive components in constrained systems, while eClasspath introduces a module system to manage dependencies and class loading in low-memory environments. These APIs prioritize minimal footprint and real-time performance, enabling developers to implement device-specific features without the full overhead of standard Java libraries. The ESR specifications target , low-power devices such as sensors, actuators, and gateways, integrating directly with Java ME 8 to facilitate connected applications in scenarios. They emphasize and efficient resource utilization, allowing Java code to interface with peripherals like GPIO and displays while maintaining compatibility with broader Java ecosystems. As of 2025, the ESR specifications, though from a now-inactive , remain relevant for legacy deployments, particularly in and automotive sectors, and continue to influence modern frameworks by providing foundational patterns for lightweight Java runtimes in .

Current Use Cases

Legacy Mobile Applications

Java Platform, Micro Edition (Java ME) continues to power applications on feature phones, particularly in developing markets where low-cost devices remain prevalent. Devices such as the 200 series support Java ME through MIDP 2.1, enabling the execution of lightweight applications including basic games, clients, and handlers that leverage device-specific for messaging and . These phones facilitate simple and communication tools tailored to limited resources, with apps often sideloaded via USB or . In legacy platforms, ME was integral to operating systems like and prior to 2013, providing a standardized for third-party applications on early smartphones. OS incorporated ME as a core component, supporting MIDlets for diverse functionalities across and other vendor devices. Similarly, versions up to 7.1 natively ran ME applications, including clients and productivity tools, before the shift to BlackBerry 10. Sony Ericsson devices also integrated Java ME, supporting MIDlets for various applications on their pre-smartphone handsets. Today, retro emulation allows these applications to run on modern devices using tools like J2ME Loader, which emulates the Java ME environment for 2D and limited 3D games. Notable examples of Java ME applications include operator portals such as , which delivered downloadable Java clients for services like unlimited texting and content access, integrated with the carrier's network. Simple browsers, exemplified by early versions of , utilized Java ME to provide web access on constrained devices with compressed data rendering. Security in these applications relies on sandboxed MIDlets, where each suite operates in an isolated environment to prevent unauthorized access to device resources, as defined in the MIDP specification. Despite its enduring presence, Java ME faces significant challenges in legacy mobile contexts, with no active development for modern smartphones due to the dominance of native platforms like and . Maintenance efforts focus on sustaining compatibility for millions of active feature phones and emulated legacy devices in regions with limited infrastructure upgrades, addressing issues like deprecation and patching without broader ecosystem support.

Embedded Systems and IoT Applications

Java Platform, Micro Edition (Java ME) has found significant adoption in embedded systems and () applications, where its lightweight runtime and support for resource-constrained environments enable reliable operation on devices with limited memory and processing power. Optimized profiles such as Java ME Embedded provide essential APIs for hardware access, including (GPIO), inter-integrated circuit (I2C), and (SPI), facilitating integration with sensors and actuators in ecosystems. These capabilities allow developers to deploy portable, secure applications that support over-the-air updates and remote management, extending device lifecycles in dynamic environments. In IoT deployments, Java ME powers sensors and gateways that collect, process, and transmit data in real-time scenarios. For instance, on platforms like the Raspberry Pi, Java ME Embedded enables GPIO interfacing with sensors for environmental monitoring, such as temperature and pressure readings, forming the basis for edge gateways that aggregate data from multiple sources before cloud forwarding. Smart meters in smart grid infrastructure leverage Java ME for secure metering and communication in machine-to-machine (M2M) networks, ensuring compliance with utility standards while handling low-power operations. Industrial automation systems use Java ME to control machinery and monitor processes, with its modular profiles supporting protocols like Modbus for interoperability in factory settings. Across industries, Java ME Embedded specifications, including the Embedded Systems Reference (ESR), enable tailored applications in automotive electronic control units (ECUs) for functions like diagnostics and integration. In consumer electronics, it drives user interfaces and content delivery on Blu-ray Disc players and printers, where Java TV APIs support bonus features and device management. Healthcare applications benefit from low-power profiles in wearables, powering devices such as wristbands for activity tracking and infant monitors that transmit biometric data via secure channels. Notable demonstrations include set-top boxes utilizing Java TV for electronic program guides (EPGs) and video-on-demand (VOD) services, enabling interactive media experiences on embedded hardware. Integration with Eclipse tools, such as plugins in the Java ME SDK, supports development for edge computing in IoT, allowing seamless deployment on gateways like Raspberry Pi within open-source frameworks. As of 2025, Java ME technologies remain deployed on over three billion devices worldwide, with ongoing maintenance through Oracle's SDK 8.3 releases ensuring compatibility for low-end IoT endpoints.

References

  1. [1]
    Java Platform, Micro Edition (Java ME) - Oracle
    Java Platform, Micro Edition (Java ME) provides a robust, flexible environment for applications running on embedded and mobile devices in the Internet of Things ...Java for Mobile Devices... · Java ME SDK Downloads · Downloads
  2. [2]
    An introduction to Java 2 micro edition (J2ME) - ACM Digital Library
    Sun introduced the Java 2, Micro Edition (J2ME) in June 1999 to address the needs of the consumer electronics and embedded devices community.Abstract · Index Terms · Information<|control11|><|separator|>
  3. [3]
    Get Creative on the Java ME Platform - Visual Studio Magazine
    Apr 17, 2006 · When Sun Microsystems introduced Java 2 Platform, Micro Edition (J2ME, which was renamed recently to Java ME) to the world in 2000, the ...
  4. [4]
    [PDF] Chapter 1: Introduction to the Java 2 Micro Edition (J2ME) Platform
    Figure 1.1 The J2ME platform consists of a set of layers that support a basic runtime environment with core Java libraries and a Virtual Machine (VM), a set of ...
  5. [5]
    [PDF] J2ME Building Blocks for Mobile Devices - Oracle
    May 19, 2000 · The minimum total memory budget required by a KVM implementation is about 128 kB, including the virtual machine, the minimum Java class ...Missing: ME 1999
  6. [6]
    What Is Java ME? - Java Platform Micro Edition - phoenixNAP
    Apr 5, 2024 · Java ME, short for Java Platform Micro Edition, is a subset of the Java programming language designed for embedded systems and mobile devices.Java Me Architecture · Java Me Advantages And... · Java Me Uses
  7. [7]
    KVM: A Small Java Virtual Machine for J2ME - Barr Group
    Jun 1, 2002 · KVM makes it possible to, for the first time, run Java programs on any 16-bit processor with 128KB of available memory. Sun's unveiling of the K ...Missing: 128-512 | Show results with:128-512
  8. [8]
    1. Overview of J2ME - Wireless Java [Book] - O'Reilly
    Sun Microsystems, Inc. introduced J2ME at the JavaOne conference in June 1999 ... pagers, Personal Digital Assistants (PDAs), set-top boxes, and other small ...
  9. [9]
    3 Platforms
    This chapter describes the Oracle Java ME SDK technology platforms, also called stacks. They are: "CLDC with MIDP," "IMP-NG," and "CDC," as discussed in ...
  10. [10]
    Java Naming Scheme - Oracle
    J2EE 5.0 became Java EE 5. J2ME became Java ME as of June 2005, because it does not have a version number. Java Card is not affected by this name change.
  11. [11]
    Preface to the Java SE 7 Edition - Oracle Help Center
    The Java SE 6 platform in 2006 saw no changes to the Java programming language but an entirely new approach to bytecode verification in the Java Virtual Machine ...
  12. [12]
    Oracle JDK License General FAQs
    This FAQ pertains to Oracle Java SE releases starting April 16, 2019 and has been updated to reflect the Oracle No-Fee Terms and Conditions License.Oracle No-Fee Terms and... · Here · ライセンスに関するFAQ
  13. [13]
    The Palm V meets J2ME - InfoWorld
    Aug 20, 1999 · One announcement that was emphasized by Sun was J2ME, short for the Java 2 Platform, Micro Edition. Actually, J2ME wasn't merely announced ...Missing: renamed | Show results with:renamed
  14. [14]
    [PDF] The CLDC HotSpot Implementation Virtual Machine - Oracle
    JSR-30 was approved in August 1999, and the final public release of the CLDC Specification 1.0 occurred in May 2000. Practically every major manufacturer of ...
  15. [15]
    JSRs: Java Specification Requests - detail JSR# 30
    NOTICE: Please be aware, JSR 30 has been replaced (superseded) by a newer JSR, (JSR 139). JSR 30 can no longer be used/referenced for Java certifications. All ...
  16. [16]
    Java Specification Requests - detail JSR# 68
    This specification will define the next major revision of the JavaTM 2 Micro Edition Platform. 2.2 What is the target Java platform? (i.e., desktop, server, ...
  17. [17]
    [PDF] Tutorial: Development of Interactive Applications for Mobile Devices
    Java on mobile devices: History [1,4,9]. 2002: Second version of Mobile Information. Device Profile (MIDP 2.0). April 2004: 250 Million mobile phones support.
  18. [18]
    The fragmentation effect | InfoWorld
    May 24, 2004 · With an estimated 250 million Java-enabled handsets on the market today—a number projected to grow to 1 billion by 2006— the opportunity for ...Missing: statistics | Show results with:statistics
  19. [19]
    Three billion devices run Java. Yeah, but do they like it? - ZDNET
    Jul 10, 2013 · When you install Java, you see a graphic that informs you of Java's popularity. But the question is, do we as users, have a choice? The answer is, "Yes, but."
  20. [20]
    The Java Platform Micro Edition (Java ME) | Request PDF
    According to Sun Microsystems there where more than 250 million mobile phones world wide that supported Java in 2004 and the number is growing rapidly [25].
  21. [21]
    Series 40 - Legacy Portable Computing Wiki - Miraheze
    Unlike Series 60, S40 does not have its own application format, but has support for J2ME applications, as well as Flash Lite apps in newer versions. The first ...Missing: adoption | Show results with:adoption
  22. [22]
    Sony Ericsson Java Platform - Wikipedia
    Two platform branches exist, supporting Symbian (SJP) and non-Symbian (JP) based phones respectively. The platforms are implemented through an evolutionary ...Missing: Motorola | Show results with:Motorola
  23. [23]
    Java ME on Symbian OS: Inside the Smartphone Model
    Symbian OS provides a common Java ME platform for many phone manufacturers but there is no single common Java ME SDK for Symbian OS devices. Instead, each of ...
  24. [24]
    BlackBerry Connection
    J2ME: The BlackBerry 5810 also incorporates Java 2 Micro Edition (J2ME) as its core operating system, providing a secure and open platform for customers ...
  25. [25]
    Simple snake game for Java ME CLCD MIDP. - GitHub
    Simple snake game for Java ME CLCD MIDP. Contribute to anasrar/java-me-snake development by creating an account on GitHub.Missing: MIDlets MMS browsers
  26. [26]
  27. [27]
  28. [28]
    [PDF] Participate in the Future of Java - How the JCP Works
    – A JSR is a single version of a Java specification. – JSRs are led by a community member (the Spec. Lead), with a group of interested members (the. Expert ...Missing: interoperability | Show results with:interoperability
  29. [29]
    Oracle Positions Java for the New Mobile World - Datamation
    Sep 28, 2012 · In addition to the Java ME Embedded 3.2 release, Oracle is releasing a Java Embedded Suite that includes middleware server components.
  30. [30]
    Global mobile sales totalled 1.6bn in 2010 - Comms - Silicon Republic
    Feb 10, 2011 · Mobile phone sales soared 31.8pc higher during 2010, according to Gartner, with sales reaching 1.6bn devices. Smartphones make up close to 20pc ...Missing: shipments | Show results with:shipments
  31. [31]
    Oracle Aims Java ME Embedded at the Internet of Things - eWeek
    Jul 23, 2013 · At JavaOne Shanghai, Oracle announced new releases of its Java ME Embedded technology aimed at tackling the Internet of Things.
  32. [32]
    Java ME 8 and the Internet of Things - Oracle
    Micro Edition Embedded Profile 8. While CLDC 8 provides the basic Java platform—in terms of the core runtime, core language features, and core APIs—it does ...
  33. [33]
    Eclipse Simplifies Development of Internet of Things (IoT) Solutions ...
    The Eclipse IoT community is making it easier for Java developers to connect and manage devices in an IoT solution by delivering an Open IoT Stack for Java.Missing: ME relevance legacy
  34. [34]
    Java Specification Requests - detail JSR# 139
    This specification will define a revised version of the J2ME Connected, Limited Device Configuration (CLDC). J2ME CLDC defines a standard platform for small, ...Missing: hardware | Show results with:hardware
  35. [35]
    JSRs: Java Specification Requests - detail JSR# 360
    Oct 30, 2012 · Description: CLDC 8 will be an evolutionary update to CLDC 1.1. 1 to bring the VM, Java Language, and libraries up to date with Java SE 8.
  36. [36]
    JSRs: Java Specification Requests - detail JSR# 37
    JSR 37: Mobile Information Device Profile for the J2METM Platform. Stage, Access, Start, Finish. Final Release, Download page, 19 Sep, 2000. First Release ...
  37. [37]
  38. [38]
    Introduction to OTA Application Provisioning - Oracle
    The MIDP OTA specification defines how MIDP devices interact with provisioning servers, including how they download applications. The MIDP OTA specification ...
  39. [39]
    javax.microedition.lcdui (MID Profile) - Oracle Help Center
    The MIDP UI is logically composed of two APIs: the high-level and the low-level. The high-level API is designed for business applications whose client parts ...
  40. [40]
    Security for MIDP Applications - Oracle Help Center
    Security for MIDP Applications. The MIDP 1.0 specification constrained each MIDlet suite to operate in a sandbox wherein all of the APIs available to the ...
  41. [41]
    The Java Community Process(SM) Program - detail JSR# 271
    Mar 22, 2005 · This JSR will specify the 3rd generation Mobile Information Device Profile, expanding upon the functionality in all areas as well as improving interoperability ...
  42. [42]
    The Java Community Process(SM) Program - detail JSR# 36
    The Connected Device Configuration (CDC) provides the basis of the Java TM 2 platform, Micro Edition for devices that have a sufficient 32-bit microprocessor ...Missing: ME | Show results with:ME
  43. [43]
    JSRs: Java Specification Requests - detail JSR# 218
    The J2ME Foundation Profile relies on the J2ME Connected Device Configuration (CDC) as its base configuration. J2ME Foundation Profile 1.1 relies on a minimum ...Missing: ME | Show results with:ME
  44. [44]
    Java Virtual Machine and C Virtual Machine - Oracle
    CVM is distributed as part of the Connected Device Configuration (CDC). CDC is a Java 2 Platform, Micro Edition (J2ME) configuration that provides core class ...
  45. [45]
    [PDF] CDC Porting Guide - Oracle Help Center
    CDC is a Java ME technology designed to leverage Java ... Software floating point support is also implemented through a separate group of helper functions.
  46. [46]
    Java Specification Requests - detail JSR# 46
    NOTICE: Please be aware, this JSR has been replaced (superseded) by a newer JSR, (JSR 219). JSR 46 cannot be used/referenced for Java certifications.
  47. [47]
  48. [48]
    Introduction to Mobility Java Technology - Oracle
    The other major branch of the Java ME tree is based on the Connected Device Configuration (CDC). This configuration is for larger devices (in terms of memory ...
  49. [49]
    The Java Community Process(SM) Program - detail JSR# 129
    NOTICE: Please be aware, this JSR has been replaced (superseded) by a newer JSR, (JSR 216). JSR 129 cannot be used/referenced for Java certifications.
  50. [50]
    The Java Community Process(SM) Program - detail JSR# 217
    Both Personal Profile and Personal Basis Profile are built upon the J2ME Foundation Profile (JSR-46), which provides the core language, I/O and networking ...
  51. [51]
    Personal Basis Profile 1.1.2 (JSR 217) - Oracle Help Center
    Personal Basis Profile 1.1.2 is based upon Foundation Profile 1.1.2 (JSR-219). Specifically, Personal Basis Profile 1.1.2 includes Foundation Profile 1.1.2 ...
  52. [52]
    BD-J - Wikipedia
    BD-J, or Blu-ray Disc Java, is a specification supporting Java ME (specifically the Personal Basis Profile of the Connected Device Configuration or CDC) ...Missing: boxes | Show results with:boxes
  53. [53]
    Oracle® Java Micro Edition Software Development Kit
    The Oracle Java ME SDK 8.3 base platform, which includes the runtimes (virtual machines), emulators, libraries, and more. · A supported IDE, such as NetBeans 8.1 ...
  54. [54]
    About Oracle Java ME SDK
    Oracle Java ME SDK 8.3 includes the Java ME Embedded 8.3 runtime as a device emulation environment for Windows and Linux desktop computers. The emulation ...
  55. [55]
    Java ME Embedded - Downloads | Oracle Technology Network
    Oracle Java ME Embedded 8.3 is an update release of Oracle Java ME Embedded 8, including new platform support and new features. Application development is ...
  56. [56]
    Java ME Embedded 8.3 Release - Oracle Blogs
    May 12, 2016 · As a follow-up to the Oracle and Intel joint announcement at JavaOne 2015, Java ME Embedded 8.3 has the capability to run on Intel Galileo gen 2 ...
  57. [57]
    Sun Java Wireless Toolkit 2.5.2_01 for CLDC Download - Oracle
    Minimum hardware requirements are: 100 MB hard disk space; 128 MB system RAM; 800 MHz Pentium III CPU. Installing the Sun Java Wireless Toolkit for CLDC on ...
  58. [58]
    Welcome to phoneME
    The objective of the phoneME project is to further expand the usage of Java™ Platform, Micro Edition (Java ME platform) technology in the mobile handset market.
  59. [59]
    phoneME FAQ
    The phoneME Feature software includes Java ME Connected Limited Device Configuration (CLDC), Mobile Information Device Profile (MIDP), as well as a number of ...
  60. [60]
    MicroEmulator download | SourceForge.net
    Rating 5.0 (12) · Free · DeveloperDownload MicroEmulator for free. This is Java 2 Micro Edition (J2ME) CLDC/MIDP Emulator. Allows demonstrate MIDlet based applications in web browser applet, ...
  61. [61]
    microemu - Google Code
    MicroEmu is a pure Java implementation of Java ME. MicroEmu is licensed under LGPL and major parts under Apache License as well. Key usage examples: * Automatic ...
  62. [62]
    phoneME Advanced MR1 Software
    The phoneME Advanced MR1 software supports a Java runtime environment based on Connected Device Configuration (CDC) with related profiles and optional packages.
  63. [63]
    Codename One: Cross-Platform App Development with Java/Kotlin
    Codename One is a toolkit that allows you to easily build beautiful cross-platform apps targeting iOS, Android, and the web using Java or Kotlin.Pricing · Getting Started · Codename One Build · Codename One initializrMissing: ME | Show results with:ME
  64. [64]
    codenameone/CodenameOne - GitHub
    Codename One is a mobile first cross platform environment for Java and Kotlin developers. It can compile Java bytecode to native OS executables (iOS, Android, ...
  65. [65]
    [PDF] Nokia Series 40 J2ME Game Usability Guidelines and ... - CIn UFPE
    Series 40, J2ME. Page 2. Forum.Nokia.com. Nokia Series 40 J2ME™ Game Usability Guidelines and Implementation Model. 2. Contents. Contents.Missing: ME | Show results with:ME
  66. [66]
    Nokia UI API
    Here we will define a few MIDP implementation aspects and API extensions that enhance the developer's capability of delivering good games for Nokia devices.
  67. [67]
    J9 - The IBM Java virtual machine for embedded systems - Ac6 Tools
    The J9 virtual machine implements a configurable, compact, fast, and predictable architectural layer that provides a common interface for application programs.Missing: ME | Show results with:ME
  68. [68]
    Comparing Android and Java ME - X-SoftM - AXMA Soft
    Java compatibility. Since Android works with the Dalvik VM, it uses byte-code in DEX files rather than Java byte-code. This is not much of a problem if Java ...
  69. [69]
    FreeJ2ME download | SourceForge.net
    Sep 7, 2018 · FreeJ2ME is a simple J2ME emulator with a focus on old mobile phone games. It was designed to run on Windows, desktop Linux, and on the Raspberry Pi 3.
  70. [70]
    hex007/freej2me: A free J2ME emulator with libretro, awt and sdl2 ...
    A free J2ME emulator with libretro, awt and sdl2 frontends. Authors : Controls Click here for information about more keybindings Links ScreenshotsMissing: ME | Show results with:ME
  71. [71]
    Eclipse Kura
    Eclipse Kura is an open-source IoT edge framework for simplifying IoT application development, deployment, and management, enabling local data processing.Missing: ME | Show results with:ME
  72. [72]
    Building an IoT Application with Eclipse Kura - Open Source For You
    Feb 27, 2025 · Creating a simple application. Install the Eclipse IDE for Java developers. Add the Eclipse Kura development environment using the Kura plugins.
  73. [73]
  74. [74]
    Java Specification Requests in Numbers
    Nov 20, 2012 · According to the JCP Website we have 192 JSRs in the three different platforms. Java EE (47 JSRs), Java SE (60 JSRs) and Java ME (85 JSRs).
  75. [75]
    Java Archive Downloads - Java ME - Oracle
    Go to the Oracle Java Archive page. WARNING: These older versions of the JRE and JDK are provided to help developers debug issues in older systems.
  76. [76]
    Build small footprint GUIs for ARM Cortex-M designs using Java
    Nov 2, 2012 · Java embedded platform design for microcontrollers. The main criteria ... ESR Consortium for API specifications – ESR002 and ESR011, www ...
  77. [77]
    [PDF] Device Developer's Guide - MicroEJ Artifacts Repository
    Micro User Interface: ESR 002, 2009, http://www.e-s-r.net. [U61]. The ... dump, and an accurate Java scheduling policy (the same as the embedded one).
  78. [78]
    Java Specification Requests - detail JSR# 361
    Oct 30, 2012 · The IMP-NG (JSR-228) specification will be updated to meet current market requirements for embedded devices and to prepare for future Java Platform ...<|control11|><|separator|>
  79. [79]
    Oracle Java ME Embedded Getting Started
    The Oracle Java ME Embedded product is a brand new product based on the Java Connected Limited Device Configuration (CLDC) and targets small, resource- ...
  80. [80]
    A Fresh Look at Embedded Java - Azul Systems
    Aug 22, 2024 · Azul customers use Java on embedded platforms for in-car infotainment and information displays, home automation and production environment edge gateways.Missing: ESR002 | Show results with:ESR002
  81. [81]
    Nokia Asha 200 - Full phone specifications - GSMArena.com
    Nokia Asha 200 ; Java, Yes, MIDP 2.1 ; Type, Removable Li-Ion 1430 mAh battery (BL-5J) ; Stand-by, Up to 552 h ; Talk time, Up to 7 h ; Music play, Up to 52 h ...
  82. [82]
    Develop state-of-the-art mobile games | InfoWorld
    Smart clients can access mobile-specific network (e.g., SMS and MMS) or device extension (e.g., GPS) features. This makes it possible to develop games that ...
  83. [83]
    BLACKBERRY - Mobile Operating Systems
    The operating system provides multi-tasking and it supports the specialised input devices that have been adopted by blackberry. This OS is designed specifically ...
  84. [84]
  85. [85]
    Vodafone Completes Roll Out of Mobile Advertising Services
    Students can send unlimited texts using either a downloadable java client or a dedicated area of the Vodafone live! portal. Adverts are seen at various ...
  86. [86]
    J2ME, Feature Phones & Nokia Devices - Codename One
    Samsung is now prepared to compete with Nokia Asha in the feature phone market with the recent release of 4 new full touch devices, the Rex 60, 70, 80, and 90.
  87. [87]
    Oracle Java Embedded - Overview
    A development platform for embedded devices and the Internet of Things that includes all of the flexibility, portability and features of Java SE 8.
  88. [88]
    Java ME 8 + Raspberry Pi + Sensors = IoT World (Part 1) - Oracle
    This article is the first in a three-part series about how to connect electronic sensors to the Raspberry Pi Model B using general-purpose input/output (GPIO).
  89. [89]
    [PDF] Frequently Asked Questions Oracle Java ME Embedded 8 and 8.1
    The product provides dedicated embedded functionality and is targeted for low-power, limited memory devices requiring support for a range of network services ...Missing: CPU | Show results with:CPU
  90. [90]
    Java ME - Asia Opportunity
    Oracle document listing Sony-Ericsson as a notable handset manufacturer supporting Java ME enabled phones.