350 likes | 623 Views
Mobile Device Programming. J2ME. Software Technology for Mobile Device. J2ME (Java 2, Micro Edition) Normally used for less memory and low processing power devices (usually small devices) A collection of packages and classes for application development on mobile devices
E N D
Software Technology for Mobile Device • J2ME (Java 2, Micro Edition) • Normally used for less memory and low processing power devices (usually small devices) • A collection of packages and classes for application development on mobile devices • On December 2006, J2ME is under GPL, under project named phoneME.
J2ME Overview • Java • A programming language developed by Sun Microsystems • Compile to bytecode • Required a Virtual machine to interpret bytecode • Syntax is similar to C++ • Platform independent feature
J2ME Overview • Java includes three different editions • J2SE (Java 2 Standard Edition) • J2EE (Java 2 Enterprise Edition) • J2ME (Java 2 Micro Edition) • The above three editions target for different devices or systems
J2ME Overview • J2SE • Provides a complete environment for applications development on desktops and servers • The foundation of J2EE • J2SE 1.5 (Tiger) is available now! • J2SE 1.6 also available, update 6
J2ME Overview • J2EE • Target for business use • Large scale of systems which may contain tens of servers and millions of users • Web based services • Machines are high performance
J2ME Overview • J2ME • The Micro Edition of the Java 2 Platform provides an application environment that specifically addresses the needs of commodities in the fast and rapidly growing consumer and embedded space, including mobile phones, pagers, PDAs, set-top boxes, and vehicle telematics systems
J2ME Overview J2ME Architecture
J2ME Overview • J2ME architecture is divided into four different level • KVM (Kilobyte Virtual Machine) • Configurations • Profiles • Optional packages
J2ME Overview • KVM (Kilobyte Virtual Machine) • As the name implies, it is used for small program • A subset of JVM • A pool for running java code on the device • Configurations • defines a basic J2ME runtime environment • includes the virtual machine and a set of core classes derived primarily from J2SE
J2ME Overview • There are two different configurations • Connected Device Configuration (CDC) • Connected Limited Device Configuration (CLDC) Relation between CLDC and CDC
J2ME Overview - CDC • Targeted for devices that have: • > 2.5 MB total available memory • Memory dedicated to J2ME environment • More than 2MB ROM/Flash • More than 512 KB RAM • Network connectivity • Full Java 2 Virtual Machine specification • CDC uses • Wireless communicators • High-end PDAs • TV set-top boxes • Gateways • Automotive entertainment and navigation systems • Telecomm/Networking Equipment • Industrial Controllers
J2ME Overview - CDC • Full-featured Java 2 platform runs on small devices • Three profiles build on CDC • Foundation Profiles (FP) • Provides core Java functionalities, such as input/output streams, security, networking • Personal Profiles (PP) • Support Java Graphical User Interface • Personal Basic Profiles (PBP) • A smaller set of Personal Profiles • We will stop CDC here and focus on CLDC
J2ME Overview - CLDC • Targeted at devices with: • 160KB to 512KB total memory available for Java technology • Limited power (battery), connectivity (often intermittent), UI (small screen)
J2ME Overview - CLDC • CLDC scope • Core java.* libraries • Additional I/O and • networking libs • Security features • Internationalization
J2ME Overview - CLDC • Classes extended from Java 2 Platform, Standard Edition (J2SE) are in packages: • java.lang.* • Contain the basic Mathematics classes and data types • java.util.* • Contain some commonly used functionalities like Random and Vector (store a set of values) • java.io.* • Contain the data types for Input/output data • New classes introduced by CLDC are in package: • javax.microedition.*
J2ME Overview - CLDC • Only CLDC is not enough for building applications • CLDC is the base for building the above profiles • It separates the machine dependent issues from the applications
J2ME Overview - CLDC • There are two version of CLDC • CLDC 1.0 • CLDC 1.1 • Today, most mobile phones only support 1.0 version • Main differences between 1.0 and 1.1 are • Floating point is added in 1.1 • More Date related classes is added in 1.1 • The minimum memory budget has been raised from 160 to 192 kilobytes
J2ME Overview - MIDP • Mobile Information Device Profile • Profile addresses • Display toolkit, user input methods • Persistent data storage • HTTP 1.1-based networking using CLDC Generic Connection framework
J2ME Overview - MIDP • Scope • Application model • Persistent storage (RMS APIs) • Networking (HTTP, etc.) • User interface (High and low level APIs)
J2ME Overview - MIDP • MIDP Application Lifecycle • MIDP applications, or “MIDlets”, move from state to state in their lifecycle according to a state diagram • Paused – initialized and waiting • Active – has resources and is executing • Destroyed – has released all resources, destroyed threads, and ended all activity
J2ME Overview - MIDP • MIDlet Packaging • MIDlets are packaged in a JAR (like a zip file) file including Class files of the MIDlet(s) • Resource files • Manifest with application properties • Application Descriptors (JAD files) accompany MIDlet JARs and provide deployment information (name, version, size, etc.)
J2ME Overview - MIDP • MIDlet Development Steps • Write your Java application • Compile it • Preverify it • Package it into a JAR file • Create the application descriptor • Deploy and run your application in the J2ME Wireless Toolkit or your device of choice
J2ME Overview - MIDP • There are two version of MIDP: 1.0 and 2.0, we will focus on 2.0 because • Supported by most mobile phone • Enhanced UI • Game and Sound APIs • New Security Model through Signed MIDlets • Enhanced Networking, including HTTPS
J2ME Overview - MIDP • There are many functionality supported by MIDP • Graphical user interface • Media • Networking • Security
J2ME Overview – MIDP 2.0 • Graphical user interface includes • Included in javax.microedition.lcdui.* • “Form” which contains Basic items : • ChoiceGroup -A ChoiceGroup is a group of selectable elements intended to be placed within a Form • ImageItem –Hold an image for display • StringItem – display text • And some others like CustomItem, Gauge, DateField … • Form is used for simple screen output and text input A simple calendar application develop by Form
J2ME Overview - MIDP • Canvas which contains Graphics • Draw images and strings • Draw rectangles, lines and arcs • Set the color used • Canvas also allows you to get “key” input from user • Form are used for some simple applications only have text input • Canvas are used for more interactive applications like games A puzzle game developed by Canvas
J2ME Overview - MIDP • Media • Included in javax.microedition.media.* • Allows playing of audio and video • Allows control the playing of the media like the volume and tone of audio • Security • Included in javax.microedition.pki.* • Handling security certificate • Allows you to get the public and perform encryption or verification
J2ME Overview - MIDP • Networking • Included in javax.microedition.io.* • MIDP devices must implement client portion of HTTP 1.1 protocol • May or may not use IP-based transport • Non-IP Examples: HTTP layered on top of PDC-P for i-mode on WSP for WAP • IP is the protocol that we used in Internet
J2ME Resources • J2ME Development Tools • Sun J2ME Wireless Toolkit (SolarisTM platform, Linux, and Win32), standalone or plugged into Sun ONE Studio Mobile Edition IDE • MIDP reference (Palm OS and Win32), CLDC SDK (Solaris platform, Linux, and Win32) • Numerous third party tools (Borland/Nokia, Metrowerks/Motorola, Siemens, etc.) • Any IDE or Java tool, including J2SE SDK • Netbeans • Tools from the J2ME Archive (XML parsers and SOAP tools, J2ME-based microbrowsers, kAWT, etc.)
J2ME Resources • Sun J2ME Wireless Toolkit
J2ME Resources • Development Tools for the J2ME Platform • Devices are available NOW • Everything needed to start writing great Java applications for mobile devices is available TODAY • Many of the best tools are FREE