SlideShare a Scribd company logo
1 of 54
Download to read offline
J2ME 1
Java Platform, Micro Edition
(J2ME)
Assaf Agmon
Itay Levy
Assaf Ben-David
J2ME 2
Contents
 J2ME:
 Why?
 What?
 Who?
 J2ME core.
 Installation
 Demo
J2ME 3
Introduction
 Why? – To have the ability to program to
day to day devices such as:
 cell phones
 smart cards
 personal organizers , palmtops
 What? – A java base platform for such
customizations.
 Who? Sun!!!, But also vendors like Nokia , …
J2ME 4
Java? – J2ME
 Java – “write once run anywhere”
 But:
 Different devices have different requirements.
 Those devices doesn’t have the same environment as regular
computers (standard desktop), the constrains we have:
 Limited memory and processor.
 Small screen sizes.
 Alternative input methods.
 One platform (solution) cannot address all the market
segments (web server, video games etc.)
 Users/developers want flexibility. They want to choose what
they want to use and what they don’t.
 Sun decided to develop a special edition of
Java – J2ME (Java 2 Micro Edition).
J2ME 5
Java Editions
 The Java 2 Platform is split into three editions:
 Java 2 Standard Edition (J2SE) - Desktop-based applications.
 Java 2 Enterprise Edition (J2EE) - Server-based applications.
 Java 2 Micro Edition (J2ME) – For handheld and embedded
devices.
 Each edition provides a complete environment for
running Java-based applications including the Java
virtual machine (VM) and runtime classes.
 What separates one edition from another, then, is
primarily the set of class libraries that each edition
defines.
 you can think of J2ME as a subset of J2SE and J2SE
as a subset of J2EE.
J2ME 6
What will we know.
J2ME 7
J2ME Core Concepts
 At the heart of Java 2 Micro Edition (J2ME) are
three core concepts: configurations, profiles,
and optional packages.
 You can't write a J2ME application without
understanding these concepts, because they
determine the features of Java that you can
use, which application programming interfaces
(APIs) are available, and how your applications
are packaged.
J2ME 8
J2ME Core Concepts
 Optional Packages
 Profile:
 A collection of Java Classes
selected from one or more
Java core, extension or
vertical APIs. Classes are
chosen to provide a
complete solution for
a specific vertical market
 Configuration:
 A subset of the Java core
APIs and Java language
functionality selected to
provide a minimal Java
platform for a set of
vertical markets
J2ME
Profile
J2ME
Libraries
Java Virtual Machine
Host Operating System
Java Language
J2ME 9
What it all means
 There is no "J2ME application“:
 Configuration, profile and optional packages
should be chosen.
 A configuration is a complete Java runtime
environment:
 Java virtual machine (VM) to execute Java.
 Set of core Java runtime classes
 Interface to the underlying system
J2ME 10
What it all means
 The profile adds classes to a configuration:
 To fill in missing functionality
 To support specific uses of a device
 The Optional Packages are set of APIs that
support additional and common behaviors.
 Examples of optional packages :
 Bluetooth Optional Package
 JDBC Optional Package
J2ME 11
Configuration
 There are 2 basic configurations.
 The superset:
 CDC (Connected Device Configuration):
 2 MB or more memory for Java platform.
 32-bit processor.
 High bandwidth network connection.
 full-featured Java 2 virtual machine (CVM).
 17 packages.
 Use for devices like Palms.
J2ME 12
Configuration
 The one we use:
 CDLC (Connected Limited Device Configuration):
 160 - 512 KB of total memory
 16-bit or 32-bit processor
 Low power consumption and often operating with battery power
 Connectivity with limited bandwidth
 Selected classes from:
 java.lang , java.io , java.util
 Limited VM (KVM) without:
 Floating point types
 Object finalization
 JNI or reflection
 Thread groups or daemon threads
 User Class loaders
J2ME 13
Handling I/O in CDC / CLDC
 The CLDC has defined a new set of APIs for
I/O called the Generic Connection Framework.
 The GCF, part of the new javax.microedition.io
package, defines interfaces for the different
kinds of I/O that are possible.
 Since the CDC is a superset of the CLDC, it
includes the GCF.
 CDC also requires GCF support for two
specific connection types: files and datagrams
since it includes the relevant classes from
java.io and java.net packages.
J2ME 14
Configuration - What it all means
 CDC-based profiles make development
simpler due to J2SE-like APIs, but don’t
suit the low-end devices.
 CLDC-based profiles makes the
development task harder, especially
when trying to shrink the size of the
application to run on many of the small
devices.
J2ME 15
Profile
 Several profiles in various stages of development:
 Mobile Information Device Profile (MIDP) - CLDC-based,
used for running applications on cellphones and interactive
pagers with small screens, wireless HTTP connectivity, and
limited memory.
 Personal Digital Assistant Profile (PDAP) – CLDC-based,
extends MIDP with additional classes and features for more
powerful handheld devices.
 Foundation Profile (FP) – CDC-based, extends the CDC with
additional J2SE classes.
 Personal Basis Profile (PBP) - extends the FP with
lightweight (AWT-derived) user interface classes and a new
application model.
 Personal Profile extends the PBP with applet support and
heavyweight UI classes.
J2ME 16
Profile
 The CLDC-profile used today:
MIDP (Mobile Information Device Profile)
 The MIDP defines a platform for dynamically
and securely deploying optimized, graphical,
networked applications.
 The MIDP specification was defined through
the Java Community Process (JCP) by players
like: Motorola, Nokia, Ericsson, Research in
Motion, and Symbian.
J2ME 17
MIDP – MID Profile
 MIDP is targeted at a class of devices
known as mobile information devices
(MIDs).
 Minimal characteristics of MIDs:
 Enough memory to run MIDP applications
 Display of at least 96 X 56 pixels, either
monochrome or color
 A keypad, keyboard, or touch screen
 Two-way wireless networking capability
J2ME 18
MIDP - Specification
 There are two versions of the MIDP:
 MIDP 1.0 - is the original specification, provides
core application functionality required by mobile
applications, including basic user interface and
network security
 MIDP 2.0 - is a revised version of the MIDP 1.0.
Have new features include an enhanced user
interface, multimedia and game functionality, more
extensive connectivity, over-the-air provisioning,
and end-to-end security.
J2ME 19
MIDlets – The heart of J2ME…
 MIDP does not run in the “regular” Java fashion.
using: Main() , System.exit().
 Instead, we use MIDlet aplications - which are
subclasses of: javax.microedition.midlet.MIDlet
that is defined by MIDP.
 The MIDlet class allows the application
management software to:
 control the MIDlet
 be able to retrieve properties from the application
descriptor
 notify and request state changes
J2ME 20
MIDlets – The heart of J2ME…
 The extending class is the main class of
the application.
 The MIDlet class defines abstract
methods that the main class implements
(for example: startApp(), destroyApp(),
notifyDestroyed()).
J2ME 21
MIDlet Suite
 One or more MIDlets are packaged together
into a MIDlet suite, composed of:
 JAR (Java archive) file - The JAR file contains Java
classes for each MIDlet in the suite and Java
classes that are shared between MIDlets. The JAR
file also contains resource files used by the MIDlets
and a manifest file.
 JAD (Java Application Descriptor) file - This file
contains a predefined set of attributes that allows the
device application management software to identify,
retrieve, and install the MIDlets
 Eventually the JAR / JAD files are upload to the
machine in order to run the application.
J2ME 22
Configuration + Profile
 When the Java 2 Platform, Micro Edition
(J2ME) was first introduced, only one
configuration, the Connected Limited Device
Configuration (CLDC), and one profile, the
Mobile Information Device Profile (MIDP) had
been defined as formal specifications.
 Today, there are nearly forty J2ME-related
specifications at various stages in the JCP,
and many of these specifications define
optional packages instead of configurations or
profiles.
J2ME 23
So what is an optional package?
 An optional package is also a set of APIs, but
unlike a profile, it does not define a complete
application environment.
 An optional package is always used in
conjunction with a configuration or a profile. It
extends the runtime environment to support
device capabilities that are not universal enough
to be defined as part of a profile or that need to
be shared by different profiles.
 Examples:
 RMI Optional Package (Remote Method Invocation).
 Wireless Messaging API.
 Mobile Media API
J2ME 24
Extenders
 There are some companies that created
different suite for J2ME.
 Those companies are “competing partners”
with Sun (- they buy the KVM from Sun).
 Example:
 Nokia’s Developer's Suite:
provides tools for creating application classes
and packages, signing the application, and
deploying it to a device. It is also an essential
tool for managing, configuring, and running
emulators for various Nokia Platform.
J2ME 25
What we know so far:
J2ME 26
summary
 Java 2 Micro Edition defines a small footprint version of
Java for resource constrained devices. Specifically, code
space of <512K and RAM (for java heap) of 64KBytes or
more.
 The Connected Limited Device Configuration (CLDC)
defines the minimum required complement of Java
technology components and libraries for small connected
devices. Java language and virtual machine features, core
libraries, input/output, networking and security are the
primary topics addressed by this specification.
 The Mobile Information Device Profile (MIDP) defines an
additional set of API’s on top of the Connected Limited
Device Configuration (CLDC) for small handheld devices
such as PDA’s and cellular phones. These include UI,
Persistence, Networking, Timers, and Application Lifecycle.
J2ME 27
J2ME 28
Requirements
 Java2 SE SDK 1.4.x (Can be downloaded at:
http://java.sun.com/j2se/1.4.2/download.html)
 The Eclipse IDE 3.x (Can be downloaded at:
http://www.eclipse.org/downloads/index.php)
 A supported wireless toolkit (A List of supported toolkits
can be found at:
http://eclipseme.org/docs/support_wtk.html)
 Any kind of Emulator
 EclipseME 1.x.x
 version 1.1.0 (supports Eclipse 3.1 only)
 version 1.0.1 (either Eclipse 3.0 or Eclipse 3.1 are
supported)
 prior 1.0.0 (support Eclipse 3.0 only)
J2ME 29
Installation
 Verify J2SE SDK is installed on your system (1.4.2 and
later is preferable)
 Verify Eclipse 3.0 or later is installed on your system
 Install a Wireless Toolkit
 J2ME Wireless Toolkit 2.2 + Patch (Can be downloaded
at: http://java.sun.com/products/sjwtoolkit/download-
2_2.html)
 Nokia S40 DP20 SDK 6230i 1.0 (Can be downloaded at:
http://forum.nokia.com) install either integrated with
J2ME WT or as Standalone
 Install an Emulator
 Install EclipseME
J2ME 30
Verify Plug In installation
 If the J2ME plug-in is properly installed, there will be a J2ME
entry in the Window / Preferences dialog
J2ME 31
 Select the Preferences
menu item from Eclipse's
Window menu.
 Expand the J2ME item in
the pane to the left and
click on Platform
Components.
 Verify that the Wireless
Toolkits appears
 If not right click on the
Wireless Toolkit and add
the root directory.
Verify Wireless Toolkit Installed
J2ME 32
Create New Midlet Suite
 Create a new project
 File -> new -> Project
J2ME 33
Project properties
 Give a name to the project and Select the location on the
disk
J2ME 34
Select Wireless Toolkit
 Select the Wireless Toolkit you wish to work with
J2ME 35
Creating a new MIDlet
 On the ToolBar Select File -> New -> Other
J2ME 36
MIDlet Properties
 Select a Name for the Midlet, Superclass and
implemented interfaces.
J2ME 37
The MIDlet content
J2ME 38
Importing Packages Importing MIDP
specific
packages
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
J2ME 39
LCDUI
 The UI API provides a set of features for implementation
of user interfaces for MIDP applications.
 The central abstraction of the MIDP's UI is a Displayable
object, which encapsulates device-specific graphics
rendering with user input. Only one Displayable may be
visible at a time, and the user can see and interact with
only contents of that Displayable.
 The Screen class is a subclass of Displayable that takes
care of all user interaction with high-level user interface
component. The Screen subclasses handle rendering,
interaction, traversal, and scrolling, with only higher-level
events being passed on to the application.
J2ME 40
Superclass And Interface
Extends MIDlet
Implements
CommandListener
public class TestMIDlet
extends MIDlet
implements CommandListener {
J2ME 41
MIDlet API
 Abstracts:
 protected abstract void startApp() –
Signals the MIDlet that it has entered the Active state
 protected abstract void pauseApp() –
Signals the MIDlet to enter the Paused state
 protected abstract void destroyApp(boolean arg0) -
Signals the MIDlet to terminate and enter the Destroyed state
J2ME 42
MIDlet API
 Inherited:
 Int checkPermission(String permission)
 String getAppProperty(String key)
 Void notifyPaused()
 Boolean platformRequest(String URL)
 Void resumeRequest()
 Void notifyDestroyed() - Used by an MIDlet to
notify the application management software
that it has entered into the Destroyed state.
J2ME 43
CommandListener API
 This interface is used by applications
which need to receive high-level events
from the implementation.
 public void
commandAction(Command c,
Displayable d) - Indicates that a
command event has occurred on
Displayable d
J2ME 44
The MIDlet content
Creating the
form, adding
the
Commands
public TestMIDlet() {
mMainForm = new Form(“Ahalan");
mMainForm.append(new StringItem(null,
“First Message"));
mMainForm.addCommand(new Command("Exit",
Command.EXIT, 0));
mMainForm.setCommandListener(this);
}
J2ME 45
Form class
 A Form is a Screen that contains an arbitrary
mixture of items: images, read-only text fields,
editable text fields, editable date fields,
gauges, choice groups, and custom items.
 In general, any subclass of the Item class may
be contained within a form.
 The implementation handles layout, traversal,
and scrolling.
J2ME 46
Form and Item classes
J2ME 47
Test your code
 Choose the target
platform
 Choose the
desired Device
(Emulator)
 Run
J2ME 48
Choose your device
J2ME 49
Distribution to actual devices
 Create a package
 Place your code somewhere on the net.
 Update .jad file
 Download the application to your mobile
 Run the application
J2ME 50
J2ME 51
The SMS server
 We have build a MIDlet that acts as an SMS server.
 The MIDlet listens to incoming SMS events. If the
SMS matches a predefined pattern, it is processed as
a command.
 We have defined a few sample commands:
 Add a contact to the device’s phonebook
 Flash the backlights
 Turn on vibrating mode
 Many more option can be added. For example:
 A command that will order the phone to take a snapshot using
it’s built-in camera
J2ME 52
Nokia Connectivity Framework
 Nokia Connectivity Framework (NCF) is a tool, which
manages, configures and integrates products so that
they can communicate with each other and with exterior
integratable hardware or software.
 NCF provides an integration platform for delivering
content data in mobile development environment
between the connected external software components.
 For example, phone emulators, content development
tools, software development tools, real time server
emulators and server emulators.
 With the aid of NCF a user can construct, maintain,
modify and use development environments that support
different technologies, formats, and versions.
J2ME 53
Nokia Connectivity Framework
 We will use the framework to display a
demonstration of the SMS server MIDlet.
 We will use the framework to simulate two
phones and the two-way communication
between them.
J2ME 54

More Related Content

Similar to 010118565.pdf

Mobile Application Development MAD J2ME
Mobile Application Development  MAD J2MEMobile Application Development  MAD J2ME
Mobile Application Development MAD J2MEPallepati Vasavi
 
MOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMSMOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMSSenthil Kanth
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application DevelopmentSenthil Kanth
 
Introduction To J2ME(FT - Prasanjit Dey)
Introduction To J2ME(FT - Prasanjit Dey)Introduction To J2ME(FT - Prasanjit Dey)
Introduction To J2ME(FT - Prasanjit Dey)Fafadia Tech
 
Blackberry Development Environment
Blackberry Development EnvironmentBlackberry Development Environment
Blackberry Development EnvironmentPredhin Sapru
 
Mobile operating system..
Mobile operating system..Mobile operating system..
Mobile operating system..Aashish Uppal
 
Introduction to java micro edition
Introduction to java micro editionIntroduction to java micro edition
Introduction to java micro editionRaphael Wanjiku
 
Android internals
Android internalsAndroid internals
Android internalsrabah3
 
Parallelogram by using j2 me j2me.shahid
Parallelogram by using j2 me j2me.shahidParallelogram by using j2 me j2me.shahid
Parallelogram by using j2 me j2me.shahidShahid Riaz
 
J2me Crash Course
J2me Crash CourseJ2me Crash Course
J2me Crash Courseguest860a03
 
J2ME mobile app development
J2ME mobile app developmentJ2ME mobile app development
J2ME mobile app developmentMuthu Kumar
 

Similar to 010118565.pdf (20)

Mobile Application Development MAD J2ME
Mobile Application Development  MAD J2MEMobile Application Development  MAD J2ME
Mobile Application Development MAD J2ME
 
MOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMSMOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMS
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
J2me step by step
J2me step by stepJ2me step by step
J2me step by step
 
J2ME
J2MEJ2ME
J2ME
 
Java J2ME
Java J2MEJava J2ME
Java J2ME
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 
Introduction To J2ME(FT - Prasanjit Dey)
Introduction To J2ME(FT - Prasanjit Dey)Introduction To J2ME(FT - Prasanjit Dey)
Introduction To J2ME(FT - Prasanjit Dey)
 
Blackberry Development Environment
Blackberry Development EnvironmentBlackberry Development Environment
Blackberry Development Environment
 
Mobile operating system..
Mobile operating system..Mobile operating system..
Mobile operating system..
 
J2me
J2meJ2me
J2me
 
Introduction to java micro edition
Introduction to java micro editionIntroduction to java micro edition
Introduction to java micro edition
 
J2 Me
J2 MeJ2 Me
J2 Me
 
Android internals
Android internalsAndroid internals
Android internals
 
Parallelogram by using j2 me j2me.shahid
Parallelogram by using j2 me j2me.shahidParallelogram by using j2 me j2me.shahid
Parallelogram by using j2 me j2me.shahid
 
Android
Android Android
Android
 
J2me Crash Course
J2me Crash CourseJ2me Crash Course
J2me Crash Course
 
SynapseIndia mobile build apps management
SynapseIndia mobile build apps managementSynapseIndia mobile build apps management
SynapseIndia mobile build apps management
 
J2ME mobile app development
J2ME mobile app developmentJ2ME mobile app development
J2ME mobile app development
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 

More from EidTahir

Servlets+JSP.ppt
Servlets+JSP.pptServlets+JSP.ppt
Servlets+JSP.pptEidTahir
 
servlets.ppt
servlets.pptservlets.ppt
servlets.pptEidTahir
 
005428058.pdf
005428058.pdf005428058.pdf
005428058.pdfEidTahir
 
005428055.pdf
005428055.pdf005428055.pdf
005428055.pdfEidTahir
 
2.J2EE_Overview.ppt
2.J2EE_Overview.ppt2.J2EE_Overview.ppt
2.J2EE_Overview.pptEidTahir
 
009458666.pdf
009458666.pdf009458666.pdf
009458666.pdfEidTahir
 
009921362.pdf
009921362.pdf009921362.pdf
009921362.pdfEidTahir
 
009577496.pdf
009577496.pdf009577496.pdf
009577496.pdfEidTahir
 
009478419.pdf
009478419.pdf009478419.pdf
009478419.pdfEidTahir
 
009445185.pdf
009445185.pdf009445185.pdf
009445185.pdfEidTahir
 
009705432.pdf
009705432.pdf009705432.pdf
009705432.pdfEidTahir
 
009694598.pdf
009694598.pdf009694598.pdf
009694598.pdfEidTahir
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfEidTahir
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdfEidTahir
 
005432796.pdf
005432796.pdf005432796.pdf
005432796.pdfEidTahir
 
009586150.pdf
009586150.pdf009586150.pdf
009586150.pdfEidTahir
 
009551323.pdf
009551323.pdf009551323.pdf
009551323.pdfEidTahir
 
009723779.pdf
009723779.pdf009723779.pdf
009723779.pdfEidTahir
 
005443266.pdf
005443266.pdf005443266.pdf
005443266.pdfEidTahir
 

More from EidTahir (20)

Servlets+JSP.ppt
Servlets+JSP.pptServlets+JSP.ppt
Servlets+JSP.ppt
 
servlets.ppt
servlets.pptservlets.ppt
servlets.ppt
 
005428058.pdf
005428058.pdf005428058.pdf
005428058.pdf
 
005428055.pdf
005428055.pdf005428055.pdf
005428055.pdf
 
DNS.pptx
DNS.pptxDNS.pptx
DNS.pptx
 
2.J2EE_Overview.ppt
2.J2EE_Overview.ppt2.J2EE_Overview.ppt
2.J2EE_Overview.ppt
 
009458666.pdf
009458666.pdf009458666.pdf
009458666.pdf
 
009921362.pdf
009921362.pdf009921362.pdf
009921362.pdf
 
009577496.pdf
009577496.pdf009577496.pdf
009577496.pdf
 
009478419.pdf
009478419.pdf009478419.pdf
009478419.pdf
 
009445185.pdf
009445185.pdf009445185.pdf
009445185.pdf
 
009705432.pdf
009705432.pdf009705432.pdf
009705432.pdf
 
009694598.pdf
009694598.pdf009694598.pdf
009694598.pdf
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
005432796.pdf
005432796.pdf005432796.pdf
005432796.pdf
 
009586150.pdf
009586150.pdf009586150.pdf
009586150.pdf
 
009551323.pdf
009551323.pdf009551323.pdf
009551323.pdf
 
009723779.pdf
009723779.pdf009723779.pdf
009723779.pdf
 
005443266.pdf
005443266.pdf005443266.pdf
005443266.pdf
 

Recently uploaded

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 

Recently uploaded (20)

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 

010118565.pdf

  • 1. J2ME 1 Java Platform, Micro Edition (J2ME) Assaf Agmon Itay Levy Assaf Ben-David
  • 2. J2ME 2 Contents  J2ME:  Why?  What?  Who?  J2ME core.  Installation  Demo
  • 3. J2ME 3 Introduction  Why? – To have the ability to program to day to day devices such as:  cell phones  smart cards  personal organizers , palmtops  What? – A java base platform for such customizations.  Who? Sun!!!, But also vendors like Nokia , …
  • 4. J2ME 4 Java? – J2ME  Java – “write once run anywhere”  But:  Different devices have different requirements.  Those devices doesn’t have the same environment as regular computers (standard desktop), the constrains we have:  Limited memory and processor.  Small screen sizes.  Alternative input methods.  One platform (solution) cannot address all the market segments (web server, video games etc.)  Users/developers want flexibility. They want to choose what they want to use and what they don’t.  Sun decided to develop a special edition of Java – J2ME (Java 2 Micro Edition).
  • 5. J2ME 5 Java Editions  The Java 2 Platform is split into three editions:  Java 2 Standard Edition (J2SE) - Desktop-based applications.  Java 2 Enterprise Edition (J2EE) - Server-based applications.  Java 2 Micro Edition (J2ME) – For handheld and embedded devices.  Each edition provides a complete environment for running Java-based applications including the Java virtual machine (VM) and runtime classes.  What separates one edition from another, then, is primarily the set of class libraries that each edition defines.  you can think of J2ME as a subset of J2SE and J2SE as a subset of J2EE.
  • 6. J2ME 6 What will we know.
  • 7. J2ME 7 J2ME Core Concepts  At the heart of Java 2 Micro Edition (J2ME) are three core concepts: configurations, profiles, and optional packages.  You can't write a J2ME application without understanding these concepts, because they determine the features of Java that you can use, which application programming interfaces (APIs) are available, and how your applications are packaged.
  • 8. J2ME 8 J2ME Core Concepts  Optional Packages  Profile:  A collection of Java Classes selected from one or more Java core, extension or vertical APIs. Classes are chosen to provide a complete solution for a specific vertical market  Configuration:  A subset of the Java core APIs and Java language functionality selected to provide a minimal Java platform for a set of vertical markets J2ME Profile J2ME Libraries Java Virtual Machine Host Operating System Java Language
  • 9. J2ME 9 What it all means  There is no "J2ME application“:  Configuration, profile and optional packages should be chosen.  A configuration is a complete Java runtime environment:  Java virtual machine (VM) to execute Java.  Set of core Java runtime classes  Interface to the underlying system
  • 10. J2ME 10 What it all means  The profile adds classes to a configuration:  To fill in missing functionality  To support specific uses of a device  The Optional Packages are set of APIs that support additional and common behaviors.  Examples of optional packages :  Bluetooth Optional Package  JDBC Optional Package
  • 11. J2ME 11 Configuration  There are 2 basic configurations.  The superset:  CDC (Connected Device Configuration):  2 MB or more memory for Java platform.  32-bit processor.  High bandwidth network connection.  full-featured Java 2 virtual machine (CVM).  17 packages.  Use for devices like Palms.
  • 12. J2ME 12 Configuration  The one we use:  CDLC (Connected Limited Device Configuration):  160 - 512 KB of total memory  16-bit or 32-bit processor  Low power consumption and often operating with battery power  Connectivity with limited bandwidth  Selected classes from:  java.lang , java.io , java.util  Limited VM (KVM) without:  Floating point types  Object finalization  JNI or reflection  Thread groups or daemon threads  User Class loaders
  • 13. J2ME 13 Handling I/O in CDC / CLDC  The CLDC has defined a new set of APIs for I/O called the Generic Connection Framework.  The GCF, part of the new javax.microedition.io package, defines interfaces for the different kinds of I/O that are possible.  Since the CDC is a superset of the CLDC, it includes the GCF.  CDC also requires GCF support for two specific connection types: files and datagrams since it includes the relevant classes from java.io and java.net packages.
  • 14. J2ME 14 Configuration - What it all means  CDC-based profiles make development simpler due to J2SE-like APIs, but don’t suit the low-end devices.  CLDC-based profiles makes the development task harder, especially when trying to shrink the size of the application to run on many of the small devices.
  • 15. J2ME 15 Profile  Several profiles in various stages of development:  Mobile Information Device Profile (MIDP) - CLDC-based, used for running applications on cellphones and interactive pagers with small screens, wireless HTTP connectivity, and limited memory.  Personal Digital Assistant Profile (PDAP) – CLDC-based, extends MIDP with additional classes and features for more powerful handheld devices.  Foundation Profile (FP) – CDC-based, extends the CDC with additional J2SE classes.  Personal Basis Profile (PBP) - extends the FP with lightweight (AWT-derived) user interface classes and a new application model.  Personal Profile extends the PBP with applet support and heavyweight UI classes.
  • 16. J2ME 16 Profile  The CLDC-profile used today: MIDP (Mobile Information Device Profile)  The MIDP defines a platform for dynamically and securely deploying optimized, graphical, networked applications.  The MIDP specification was defined through the Java Community Process (JCP) by players like: Motorola, Nokia, Ericsson, Research in Motion, and Symbian.
  • 17. J2ME 17 MIDP – MID Profile  MIDP is targeted at a class of devices known as mobile information devices (MIDs).  Minimal characteristics of MIDs:  Enough memory to run MIDP applications  Display of at least 96 X 56 pixels, either monochrome or color  A keypad, keyboard, or touch screen  Two-way wireless networking capability
  • 18. J2ME 18 MIDP - Specification  There are two versions of the MIDP:  MIDP 1.0 - is the original specification, provides core application functionality required by mobile applications, including basic user interface and network security  MIDP 2.0 - is a revised version of the MIDP 1.0. Have new features include an enhanced user interface, multimedia and game functionality, more extensive connectivity, over-the-air provisioning, and end-to-end security.
  • 19. J2ME 19 MIDlets – The heart of J2ME…  MIDP does not run in the “regular” Java fashion. using: Main() , System.exit().  Instead, we use MIDlet aplications - which are subclasses of: javax.microedition.midlet.MIDlet that is defined by MIDP.  The MIDlet class allows the application management software to:  control the MIDlet  be able to retrieve properties from the application descriptor  notify and request state changes
  • 20. J2ME 20 MIDlets – The heart of J2ME…  The extending class is the main class of the application.  The MIDlet class defines abstract methods that the main class implements (for example: startApp(), destroyApp(), notifyDestroyed()).
  • 21. J2ME 21 MIDlet Suite  One or more MIDlets are packaged together into a MIDlet suite, composed of:  JAR (Java archive) file - The JAR file contains Java classes for each MIDlet in the suite and Java classes that are shared between MIDlets. The JAR file also contains resource files used by the MIDlets and a manifest file.  JAD (Java Application Descriptor) file - This file contains a predefined set of attributes that allows the device application management software to identify, retrieve, and install the MIDlets  Eventually the JAR / JAD files are upload to the machine in order to run the application.
  • 22. J2ME 22 Configuration + Profile  When the Java 2 Platform, Micro Edition (J2ME) was first introduced, only one configuration, the Connected Limited Device Configuration (CLDC), and one profile, the Mobile Information Device Profile (MIDP) had been defined as formal specifications.  Today, there are nearly forty J2ME-related specifications at various stages in the JCP, and many of these specifications define optional packages instead of configurations or profiles.
  • 23. J2ME 23 So what is an optional package?  An optional package is also a set of APIs, but unlike a profile, it does not define a complete application environment.  An optional package is always used in conjunction with a configuration or a profile. It extends the runtime environment to support device capabilities that are not universal enough to be defined as part of a profile or that need to be shared by different profiles.  Examples:  RMI Optional Package (Remote Method Invocation).  Wireless Messaging API.  Mobile Media API
  • 24. J2ME 24 Extenders  There are some companies that created different suite for J2ME.  Those companies are “competing partners” with Sun (- they buy the KVM from Sun).  Example:  Nokia’s Developer's Suite: provides tools for creating application classes and packages, signing the application, and deploying it to a device. It is also an essential tool for managing, configuring, and running emulators for various Nokia Platform.
  • 25. J2ME 25 What we know so far:
  • 26. J2ME 26 summary  Java 2 Micro Edition defines a small footprint version of Java for resource constrained devices. Specifically, code space of <512K and RAM (for java heap) of 64KBytes or more.  The Connected Limited Device Configuration (CLDC) defines the minimum required complement of Java technology components and libraries for small connected devices. Java language and virtual machine features, core libraries, input/output, networking and security are the primary topics addressed by this specification.  The Mobile Information Device Profile (MIDP) defines an additional set of API’s on top of the Connected Limited Device Configuration (CLDC) for small handheld devices such as PDA’s and cellular phones. These include UI, Persistence, Networking, Timers, and Application Lifecycle.
  • 28. J2ME 28 Requirements  Java2 SE SDK 1.4.x (Can be downloaded at: http://java.sun.com/j2se/1.4.2/download.html)  The Eclipse IDE 3.x (Can be downloaded at: http://www.eclipse.org/downloads/index.php)  A supported wireless toolkit (A List of supported toolkits can be found at: http://eclipseme.org/docs/support_wtk.html)  Any kind of Emulator  EclipseME 1.x.x  version 1.1.0 (supports Eclipse 3.1 only)  version 1.0.1 (either Eclipse 3.0 or Eclipse 3.1 are supported)  prior 1.0.0 (support Eclipse 3.0 only)
  • 29. J2ME 29 Installation  Verify J2SE SDK is installed on your system (1.4.2 and later is preferable)  Verify Eclipse 3.0 or later is installed on your system  Install a Wireless Toolkit  J2ME Wireless Toolkit 2.2 + Patch (Can be downloaded at: http://java.sun.com/products/sjwtoolkit/download- 2_2.html)  Nokia S40 DP20 SDK 6230i 1.0 (Can be downloaded at: http://forum.nokia.com) install either integrated with J2ME WT or as Standalone  Install an Emulator  Install EclipseME
  • 30. J2ME 30 Verify Plug In installation  If the J2ME plug-in is properly installed, there will be a J2ME entry in the Window / Preferences dialog
  • 31. J2ME 31  Select the Preferences menu item from Eclipse's Window menu.  Expand the J2ME item in the pane to the left and click on Platform Components.  Verify that the Wireless Toolkits appears  If not right click on the Wireless Toolkit and add the root directory. Verify Wireless Toolkit Installed
  • 32. J2ME 32 Create New Midlet Suite  Create a new project  File -> new -> Project
  • 33. J2ME 33 Project properties  Give a name to the project and Select the location on the disk
  • 34. J2ME 34 Select Wireless Toolkit  Select the Wireless Toolkit you wish to work with
  • 35. J2ME 35 Creating a new MIDlet  On the ToolBar Select File -> New -> Other
  • 36. J2ME 36 MIDlet Properties  Select a Name for the Midlet, Superclass and implemented interfaces.
  • 38. J2ME 38 Importing Packages Importing MIDP specific packages import javax.microedition.lcdui.*; import javax.microedition.midlet.*;
  • 39. J2ME 39 LCDUI  The UI API provides a set of features for implementation of user interfaces for MIDP applications.  The central abstraction of the MIDP's UI is a Displayable object, which encapsulates device-specific graphics rendering with user input. Only one Displayable may be visible at a time, and the user can see and interact with only contents of that Displayable.  The Screen class is a subclass of Displayable that takes care of all user interaction with high-level user interface component. The Screen subclasses handle rendering, interaction, traversal, and scrolling, with only higher-level events being passed on to the application.
  • 40. J2ME 40 Superclass And Interface Extends MIDlet Implements CommandListener public class TestMIDlet extends MIDlet implements CommandListener {
  • 41. J2ME 41 MIDlet API  Abstracts:  protected abstract void startApp() – Signals the MIDlet that it has entered the Active state  protected abstract void pauseApp() – Signals the MIDlet to enter the Paused state  protected abstract void destroyApp(boolean arg0) - Signals the MIDlet to terminate and enter the Destroyed state
  • 42. J2ME 42 MIDlet API  Inherited:  Int checkPermission(String permission)  String getAppProperty(String key)  Void notifyPaused()  Boolean platformRequest(String URL)  Void resumeRequest()  Void notifyDestroyed() - Used by an MIDlet to notify the application management software that it has entered into the Destroyed state.
  • 43. J2ME 43 CommandListener API  This interface is used by applications which need to receive high-level events from the implementation.  public void commandAction(Command c, Displayable d) - Indicates that a command event has occurred on Displayable d
  • 44. J2ME 44 The MIDlet content Creating the form, adding the Commands public TestMIDlet() { mMainForm = new Form(“Ahalan"); mMainForm.append(new StringItem(null, “First Message")); mMainForm.addCommand(new Command("Exit", Command.EXIT, 0)); mMainForm.setCommandListener(this); }
  • 45. J2ME 45 Form class  A Form is a Screen that contains an arbitrary mixture of items: images, read-only text fields, editable text fields, editable date fields, gauges, choice groups, and custom items.  In general, any subclass of the Item class may be contained within a form.  The implementation handles layout, traversal, and scrolling.
  • 46. J2ME 46 Form and Item classes
  • 47. J2ME 47 Test your code  Choose the target platform  Choose the desired Device (Emulator)  Run
  • 49. J2ME 49 Distribution to actual devices  Create a package  Place your code somewhere on the net.  Update .jad file  Download the application to your mobile  Run the application
  • 51. J2ME 51 The SMS server  We have build a MIDlet that acts as an SMS server.  The MIDlet listens to incoming SMS events. If the SMS matches a predefined pattern, it is processed as a command.  We have defined a few sample commands:  Add a contact to the device’s phonebook  Flash the backlights  Turn on vibrating mode  Many more option can be added. For example:  A command that will order the phone to take a snapshot using it’s built-in camera
  • 52. J2ME 52 Nokia Connectivity Framework  Nokia Connectivity Framework (NCF) is a tool, which manages, configures and integrates products so that they can communicate with each other and with exterior integratable hardware or software.  NCF provides an integration platform for delivering content data in mobile development environment between the connected external software components.  For example, phone emulators, content development tools, software development tools, real time server emulators and server emulators.  With the aid of NCF a user can construct, maintain, modify and use development environments that support different technologies, formats, and versions.
  • 53. J2ME 53 Nokia Connectivity Framework  We will use the framework to display a demonstration of the SMS server MIDlet.  We will use the framework to simulate two phones and the two-way communication between them.