1. Workshop on
Mobile Services and Android Applications
MOBILE APPs DEVELOPMENT PLATFORMS
S. Amirtharaj
2. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMS
- Java 2 Platform, Micro Edition (J2ME)
- Wireless Markup Language (WML)
- Compact HyperText Markup Language (cHTML)
- eXtensible HyperText Markup Language (XHTML)
4. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
JavaTM 2 Platform, Micro Edition (J2ME)
What is J2ME?
The JavaTM 2 Platform, Micro Edition (J2ME) is the Java platform for
consumer and embedded devices such as mobile phones, PDAs, TV set-top
boxes, in-vehicle telematics systems, and a broad range of embedded
devices.
Like its enterprise (J2EE) and desktop (J2SE) and smart card counterparts, the
J2ME platform is a set of standard Java APIs defined through the Java
Community ProcessSM by expert groups that include leading device
manufactures, software vendors and service providers.
What J2ME provide you?
1. It delivers the power and benefits of Java technology tailored for consumer
and embedded devices (a flexible user interface, robust security model,
broad range of built-in network protocols)
2. It supports for networked and disconnected applications.
3. It allows you to write applications once, and download them dynamically
and leverage each device’s native capabilities.
5. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Architecture
Optional Packages
Personal Profile
Personal
Basis Profile
Foundation Profile
Connected Device
Configuration (CDC)
JVM
Mobile Phones &
Entry-level PDAs
Optional Packages
MDP
Connected Limited
Device Configuration
(CLDC)
KVM
High-end PDAs
TV set-top boxes
Embedded devices
6. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Architecture
J2ME architecture defines configurations, profiles, and optional packages as
elements for building complete Java runtime environments
Meet the requirements for a broad range of devices and target markets.
Each combination is optimized for the memory, processing power, and I/O
capabilities of a related category of devices.
The result is a common Java platform that fully leverages each type of device to
deliver a rich user experience.
Three types of basic elements:
Profiles – provide a complete runtime environment targeted at a specific device categories.
Configurations – provide the base functionality for a particular range of similar devices.
Optional packages – provide a base for further extension based on related setting.
7. J2ME CLDC & CDC
Connected Limited Device Configuration (CLDC):
- CLDC is the smaller of the two configurations.
- It is designed for devices with intermittent network connections, slow
processors and limited memory. Typical examples:
- Mobile phones Two-way pagers PDAs,
- These devices typically have either 16-bit or 32-bit CPUs, and a
minimum of 128 KB to 512 KB of memory for the Java platform
implementation and associated applications.
Connected Device Configuration (CDC):
- CDC is designed for devices that have more memory, faster processors,
and greater network bandwidth, such as
- TV set-top boxes, residential gateways, two-way pagers, POS terminals
- in-vehicle telematics systems, and high-end PDAs….
CDC includes a full-featured java virtual machine (JVM), and a much
larger subset if the J2SE platform than CLDC.
- Most CDC-targeted devices have 32-bit CPUs and a minimum of 2MB of
memory.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
8. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME CDC
Connected Limited Device Configuration (CLDC) Key Features:
- Easily implemented by consumer electronics and embedded device
manufactures.
- Comes with a JavaTM virtual machine (JVM), class library, APIS, and
Foundation Profile.
- Standardized by the Java Community ProcessTM program for devices with 2MB
or more memory.
- Devices currently using the Personal JavaTM application environment can be
ported to CDC.
- CDC VM is built with the same specification as the Java 2 platform, standard
edition (J2SETM) virtual machine.
- Available today as a free download.
- The CDC is a class library with a minimal set of APIs from J2SETM, including
java.lang – VM system classes java.util – underlying java utilities
java.io – java File I/O java,.net – UDP datagram and File I/O
java.text – bare minimal support for error messages
java.security – minimal fine-grain security and encryption for object serialization
9. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Profiles
J2ME Profiles:
Provide a complete runtime environment targeted at specific device categories,
configurations.
A) Mobile Information Device Profile (MIDP):
-It is designed for mobile phones and entry-level PDAs.
-It offers the core application functionality required by mobile applications,
including a) user interface, b) network connectivity
c) local data storage, d) application management
B) Foundation Profile (FP):
- CDC profiles are layered so that profiles can be added as needed to provide
application functionality for different types of devices.
- It is the lowest level of profile for CDC.
- It provides a network-capable implementation of CDC that can be used for
deeply embedded implementations without a user interface.
- It can also be combined with Personal Basis Profile and Personal Profile for
devices that require a graphic user interface (GUI).
10. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Profiles
C) Personal Profile (PP):
- PP is the CDC profile aimed at devices that require full GUI or Internet
applet support, such as high-lend PDAs, communicator-type devices, and
game consoles
- It includes the full Java Abstract Window Toolkit (AWT) libraries and offers
Web fidelity, easily running Web-based applets designed for use in desktop
environment.
- It replaces Personal JavaTM technology and provides Personal Java
applications through J2ME platform.
D) Personal Basis Profile (PBP):
- PBP is a subset of PP.
- It provides an application environment for network connected devices that
support a basic level of graphic presentation or require the use of specialized
graphical toolkits for specific applications.
-Typical device examples are: TV set-top boxes, in-vehicle telematics systems,
-And information kiosks.
-Both PP and PBP are layered on top of CDC and FP.
11. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Optional Packages
Optional Packages:
- PP is the CDC profile aimed at devices that require full GUI or Internet
applet support, such as high-lend PDAs, communicator-type devices, and
game consoles
- It includes the full Java Abstract Window Toolkit (AWT) libraries and offers
Web fidelity, easily running Web-based applets designed for use in desktop
environment.
- It replaces Personal JavaTM technology and provides Personal Java
applications through J2ME platform.
12. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME – MIDP Architecture
Optional Packages
Game User Interface Media
Application Management
End-to-End Security
CLDC
KVM
Local Data
Storage
Push
Registry Connectivity OTA
Provisioning
MIDP
13. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
The MIDP combined with CLDC, is the javaTM runtime environment for today’s
mobile information devices such as phones and entry level PDAs.
- MIDP is defined by through the Java Community ProcessSM program
- MIDP defines a platform for dynamically and securely delivering highly
graphical, networked applications to mobile information devices.
- MIDP provides the core application functionality required by mobile
applications as a standardized java runtime environment and set of java APIs.
- Using MIDP, developers can write applications once that are optimized for
today’s mobile information devices.
Deployment Status:
- It has been widely adopted as the platform of choice for mobile applications.
- It is deployed globally on millions of mobile phones and PDA, supported by
leading Java technology integrated development environment (IDE).
14. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
MIDP is designed for mobile users:
- Allow them to write networked applications for mobile devices.
- These mobile applications can be download dynamically and run on the
mobile devices.
- They can be easily updated and removed by the end user.
Mobile user interface support based on a high-level user interface API.
This helps developers to build easy to use, highly graphical and portable
applications optimized for mobile information devices.
MIDP user interface functionality includes:
- Pre-defined screens for displaying and selecting lists, editing text, popping up
alert dialogs, and adding scrolling tickers.
- Each form (or screen) can include any no. of predefined items – images,
ready-only text fields, editable text fields, editable date and time fields, charts,
and choice groups as well as any custom items added by developers
- All screens and items are device-aware with built-in support for the native
display size, input and navigation capabilities. portable and flexible.
15. Mobile Information Device Profile (MIDP)
Multimedia and Game Functionality
MIDP is ideal for building portable games and multimedia applications.
- A lower level user interface API provides developers great control of graphics
and inputs when they need it.
- A game API adds game-specific functionality, such as sprites and tiled layers
that takes advantage of native device graphics capabilities.
- Built-in audio provides support for tones, tone sequences and WAV files.
- Mobile Media API (MMAPI) can be used as an optional package for MIDP to
add video and other rich multimedia content.
Over-the-Air Provisioning
- The MIDP specification defines how MIDP applications are discovered,
installed, updated and removed on mobile information devices.
- The MIDP also enables a service provider to identify which MIDP
applications will work on a given device.
- Its OTA Provisioning model has been defines to delivery a reliable, secure
provisioning solution.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
16. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
Extensive Connectivity enable developers to fully leverage the native data
network and messaging capabilities of mobile information devices.
- It supports leading connectivity standards:
HTTP, HTTPS, datagram, sockets, server sockets, and serial port comm.
It also supports the Short Message Service (SMS0 and Cell Broadcast Service
(CBS) capabilities of GSM and CDMA network through the Wireless
Messaging API (WMA) optional package.
- It supports a server push model. A push registry keeps track of applications
registered to receive inbound information from the network.
When information arrives, the device decides if to start the application based
on user preference.
The push architecture enables developers to include alerts, messaging and
broadcasts in MIDP applications, and leverage the event-driven
capabilities of devices and carrier network.
17. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
End-to-End security based on a robust security model (with open standards) to
protect the network, applications and mobile information devices.
- The use of HTTPS leverages existing standards such as SSL and WTLS to
enable the transmission of encrypted data.
- By default MIDP applications are not trusted, and are assigned to untrusted
domains that prevent access to any privileged functionality.
- To gain privileged access, a MIDP application must be assign to a specific
domains that are defined on the mobile device, and are properly signed using
the X.509 PKI security standard, installed and granted associated permissions.
It must be successfully authenticated.
19. An Overview of cHTML Markup Language
What is the Compact Markup Language (cHTML)?
• Similar to WML and XHTML, cHTML is another thin markup language.
• It is a well-defined subset of the HTML(2.0, 3.2, and 4.0) specifications.
• It can be viewed as a content description language to generate pages for
iMode devices.
Objective of cHTML:
1. It was designed for small information appliances, such as smart phones,
communicators, and PDAs.
2. Its development was initiated by the W3C as an alternative development of
the trend of HTML expanding towards to support for a richer multimedia
document format.
History of cHTML:
• It was submitted as a Note to the W3C in 1998, and is available discussion
purpose only.
• The 3WC has not endorsed cHTML, nor made any contribution to the
language in anyway.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
20. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
The creators of cHTML have taken the following requirements into account:
• Hardware restrictions of the devices, including limited memory, low power
central processing unit (CPU), and small displays.
• The navigation restrictions of the device: Moving between sets of
information has to be possible with a minimum no. of operations.
• Wireless network agnostic: the markup language does not depend on the
underlying wireless protocol being used.
The design of cHTML is based on four main principles:
• It is completely based on current HTML W3C recommendations.
• It is a light specification, allowing it to run on mobile devices.
• It can be viewed on a mono-screen display.
• It is easy for users to operate.
cHTML is one of the most popular subset of HTML. Its popularity is based
largely on the fact that cHTML is the markup language used by the
phenomenally successful i-Mode services from NTTDoCoMo in Japan.
21. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
Major features of Compact Markup Language (cHTML):
To accomplish the goals of the cHTML, certain features of HTML have to be
excluded. The typical examples are:
• Support for frames and tables
• JPEG image support, image maps
• Multiple-character fonts and styles
• Background color and images
• Style sheets
Basic hardware requirements of cHTML-based mobile devices:
• Small memory: i.e.128-512Kbytes RAM, and 512K-1Mbytes ROM
• Low power CPU: i.e. 1-10 MIPS class CPU for embedded systems
• Small display: i.e. 50x30 dots, 100x72 dots, and 150x100 dots
• Restricted colors: i.e. mono-color (black and white)
• Restricted character fonts: i.e. only single font
• Restricted input method: several control buttons and number buttons
22. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
Major benefits of cHTML:
• cHTML-based websites also can be accessed by Web users through regular
internet accesses.
• It provides a simple way for mobile devices users to access the Internet.
• I-mode-compatible HTML websites are easy to navigate, since all basic
operations can be performed using a combination of four buttons: Cursor
forward, Cursor backward, Select, and Back (Return to previous page). Most
phone browsers also provide a "Page Forward" button.
Issues of cHTML:
o Standard issue: It is not standard so it is a transition technology.
o Original version of cHTML does not support scripting. Later Sun
Microsystems and DoCoMo are working together to add on.
o Not XML-based sloppy programming in cHTML.
Now cHTML is being replaced by XHTML in the i-Mode service
XHTML becomes the language of wireless Internet.
24. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML (http://www.w3.org/TR/xhtml1/)
What is XHTML?
• XHTML stands for the eXtensible HyperText Markup Language.
• “XHTML” is not just refer to a language, but a name of a family of document types
which collectively form this markup language.
• XHTML is an XML-compliant version of HTML 4.
• XHTML is the direction in which wireless markup language are moving.
• XHTML 1.0 became an official W3C recommendation in early 2000, making it a Web
standard. It is almost identical to HTML 4.01 with a few rules added for XML
compliancy.
The Need for XHTML:
• There are many ways to express and present information using markup
languages. In XML, it is relatively easy to introduce new elements or
additional element attributes. XHTML is designed to provide a standard
means for developers and users to accommodate these extensions.
• Alternative ways of accessing the Internet are constantly being introduced.
The XHTML family is designed with general user agent interoperability in
mind.
25. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
Why XHTML?
- Current desktop web browsers allow for very poorly formatted HTML Web
pages making it difficult to have cross-platform, or even cross-browser,
compatibility.
- Although poor programmed HTML pages work ok on browsers on desktops, it
causes a lot of problems in working with mobile browsers on mobile devices
(such as PDAs, mobile phones) due to their limited computing power and
resources.
This is where XML comes into play because:
• XML requires all code to be programmed correctly, making the job of the
interpreter (or the browser) much easier.
• XML is a language of describing data, and HTML is a language of
presenting data. When combing them together, the result is a markup
language that can be used now and is adaptable to future change.
26. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
Next Step of XHTML:
• In the not-too-distant future, XHTML is intended to be a replacement for
HTML. Most of new desktop Web browsers will support XHTML
natively, resulting in a higher level of compatibility among browsers.
• W3C has defined “XHTML Basic” as a new standard for compact
transmission of markup to wireless and mobile devices.
• With support from both the Open Mobile Alliance and W3C, XHTML
Basic is assured to have widespread acceptance now and in the future.
27. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
How XHTML differs from HTML?
Most important differences :
• XML requires all code to be programmed correctly, making the job of the
interpreter (or the browser) much easier.
• XHTML documents must be well-formed because XHTML is XML-based
documents must conform to XML syntax rules.
• XHTML elements must be properly nested.
• Tags and attributes must be lowercase.
• ALL (XHTML element) must be closed.
• All attribute values must be enclosed in quotation marks.
• A DOCTYPE declaration is required.
The major advantage of XHTML over HTML are:
• Easily to take advantage of new coding techniques
• Solve the problems with the earlier versions have been fixed
• Good extensibility: XML-based data description capability
• Good portability: deal with different browsers on mobile devices
28. An Overview of XHTML
What is XHTML Basic?
• XHTML Basic is a W3C recommendation and a basic version of XHTML
created specifically for mobile devices.
• XHTML Basic (document type) includes the minimal set of modules
required to be an XHTML host language document type including the use of
images, forms, basic tables, and object support. XHTML Basic defines a
document type that is rich enough for advanced content authoring yet can be
used across a variety of clients, including desktops, PDAs, TV, and mobile
phones.
• XHTML Basic is a subset of XHTML that removes a number of features—
scripts, events, frames, and many text and font presentation directives.
• XHTML appears to be positioned to supercede WML, and perhaps provide
the common ground between i-mode and WML.
• XHTML Basic could be designed to be compatible with WML, although it's
not clear if or when this will happen.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
29. An Overview of XHTML
What is XHTML-MP?
XHTML Mobile Profile 1.0 is the official mark-up language of WAP 2.0 created
by the Open Mobile Alliance (OWA) (formerly the WAPForum).
The goal is to converge the mark-up language for wireless devices with one used
for World Wide Web.
XHTML-MP is a superset of XHTML Basic.
XHTML-MP takes advantages of XHTML modularization and is very extensible
permitting the addition of new elements as required.
Documents based on the Basic Profile of XHTML will be completely operable in
XHTML-MP browsers.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
30. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
History of Wireless Mark-up Languages
Openwave
Ericsson
Nokia
Netscape/AOL
Microsoft
NTT(DoCoMo)
1997 1999 2001
HDML
ITTP
TTML
WML
HTML
XHTML, CSS
cHTML
32. An Overview of WML
What is the Wireless Markup Language (WML)?
• The WML is a part of Wireless Application Environment (WAE) as defined
in the Wireless Application Protocol (WAP).
• Unlike HDML, WML is based on XML, making the syntax requirements
somewhat stricter
• Using WML, we can develop wireless internet applications run on a mobile
browser on mobile devices
WML has been influenced by a number of languages, such as HTML, HDML
(Handheld Device Markup Language), XML, and an emerging document
structure language.
- From HTML, WML designers learned its syntax.
- From HDML, WML designers learned its application model -> which is
focus on the support of interactive operations between a browser and a
user.
- From XML, WML designers makes it XML-compliant to gain the power of
describing data and information.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
33. An Overview of WML
Objectives:
• WML is targeted directly at mobile information devices such as
cellular phones, PDAs, two-way pagers, and smart phones.
• WML is designed to address to the limitations and connectivity
requirements of lightweight, wireless devices in memory, data inputs,
display screen, and computing power.
History of WML:
• WML is a successor of HDML, developed by Openwave, Nokia, Motorola,
and others as represented by the WAP Forum (now the Open Mobile
Alliance) since 1999.
• WML is defined as a part of the WAP standard, and gone through a
number of releases, such as WML 1.1, 1.2, 1.2.1, 1.3, and so on.
Until now, WML gas generated tremendous support throughout the wireless
industry. It has a wide scale of deployment throughout Europe, North
America, South America, and parts of Asia.
Most of the handsets being shipped in these regions support WAP and include
WML browsers.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
34. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
Major WML Features:
• A WML document is called a deck (similar to a HTML page).
• Each deck includes a number of cards which contains content for viewers
and instructions to the WML browser.
• Each card may include
(A) user interface elements:
text, pictures, list of choices, text field places for inputs.
(B) Actions that define what happens next for event, links,..
Event bindings – link events (such a key) to a task.
(C) External elements, such as references to pictures and scripts.
• Each WML document must consists of the followings:
• (A) Markup elements with attributes, tags,
• (B) Comments
• (C) WMLScripts
• (D) Variables – allows you to alter your content dynamically.
• (E) Images
• (F) Simple Tables
• (G) Links
• (H) Events, Tasks, and Bindings
35. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
A WML event is some occurrence of interest that can be recognized by the
browser.
Types of events: a) intrinsic events and b) user-initiated events
• Intrinsic events are triggered by WML elements, for example, a card can
trigger an event when the browser “enters” it.
• User-initiated events are triggered by direct action of the users, such as the
selection of an item from a menu.
A task is an activity that the browser can perform.
When the browser detects the occurrence of an event that has an associated task,
it executes the corresponding tasks.
There are for types of WML tasks:
• The go and prev tasks, direct the browser to navigate to another card.
• The go task initiates “forward” navigation to a new URL.
• The prev task instructs the browser to return to the previous location popped
from the history stack.
• The refresh task causes the browser to redisplay the current card.
• The noop task tells the browser to do nothing.
36. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
Linking Events to Tasks:
WML allow you to define handlers for them using the onevent and doelements,
respectively.
Intrinsic Event Types:
• Onenterforward – occurs when a card is entered as a result of forward
navigation.
• Onenterbackward – occurs when a card is entered as a result of backward
navigation.
• Ontimer – Occurs when a timer expires.
• Onpick – Occurs when a user selects or deselects an option in a list.
Since WML is XML-based, it has to adhere to the rules of XML.
Major differences between HDML and WML:
• All WML elements must be closed.
• WML elements must be properly nested.
• WML documents must be well-formed.
• WML tag names must be lowercase
37. Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
What is WMLScript:
• WMScript provides a way to add more advanced capabilities to WML
applications. Just as JavaScript of VBScript may be used in conjunction with
HTML.
• WMLScript is used with WML to provide client-side logic.
The following are some of the most common uses of WMLScript for WAP
applications.
• Validation of user input
• Access device facilities, such as adding numbers to an address book
• Creation of dialogs and messages, avoiding round-trips to the sever
Within your WMLScript pages, you can
• Create both For and While loops
• Create functions, and libraries of functions
• Display dialog boxes
• Have advanced interaction with the microbrowser
Make sure both microbrowser and the WAP gateway have WMLScript support.