From Agentgroup
Revision as of 13:27, 25 March 2008 by Maciej Gawinecki (Talk | contribs) (More...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Movile devices

  • Smartphone. A smartphone is a mobile phone offering advanced capabilities beyond a typical mobile phone, often with PC-like functionality. There is no industry standard definition of a smartphone. For some, a smartphone is a phone that runs complete operating system software providing a standardized interface and platform for application developers. For others, a smartphone is simply a phone with advanced features
  • PDA: A Personal digital assistant (PDA) is a handheld computer, but has become much more versatile over the years. PDAs are also known as small computers or palmtop computers. PDAs have many uses: calculation, use as a clock and calendar, accessing the Internet, sending and receiving E-mails, video recording, typewriting and word processing, use as an address book, making and writing on spreadsheets, scanning bar codes, use as a radio or stereo, playing computer games, recording survey responses, and Global Positioning System (GPS). Newer PDAs also have both color screens and audio capabilities, enabling them to be used as mobile phones (smartphones), web browsers, or portable media players. Many PDAs can access the Internet, intranets or extranets via Wi-Fi, or Wireless Wide-Area Networks (WWANs). Many PDAs employ touch screen technology.
  • Pocket PC: A Pocket PC, abbreviated P/PC or PPC, is a hardware specification for a handheld-sized computer (Personal digital assistant) that runs the Microsoft Windows Mobile operating system. It may have the capability to run an alternative operating system like NetBSD or Linux. It has many of the capabilities of modern desktop PCs. Currently there are thousands of applications for handhelds adhering to the Microsoft Pocket PC specification, many of which are freeware. Some of these devices also include mobile phone features. Microsoft compliant Pocket PCs can also be used with many other add-ons like GPS receivers, barcode readers, RFID readers, and cameras. In 2007, with the advent of Windows Mobile 6, Microsoft dropped the name Pocket PC in favor of a new naming scheme. Devices without an integrated phone are called Windows Mobile Classic instead of Pocket PC. Devices with an integrated phone and a touch screen are called Windows Mobile Professional

Java for mobile devices

Java ME: Java 2, Micro Edition is a group of specifications and technologies that pertain to Java on small devices. The Java ME moniker covers a wide range of devices, from pagers and mobile telephones through set-top boxes and car navigation systems. The Java ME world is divided into configurations and profiles, specifications that describe a Java environment for a specific class of device.

Java-stack.jpg

KVM:The KVM is a compact Java virtual machine (JVM) that is designed for small devices. It supports a subset of the features of the JVM. For example, the KVM does not support floating-point operations and object finalization. The CLDC specifies use of the KVM. According to folklore, the 'K' in KVM stands for kilobyte, signifying that the KVM runs in kilobytes of memory as opposed to megabytes.

Configurations and profiles

The majority (about 80%) of mobile phones in the world today are feature phones. Devices of this type typically include a high-resolution screen, multiple forms of messaging (SMS, MMS, IM, Email), basic 2D and 3D gaming, a camera, music player, Internet browser, etc.

Powering all this functionality is a core set of Java ME technologies known as CLDC (the Java VM) and MIDP (the mobile information device profile). CLDC and MIDP are the most widely adopted Java ME application platforms used in mobile phones today. Layered on this base is a set of additional Java ME technologies often called “optional packages” that come in the form of JSRs (Java Specification Requests).

  • configuration: In Java ME, a configuration defines the minimum Java runtime environment for a family of devices: the combination of a Java virtual machine (either the standard Java SE virtual machine or a much more limited version called the CLDC VM) and a core set of APIs:
    • CDC: The Connected Device Configuration (CDC) is a specification for a Java ME configuration. Conceptually, CDC deals with devices with more memory and processing power than CLDC; it is for devices with an always-on network connection and a minimum of 2 MB of memory available for the Java system.
    • CLDC: The Connected, Limited Device Configuration (CLDC) is a specification for a Java ME configuration. The CLDC is for devices with less than 512 KB or RAM available for the Java system and an intermittent (limited) network connection. It specifies a stripped-down Java virtual machine1 called the KVM as well as several APIs for fundamental application services. Three packages are minimalist versions of the Java SE java.lang, java.io, and java.util packages. A fourth package, javax.microedition.io, implements the Generic Connection Framework, a generalized API for making network connections.
  • profile:A profile is a set of APIs added to a configuration to support specific uses of a mobile device. Along with its underlying configuration, a profile defines a complete, and usually self-contained, general-purpose application environment. Profiles often, but not always, define APIs for user interface and persistence; the MIDP profile, based on the CLDC configuration, fits this pattern. Profiles may be supersets or subsets of other profiles; the Personal Basis Profile is a subset of the Personal Profile and a superset of the Foundation Profile:
    • Foundation Profile: The Foundation Profile is a Java ME profile specification that builds on CDC. It adds additional classes and interfaces to the CDC APIs but does not go so far as to specify user interface APIs, persistent storage, or application life cycle. Other Java ME profiles build on the CDC/Foundation combination: for example, the Personal Profile and the RMI Profile both build on the Foundation Profile.
    • Personal Profile: The Personal Profile is a Java ME profile specification. Layered on the Foundation Profile and CDC, the Personal Profile will be the next generation of PersonalJava technology. The specification is currently in development under the Java Community Process (JCP).
    • MIDP: The Mobile Information Device Profile (MIDP) is a specification for a Java ME profile. It is layered on top of CLDC and adds APIs for application life cycle, user interface, networking, and persistent storage.
    • RMI Profile: The RMI Profile is a Java ME profile specification designed to support Java's Remote Method Invocation (RMI) distributed object system. Devices implementing the RMI Profile will be able to interoperate via RMI with other Java devices, including Java 2, Standard Edition. The RMI Profile is based on the Foundation Profile, which in turn is based on CDC.

Launching an application

  • Requirements for Pocket PC with Windows Mobile 5.0
    • ActiveSync for moving application
    • phoneME Feature MR2 for Windows Mobile. The phoneME Feature software includes the latest milestone & in-development implementations of CLDC and MIDP as well as implementations for a number of optional package JSRs.

Developing application

  • Requirements for devoloping and testing MIDlets on desktop machine:
    • Desktop emulators:
      • Java ME WTK (Windows & Linux). The J2ME Wireless Toolkit includes several different emulators that you can use to test your applications. When you click the Run button in the J2ME Wireless Toolkit, your application is launched in the currently selected emulator. The J2ME Wireless Toolkit 2.2 contains four main device emulators:
        • DefaultColorPhone is a device with a 240-by-320-pixel color screen.
        • DefaultGrayPhone has a 108-by-208-pixel grayscale screen.
        • MediaControlSkin is similar to the default phone emulator and has a color screen of 108-by-208 pixels, but its buttons are labeled with controls like a music player: a square for stop, a triangle for play, volume control buttons, etc.
        • QwertyDevice is a smartphone with a 636-by-235 color screen and a miniature QWERTY keyboard.
      • Qt/Embedded Virtual Framebuffer (Linux)
    • IDEs
      • The J2ME Wireless Toolkit includes a GUI tool that automates some of the tedious details of building and packaging MIDlets, providing a simple path from source code to running MIDlets. At the same time, the J2ME Wireless Toolkit is a relatively lightweight solution, almost a miniature IDE, not something that will choke your machine.
      • Other development environments generally use the J2ME Wireless Toolkit as a plug-in anyhow, so your experiences are likely to be similar no matter what tool you use. They come from device manufacturers, wireless carriers, IDE vendors, and open source communities, including the following:
        • Borland JBuilder X Mobile Edition
        • IBM WebSphere Studio Device Developer
        • Research In Motion BlackBerry Java Development Environment
        • Sun Java Studio Mobility
        • NetBeans IDE 4.x
        • Eclipse J2ME plug-in
        • Nokia Developer's Suite for J2ME

Tooling

  • Java ME WTK: The Sun Java Wireless Toolkit is a set of tools that provides developers with an emulation environment, documentation and examples for developing Java applications for small devices. The Sun Java WTK is based on the Connected Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP) reference implementations, and can be tightly integrated with Forte for Java.
  • NetBeans Mobility Pack is a Java Integrated Development Environment (IDE) for developing applications that can be deployed to Java technology-enabled mobile devices.
  • The phoneME Feature software includes the latest milestone & in-development implementations of CLDC and MIDP as well as implementations for a number of optional package JSRs.

More...