The most common platforms for mobile Java applications are S60 and Nokia Series 40. Series 40 platform uses a custom Nokia OS and supports no other installable applications than those written in JavaTM. S60 platform has more extensive features, suite of libraries and data capabilities. It uses Symbian OS and supports Java, C++ and Python applications. Due to mobile device constraints, CLDC/MIDP combination is used in Series 40 and S60 devices. Recent Series 80 platform also supports CDC configuration and Personal Profile (PP) framework.
The S60 platform from S60 3rd Edition, FP2 onwards and Series 40 platform from Series 40 5th Edition onwards are based on MIDP 2.1, CLDC 1.1, and optional packages. Earlier platforms are based on MIDP 1.0/2.0 and CLDC 1.0. However, different APIs are supported in different platform versions (see table Java API release information). There are also some issues with user interface variations and differing memory conditions that need to be taken into account. For more information on these issues, see section Porting MIDP applications.
The S60 and Series 40 platform architectures are compliant with the Mobile service architecture (JSR-248), starting from S60 3rd Edition FP 2 and Series 40 5th Edition. Earlier platform versions from S60 2nd Edition FP 2 and Series 40 2nd Edition are compliant with the Java Technology for the Wireless Industry (JTWI) specification. The MSA specification provides an overall architectural description for the wireless industry.
In addition to the APIs mandated by MSA, many optional packages are supported by the S60 and Series 40 platforms. For more information on these, see section Optional APIs.