Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA

Similar documents
DAY 3 J2ME March 2007 Aalborg University, Mobile Device Group Mobile Phone Programming

DAY 3 J2ME Aalborg University, Mobile Device Group. Mobile. Mobile Phone Programming

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course?

Minne menet, Mobiili-Java?

Developing Mobile Applications

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level

Mensch-Maschine-Interaktion 2

Developing mobile UI

J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES

J2ME crash course. Harald Holone

Software Development & Education Center. Java Platform, Micro Edition. (Mobile Java)

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol)

SUN. Sun Certified Mobile Application Developer for the Java 2 Platform, Micro Edition, Version 1.0

JUGAT meeting. Roman Waitz Development. MATERNA Information & Communications

JAVA. Java Micro Edition

Praktikum Mobile Productivity

Java ME Developer Guide for MOTOMAGX 1.0. Developer Guide

CM0256 Pervasive Computing

Building a Java ME Test Suite in 15 Minutes

phoneme: High-performance, product-quality GPLv2 CDC + CLDC stacks Terrence Barr

Java Community Process Program: State of the Community State of the Community December 2003

JavaME TAMZ. Department of Computer Science VŠB-Technical University of Ostrava

Mobile Information Device Profile (MIDP) Alessandro Cogliati. Helsinki University of Technology Telecommunications Software and Multimedia Laboratory

Nutiteq Maps SDK tutorial for Java ME (J2ME)

NOKIA 12 GSM MODULE JAVA TM IMLET PROGRAMMING GUIDE. Copyright Nokia. All rights reserved. Issue

TAMZ. Department of Computer Science VŠB-Technical University of Ostrava

What's New In Mobile & Embedded Java? A Technology Update

Overview of Java 2 Platform, Micro Edition (J2ME )

All about the new SCMAD Certification Exam

Acknowledgments Introduction p. 1 The Wireless Internet Revolution p. 1 Why Java Technology for Wireless Devices? p. 2 A Bit of History p.

Requirements and Issues of V**s for Mobile Terminals

Determining the Best Approach

TAMZ I. (Design of Applications for Mobile Devices I) Lecture 1. Introducing Mobile Platforms.

Accessing DB2 Everyplace using J2ME devices, part 1

Copyright 2004 by Vincent Claes, Heusden-Zolder, Belgium

BVRIT HYDERABAD College of Engineering for Women Department of Information Technology. Hand Out

Petr Suchomel Architect, NetBeans Mobility

Wireless Java Technology

Sortware Comprehension and Μaintenance

Java Technology-Based VAS in China Mobile: Today and Tomorrow

Developing Games for J2ME Technology- Enabled Mobile Devices

Project Sens-ation. Research, Technology: AXIS, Web Service, J2ME

How many of us own. Mobile markets and development environments. Petri Vesikivi (Erkki Rämö) Fixed Telephone 1.3B TV 1.5B Credit card 1.

Project Overview. Readings and References. Initial project motivation. Opportunity. References. CSE 403, Winter 2003 Software Engineering

TAMZ. JavaME. MIDlets. Department of Computer Science VŠB-Technical University of Ostrava

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma

Application Development using J2ME Architecture for Device Independence

Developer s overview of the Android platform

Chapter 13 Add Multimedia to Your MIDlets

Project Overview. CSE 403, Spring 2003 Software Engineering.

Project Overview. Readings and References. Opportunity. Initial project motivation. References. CSE 403, Spring 2003 Software Engineering

DoD Mobile Client- A Comparison between J2ME and Symbian Platforms

Programming Wireless Devices with the Java 2 Platform, Micro Edition

Bluetooth Scatternet Application. Sun Code for Freedom

مريم سعد جعفر رانيا عبد السجاد علي سامي سمادير عبد العباس ياسمين عبد االمير

Radical GUI Makeover with Ajax Mashup

Mobile Application Development. J2ME - Forms

ST.MARTIN'S ENGINEERING COLLEGE Dhulapally,Secunderabad-014

Mobile Messaging Using Bangla

Java 2 Micro Edition Server socket and SMS

Oracle FLEXCUBE Direct Banking

Chapter 6 IMS Client Development and Deployment

How ercp stacks up against Android and other Mobile Rich Client Platforms. Ken Walker, J9 Java Class Libraries David Girle, Client Solutions WPLC

Application Development Using J2ME. Evaluation of Intrinsic Platform Limitations

Dr. Char-Shin Miou Chunghwa Telecom. Co. April 7, 2011

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Building Motion and Noise Detector Networks from Mobile Phones

CS434/534: Topics in Networked (Networking) Systems

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

Wireless service developing for ubiquitous computing environments using J2ME technologies

MIDP3: Mobile device media power train

GrinderBench for the Java Platform Micro Edition Java ME

MobiVine. A Middleware Layer to Handle Fragmentation of Platform Interfaces for Mobile Applications

Mobile application development J2ME U N I T I

Open application environments in mobile devices: Focus on JME and Ericsson Mobile Platforms

GUIDELINES FOR GAME DEVELOPERS USING NOKIA JAVA MIDP DEVICES Version Nov 02

MMAPI (Mobile Media API) Multimedia Framework for Mobile Devices

Contents. Mobile Middleware Course. Mobile Platforms Sasu Tarkoma. Challenges. Mobile Platforms WAE. Examples

Reach the Next Billion with Engaging Apps: Full Developers

Series 40 6th Edition SDK, Feature Pack 1 Installation Guide

Java 2 Platform, Micro Edition

Java Card 3 Platform. Peter Allenbach Sun Microsystems, Inc.

Draft Proposal for an Eclipse Mobile Development Suite Architecture. Jon Dearden Ken Wallis

Introduction to Mobile Application and Development

Making The Future Java

Mobile Application Ecosystems

IGEEKS TECHNOLOGIES. Software Training Division. Academic Live Projects For BE,ME,MCA,BCA and PHD Students

Actual4Test. Actual4test - actual test exam dumps-pass for IT exams

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H

Java Technology for the Mobile Mass Market

The Java Mobile and Embedded Platform: Now and the Future

Developing Ajax Web Apps with GWT. Session I

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

JXTA for J2ME Extending the Reach of Wireless With JXTA Technology

Mobile Game Programming. Just that facts.

ProvideX On Handhelds

Java 2 Micro Edition JavaCommnity.Org. (

Building the Enterprise

Wireless Services in Faculty Information System

Graphics API for J2ME (JSR 184). The Sun J2ME Wireless Toolkit supports the development of Java applications that run on devices such as cellular

Transcription:

Mobile Application Development Introduction Dr. Christelle Scharff cscharff@pace.edu Pace University, USA

Objectives Getting an overview of the mobile phone market, its possibilities and weaknesses Providing an overview of the J2ME architecture and define the buzzwords that accompanies it

Why mobile phones? Nowadays mobile phones outnumber desktop computers for Internet connections in the developer world A convenient and simpler alternative to the desktop/laptop for all (developed and developing countries) Mobile phones are computers! Some numbers and important facts: Target of 10 million Iphones sales by the end of 2008 (just one year after being launched) Google phone launched in 2008 70% of the world s mobile subscriptions are in developing countries, NY Times April 13, 2008

Global Handset Sales by Device Type http://linuxdevices.com/files/misc/strategyanalyticsmobilephone-segments.jpg

Devices A wide variety of devices by the main vendors: E.g, Nokia, Motorala, Sony Ericsson A wide variety of operating systems E.g., Blackberry, Palm OS, Windows CE/Mobile, Symbian, motomagx, linux A wide variety of development environments E.g., Java ME, Qualcomm s BREW, Google Android, Google App Engine (GAE) for mobile web applications, JavaFX Programming languages: Java, Python, Flash Lite, Objective C, C, C++, JavaScript, HTML and CSS for Widgets

Operating Systems http://mobiledevices.kom.aau.dk

Why Java? The Java platform is Safe the code executes within the JVM Robustness automated garbage collection prevents memory management Portability a single executable can run on several devices Rich set of APIs Market trends 80% of the mobile devices are Java compliant Lots of Java applications on the market Operators are developing Java services

Java 2 Platform Composed of 3 elements: Java programming language specification Virtual machine APIs (Application Programming Interfaces) Supports a wide range of hardware: J2SE (Java Standard Edition) J2EE (Java Enterprise Edition) J2ME (Java Micro Edition) Java Card

J2ME J2ME is not a piece of software like J2SE J2ME is a platform, a collection of technologies and specifications for small devices J2ME is divided into 3 components: Configurations Profiles Optional packages

JCP Java Community Process http://jcp.org/ JCP is a consortium of experts (companies and individuals) who develop and evolve Java technology specifications A specification is based on the description of the language, virtual machine, platform editions, profiles, and application programming interfaces JCP stages: New Java Specification Request (JSR) review, Early draft review, Public review, Proposed final draft, Maintenance review, Rejected, Removed

JSR Java Specification Request List of all the JSR: http://jcp.org/en/jsr/all JSRs are descriptions of proposed and final specifications for the Java technology Examples: JSR 82 Bluetooth JSR 120 SMS Messaging JSR 184 3D Graphics

Configuration A configuration is a specification that defines the minimum virtual machine and base set of APIs to develop applications for a family of devices The target may be devices with intermittent access to the Internet, small memory size and processing capabilities Examples: CLDC 1.0 / 1.1 Connected Limited Device Configuration JSR 30 / 139 KVM small memory and intermittent access to Internet CLDC 1.1 supports floating-point math capabilities CDC / CDC 1.1 Connected Device Configuration JSR 36 / 218 CVM larger memory and always on network connection

CLDC 1.0 APIs List of packages: java.lang data types, basic system and threads (Boolean, Byte, Character, Integer, Long, Short, String, StringBuffer, Math, Object, Runtime, System, Thread, Throwable) java.io to manage I/O data streams java.util utility classes (Calendar, Date, Hastable, Random, Stack, Timer, TimerTask, Vector) javax.microedition.io for generic connections Library specification library http://java.sun.com/javame/reference/apis.jsp

Profile A profile extends a specification and add more specific APIs to provide a more complete environment to develop applications Profiles can include APIs for user interface and persistence storage Examples: MIDP 1.0 / 2.0 Mobile Information Device Profile JSR 37 / 138 MIDP 2.0 offers advanced networking, security, gaming, and media features

Optional Packages An optional package provides functionalities that may not be associated with a particular configuration and profile Examples: JSR 82 - Bluetooth API JSR 120 - Wireless messaging API WMA JSR 172 - J2ME web services

Stack A device implements a complete software stack that consists of a configuration, a profile and optional packages to make it clear to the developer on what to expect from the device Example: JSR 185 Stack - JTWI (Java Technology for the Wireless Industry)

Fragmentation Fragmentation is the inability to "write once and run anywhere due to the multitude of vendorspecific and optional APIs Developing an application targeting n different devices required it to be tested on the n devices JTWI JSR 185 is one step to provide a comprehensive set of functionalities in a standard application development by clarifying and combining vendor-specific and optional APIs

MSA Mobile Service Architecture JSR 248 MSA is a specification built on CLDC 1.1, MIDP 2.1 and JTWI to incorporate new technology and services MSA is the new wireless industry-defined standard MSA is divided in 2 branches: MSA and MSA subset MSA contains a set of mandatory and conditionally mandatory APIs A conditionally mandatory API is an API that is not present on all devices (e.g., JSR 179 Location API) Advanced Mobile Service Architecture JSR 249 is next!

MSA

Nokia 6300 SR 139 Connected, Limited Device Configuration (CLDC) 1.1 JSR 118 MIDP 2.0 JSR 185 Java Technology for Wireless Industry JSR 75 FileConnection and PIM API JSR 82 Bluetooth API JSR 135 Mobile Media API JSR 172 J2ME Web Services Specification JSR 177 Security and Trust Services API for J2ME (CRYPTO and PKI packages) JSR 184 Mobile 3D Graphics API for J2ME JSR 205 Wireless Messaging API 2.0 JSR 226 Scalable 2D Vector Graphics API Nokia UI API HTML over TCP/IP WAP 2.0 XHTML over TCP/IP Flash Lite version Flash Lite 2.0

Nokia 5500 sport S60 3rd Edition (initial release) JSR 139 Connected, Limited Device Configuration (CLDC) 1.1 JSR 118 MIDP 2.0 JSR 185 Java Technology for Wireless Industry JSR 75 FileConnection and PIM API JSR 82 Bluetooth API JSR 135 Mobile Media API 1.1 JSR 172 J2ME Web Services Specification (RPC package) JSR 172 J2ME Web Services Specification (XML Parser package) JSR 177 Security and Trust Services API for J2ME (SATSA-CRYPTO package) JSR 177 Security and Trust Services API for J2ME (SATSA-PKI package) JSR 179 Location API for J2ME 1.0 JSR 180 SIP API for J2ME JSR 184 Mobile 3D Graphics API for J2ME JSR 205 Wireless Messaging API 2.0 Nokia UI API 1.1 HTML over TCP/IP WAP 2.0 XHTML over TCP/IP Flash Lite 1.1

Development Environments Sun Java Wireless Toolkit for CLDC http://java.sun.com/products/sjwtoolkit/ Eclipse http://www.eclipse.org EclipseME plugin http://wlcipseme.org NetBeans Mobility Pack http://www.netbeans.org/products/mobility Vendor-specific development environments: Motorola http://developer.motorola.com/ Nokia http://forum.nokia.com Sony Ericson http://developer.sonyericsson.com

MIDlet A MIDlet is an application that can run on MIDP devices A MIDlet is a class that inherits from javax.microedition.midlet.midlet A MIDlet has three methods: startapp() to initialize the MIDlet or resume a paused MIDlet pauseapp() to pause the application destroyapp() to clean up the application and release all resources These methods are callback the Application Management Software (AMS) calls them whenever necessary These methods can also be called in the MIDlet code

MIDlet Application Lifecycle

MIDlet Suites One or more MIDlets are packaged together into a MIDlet suite composed of: A Java Archive (JAR) file containing the userdefined classes, images and sounds that make up the application and the JAR file manifest that describes the attributes of the MIDlet A Java Descriptor (JAD) file containing the description of the MIDlet suite It permits a device to examine the descriptor before downloading the whole MIDlet suite

Skeleton of a MIDlet Class import javax.microedition.lcdui.command; import javax.microedition.lcdui.commandlistener; import javax.microedition.lcdui.displayable; import javax.microedition.midlet.midlet; import javax.microedition.midlet.midletstatechangeexception; public class SkeletonMIDlet extends MIDlet implements CommandListener { public SkeletonMIDlet() {} protected void destroyapp(boolean arg0) throws MIDletStateChangeException {} protected void pauseapp() {} protected void startapp() throws MIDletStateChangeException {} } public void commandaction(command arg0, Displayable arg1) {}

References Introduction to Java Mobility Technology http://developers.sun.com/mobility/getstart/ Java Community Process http://jcp.org Glossary http://developers.sun.com/mobility/glossary/