J2ME is a Java platform for small computing devices like mobile phones and PDAs. It uses a stripped-down Java API and virtual machine called CLDC. The J2ME architecture has three layers - configuration, profile, and MIDP. The most popular profile is MIDP, which defines APIs for mobile user interfaces. MIDP applications called MIDlets are deployed in JAR files, with optional metadata in JAD files.