This four-day training course introduces experienced Java programmers to the Java 2 Micro Edition, or J2ME, and develops skills in Java programming for wireless devices via the Mobile Information Device Profile, or MIDP. (The MIDP is the "profile" defined within the J2ME for small mobile devices such as cellphones and PDAs.) The training course begins with a top-down tour of the J2ME architecture, focusing on wireless programming via the Connected, Limited Device Configuration, or CLDC, and the MIDP. Students learn the simple Core API of the CLDC - primarily by contrast to the Java 2 Standard Edition Core API - and then move into the individual packages of the MIDP. The training course focuses on application of concepts through substantial hands-on exercises: instructor-led demonstrations and individually-performed labs. A moderately complex MIDP application ? a "MIDlet" - is developed over the training course as a case study in all the training course topics and skills.
This training course is for experienced Java programmers wishing to use the J2ME Platform
Java programming experience.
Delivery Method: Instructor led, group-paced, classroom-delivery learning model with structured hands-on activities.
The training course combines lectures with practical exercises that help the delegates to put what they have learned on the training course into practice. The exercises specifically build on what has been recently taught and are built up as the training course progresses.
At the end of this training course, students should be able to:
- Understand the Java 2 Micro Edition architecture, and the stacking of virtual machine, configuration, and profile to address different types of "micro" devices.
- Understand the limitations of mobile devices and see how they drive the design of the Connected, Limited Device Configuration, and the supporting "K" Virtual Machine.
- Identify the key differences between the JVM and the KVM, including build process and code security implementations.
- Understand the design and mission of the Mobile Information Device Profile, and see how programming for mobile devices is fundamentally different from J2SE programming.
- Code cleanly to the CLDC using the KVM.
- Build a simple, functioning MIDlet.
- Understand the framework for packaging and deploying MIDlets to devices.
- Build user interfaces for mobile devices, including text presentation, input controls, 2D graphics, and multi-screen navigation.
- Handle pointer and keypad input in a MIDlet.
- Implement menus and commands.
- Save and re-load information from one MIDlet run to the next using the MIDP Record Management System.
- Make network connections from the mobile device.
- Retrieve remote information via HTTP, including dynamic information based on user requests.
- Use multiple threads and MIDP timers effectively.
- Write memory-conservative code for various tasks, and understand the implications of various techniques on heap usage.
- Understand the use of J2ME and J2EE components to compose a seamless networked application.
The J2ME Architecture
- Micro Devices
- Common Limitations
- The Need for J2ME
- The J2ME Software Layer Stack
- Virtual Machine
- The CLDC and the KVM
- Tools and Development Process
- Code Security
2. The Connected, Limited Device Configuration
- Classification of CLDC Target Devices
- The Core API
- Limitations of Java Language Support in CLDC
- Differences between CLDC and J2SE Packages
- The java.lang Package
- The java.util Package
- CLDC Collections API
- The java.io Package
- CLDC Streams Model
- Using the KVM
3. The Mobile Information Device Profile
- MIDP Target Devices
- Relationship of MIDP to CLDC
- MIDP Support
- MIDlet Lifecycle
- Building, Packaging and Deploying MIDlets
- Application Descriptors
- The Application Manager
- Summary of MIDP Packages
- MIDP in Context
4. The High-Level User-Interface API
- Presenting a User Interface in a MIDlet
- Organizing a UI by Screens
- The Displayable Hierarchy
- Forms and Items
- Layout Control, or the Lack Thereof
- The TextField Class
- The DateField Class
- The ChoiceGroup Class
- Other Item Classes
5. The Low-Level User-Interface API
- The Canvas Class
- 2D Graphics
- Drawing Text
6. Event Handling
- MIDP Event Architecture
- High-Level Event Handling
- Item State Changes
- Low-Level Event Handling
- Keypad Input
- Pointer Input
- The Model/View/Controller Pattern
- MVC in Application Design
- Model Events
7. The Record Management System
- The Challenge of Wireless Persistence
- Remote Storage via MIDP Networking
- Local Storage via the Record Management System
- Scope of Record Management
- Defining a Record
- Writing Information
- Committing Changes
- Reading Information
- Using Streams for Record I/O
- Implementing Object Persistence
- The CLDC Streams Model
- The CLDC Networking Package
- The MIDP Implementation
- Supported Protocols
- Creating a Connection
- Making an HTTP Request
- Building a CGI String
- Reading Information
- Controlling Download Size
- Using HTTP POST
9. Threads and Timers
- The CLDC Threading Model
- Thread and Runnable
- The Timer Class
- The TimerTask Class
- Scheduling TimerTasks
10. Memory Management
- Importance of Memory Conservation in MIDP
- Memory Management Techniques
- Controlling Object Creation
- Reusing Objects
- Creation on Demand
- Data Compression
- Using Arrays Effectively
- String Manipulation with StringBuffer
11. Best Practices
- Exception Handling
- Cleaning Up Resources
- UI Design Considerations
- Portability Considerations
- Cross-Platform Development
12. Mobile Devices in Distributed Systems
- Server-Side Support for Mobile Devices and Client Applications
- The Java 2 Enterprise Platform (J2EE)
- Multi-Tier Architecture
- Java DataBase Connectivity
- Enterprise JavaBeans
- Servlets and JSPs
- PC-Based Fat and Thin Clients
- Mediation for Wireless Clients
- WAP and WML
- Web Services for MIDP