1 / 23

Cosc 4730

Cosc 4730. Phone Programming in Java An Introduction. Java: Blackberry vs Android. Blackberry use JavaME with a lot of extensions We’ll cover the Blackberry JavaME with extensions less JavaME, more Blackberry JavaME If it doesn’t apply to a Blackberry, I won’t cover it.

kiet
Download Presentation

Cosc 4730

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cosc 4730 Phone Programming in Java An Introduction

  2. Java: Blackberry vs Android • Blackberry use JavaME with a lot of extensions • We’ll cover the Blackberry JavaME with extensions • less JavaME, more Blackberry JavaME • If it doesn’t apply to a Blackberry, I won’t cover it. • Android uses “Java”, except is closer in nature to JavaME with Google/Android’s own twist. • Because of this, I’ll teach how to code X for Android as well as Blackberry

  3. Java ME • Java Platform, Micro Edition • An environment for applications • Generally for mobile phones, PDA, TVs, and other embedded devices. • Like Java Standard Edition (SE), applications written for ME are portable across many devices. • But use each devices native capabilities

  4. Java ME (2) • Java For Micro devices • Micro Device: • Limited processing Power • Limited Storage Capacity • No or Low Bandwidth Network Connection • Phones, PDAs, TV, Car Navigation systems, ...

  5. Capabilities • Depends on device, but JavaME can: • Multimedia • audio/video playback/recording • Connectivity • HTTP, Network (Sockets, Datagrams), Bluetooth, Infrared, Serial IO, Wifi and Cell Data Network • Gaming • Layers, Canvas, 3D support, Sprites • SMS, MMS, File Management, Database, GPS, Personal Info Management, Security Services

  6. Terms and Standards

  7. Terms and Standards (2) • CLDC – Connected Limited Device Configuration • Most mobile phones and their like.

  8. Terms and Standards (3) • CLDC and MIDP (Mobile Information Device Profile) • Most mobile devices in the last couple of use this environment . • CLDC 1.1 (JSR 139) or CLDC 1.0 (JSR 30) • MIDP 2.0 (JSR 118) or MIDP 1.0 (JSR 37) • Note: MIDP 2.0 supports at least CLDC 1.0

  9. Terms and Standards (4) • Also Java Technology for Wireless Industry (JTWI) JSR 185. Currently JTWI 1.0 • Includes MIDP 2.0 • CLDC 1.0, but 1.1 may be used instead. • WMA 1.1 (JSR 120) • Wireless Messaging API, which provides access to text messaging capabilities (usually SMS). • Optional MMAP 1.1 • Mobile Media API for rendering and recording media data.

  10. Terms and Standards (4) • A few more we will run into (not a complete list) • Bluetooth and OBEX - JSR 82 • Java API for bluetooth • Mobile 3D Graphics – JSR 184 • Mobile 3D graphics API • SVG API – JSR 229 • Scalable 2D Vector Graphics API

  11. MMAPI, 3D API... MIDP, PBP, App CLDC, CDC Architecture • Optional Packages • Profile • Configuration • JVM

  12. CLDC • MIDP over CLDC is what most cell phones use: • CLDC • No Floating point support • No Object finalization • No support for JNI or reflection • No thread groups or daemon thread • No application-defined class loaders • Implementation-defined error handling. • Class verification is done differently

  13. MIDP • MIDP applications are called MIDlets • APIs for • Application management and control • User interface • Persistent storage • Networking • Timers

  14. MIDlets • In a Nutshell and MIDlets is loaded • Then Startapp() • → Active process running • → PauseApp() • → DestroyApp() • → Paused Process • → StartApp() • → DestroyApp() • DestoryApp unloads MIDlets

  15. CDLC Application • On some devices • An application can be created, instead of a MIDlet • Application has a Main(), like normal Java applications • MIDlet don't have main, instead extend the MIDlet class • SmartPhones are more likely to have Applications, instead of just MIDlets.

  16. API references • Java ME techology API Documentation • http://java.sun.com/javame/referece/apis.jsp • Includes CLDC, CDC, and Sun optional packages • Note: This sun generic JavaME and some smartphones have added to JavaME

  17. Jsr118 (MIDP 2.0) • User Interface Package • javax.microedition.lcdui: The UI API provides a set of features for implementation of user interfaces for MIDP applications. • javax.microedition.lcdui.game: The Game API package provides a series of classes that enable the development of rich gaming content for wireless devices.   • Persistence Package • javax.microedition.rms: The Mobile Information Device Profile provides a mechanism for MIDlets to persistently store data and later retrieve it.   • Application Lifecycle Package • javax.microedition.midlet: The MIDlet package defines Mobile Information Device Profile applications and the interactions between the application and the environment in which the application runs.   • Networking Package • javax.microedition.io: Classes for the Generic Connection framework.  

  18. Jsr118 (MIDP 2.0) (2) • Audio Package • javax.microedition.media: The MIDP 2.0 Media API is a directly compatible building block of the Mobile Media API (JSR-135) specification. • javax.microedition.media.control: This package defines the specific Control types that can be used with a Player.   • Public Key Package • javax.microedition.pki: Certificates are used to authenticate information for secure Connections.   • Core Packages • java.io: Provides classes for input and output through data streams. • java.lang: Provides classes that are fundamental to the Java programming language. • java.util: Contains the collection classes, and the date and time facilities.

  19. For comparison • Check the Java docs for jsr118 vs Java v6 • Java6: http://java.sun.com/javase/6/docs/api/ • Jsr118: http://java.sun.com/javame/reference/apis/jsr118/ • JavaMe is very much a small subset of the java language you are used to using. • The language is there, but not everything you may want to use.

  20. Blackberry and android • Blackberry's can use MIDlet, just like standard JavaME phone • But prefer a different method. • base class is the application class, but is not a MIDlet. application is closer in nature to a standard Java program, then a JavaMe app. There is a Main class! • uses MainScreen for each screen that the applications is using. • Note, you can have many screens. • Android phones uses it own version of Java with XML. • Uses an Activity as base class • very similar to MIDlet.

  21. Android • No JavaME Standards or JSRs apply • Uses an Activity as base class, but similar to MIDlets has OnCreate, OnStart(), onResume(), onStop() • For more information: • http://developer.android.com/guide/basics/what-is-android.html

  22. Android (2) • Developer pages have lot of examples and reference guides • api reference guide: http://developer.android.com/reference/android/app/package-summary.html • Resources and tutorials (where the helloworld example came from) • http://developer.android.com/resources/index.html

  23. Q A &

More Related