Developing and deploying java applications for blackberry
Download
1 / 33

Developing and Deploying Java Applications for BlackBerry - PowerPoint PPT Presentation


  • 305 Views
  • Uploaded on

Developing and Deploying Java Applications for BlackBerry. Making Sense of it All. Eric Giguère Senior Software Architect [email protected] Overview. Understanding J2ME in general The BlackBerry perspective on J2ME Gathering the necessary pieces Programming tips

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Developing and Deploying Java Applications for BlackBerry' - LionelDale


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Developing and deploying java applications for blackberry l.jpg

Developing and Deploying Java Applications for BlackBerry

Making Sense of it All

Eric GiguèreSenior Software [email protected]


Overview l.jpg
Overview

  • Understanding J2ME in general

  • The BlackBerry perspective on J2ME

  • Gathering the necessary pieces

  • Programming tips

  • Moving beyond the BlackBerry


About ianywhere l.jpg
About iAnywhere

iAnywhere is the acknowledged leader in mobile databases, mobile middleware, and mobile management


About eric l.jpg
About Eric

  • Practicing software developer, extensive experience with mobile platforms and with all kinds of Java-based technology

  • Author of three books, including the first book on Java 2 Micro Edition -- over 5 years of J2ME!

Don’t buy these, they’re way out of date!


A question l.jpg
A Question

Q: Why did the chicken cross the road?

A: She was too busy browsing her AvantGo channels on her BlackBerry.

Point your BlackBerry Browser to:rim.avantgo.com


At the sybase booth l.jpg
At the Sybase Booth

  • Visit the Sybase booth in the Solutions Showcase for a demonstration of the new MobiLink Client API

    • Sync relational data down to the device and back

      • SQL Server, Oracle, DB/2, ASE, SQL Anywhere

    • Ask for Liam

    • Or talk to me after the session (my code)



Understanding j2me l.jpg
Understanding J2ME

  • Java 2 Micro Edition (J2ME) is an umbrella term for a set of Java technologies created to run Java on less capable devices

  • Key concepts of configurations, profiles and optional packages:

    • configuration = VM + runtime classes (horizontal)

    • profile = domain-specific classes for building standalone applications (vertical)

    • optional package = domain-specific classes that expose specific functionality but not applications (horizontal or vertical)


Configurations l.jpg
Configurations

  • Only two configurations defined:

    • Connected Limited Device Configuration (CLDC)

    • Connected Device Configuration (CDC)

  • CLDC is a stripped-down VM and runtime environment

    • no finalization, no reflection, only a few classes

    • CLDC 1.0 didn’t even support floating-point

  • CDC is a superset of CLDC

    • full language and VM support

    • a much broader set of standard Java 1.3 classes


Profiles l.jpg
Profiles

  • Profiles built on the CLDC:

    • Mobile Information Device Profile (MIDP)

    • Information Module Profile (IMP)

      • “Headless” MIDP (no UI)

  • Profiles built on the CDC:

    • Foundation Profile

    • Personal Basis Profile

      • Built on top of Foundation Profile

    • Personal Profile

      • Build on top of Personal Basis Profile

      • The transition profile for the old PersonalJava


Optional packages l.jpg
Optional Packages

  • Many released or in development, some examples:

    • PIM Optional Package

    • File Connection Optional Package

    • Wireless Messaging API

    • Mobile Media API

  • Problem: not every device supports every optional package


Who does all of this l.jpg
Who Does All Of This?

  • All J2ME standards are developed using the Java Community Process (JCP) using formal Java Specification Requests (JSRs)

  • JSRs developed by an expert group (EG) representing the J2ME community at large

  • RIM is on the EGs for several of the important standards

  • For more info, see http://www.jcp.org



Blackberry and j2me l.jpg
BlackBerry and J2ME

  • BlackBerry devices (Java-based) run MIDP and CLDC

    • MIDP 1.0/CLDC 1.0 for 3.6/3.7 devices

    • MIDP 2.0/CLDC 1.1 for 3.8/4.0 devices

    • Custom Java VM

  • Additional APIs available

    • Some optional packages

    • Many BlackBerry-specific APIs (vendor extensions)

  • Built-in apps written in Java

    • RIM eats it’s own food


Application models l.jpg
Application Models

  • MIDlets

    • Applications built using MIDP application lifecycle and user interface classes

    • Portable to other platforms unless BB APIs used

  • BlackBerry applications

    • Standard “public static void main( String[] args )” entry point

    • Tied to BlackBerry, but more control over the application

    • BlackBerry-specific UI classes

    • Can run in background (no UI), on startup, etc.


How applications are built l.jpg
How Applications Are Built

  • Classes are compiled as usual

  • CLDC requires a separate preverification step

  • Output then transformed using RIM tools into a .COD file that can be installed on the device

  • Applications can be loaded directly through BlackBerry Desktop Manager, the javaloader tool, or wirelessly via over-the-air (OTA) provisioning


How applications are built17 l.jpg
How Applications Are Built

  • Standard tool is the Java Development Environment (JDE)

    • integrated editor, debugger

  • Can also use Ant with Antenna tasks

    • See http://antenna.sourceforge.net

  • Eclipse also possible using Ant+Antenna

    • Getting the classpaths right can be tricky

    • See http://eclipseme.org for the EclipseME project


Blackberry apis l.jpg
BlackBerry APIs

  • Rich set of BlackBerry-specific classes

    • Utility classes to deal with missing J2SE classes

    • Different UI model than MIDP

    • Encryption classes

    • A persistent object model loosely patterned on Java serialization

    • More communication protocols, not just HTTP

    • Many APIs require your app to be signed


Gotchas l.jpg
Gotchas

  • Occasionally classes are documented but not implemented until someone pesters RIM

  • Only documentation is from RIM

    • Javadocs needs some work, lacking many details

    • The only BlackBerry books available so far are about using the device or making blackberry wine.

      • But at least one BlackBerry programming book is coming

  • Pester RIM for better docs and tool enhancements!



Getting started l.jpg
Getting Started

  • Download the JDE from http://www.blackberry.com

    • Versions for 3.7 or 4.0

    • If you’re going to target 3.6 or 3.7, use JDE 3.7

    • You’ll also need Java SDK 1.4.2

      • http://java.sun.com/j2se/1.4.2/download.html

  • New to Java? Find some old books

    • Ideally covering Java 1.1, not 1.2 or higher

      • You won’t get seduced by all the new classes, especially new 1.5 features like generics and enums

      • But important concepts like inner classes are covered


Do you need a bes l.jpg
Do You Need a BES?

  • RIM ISV partners can purchase a BES for development purposes

    • useful for testing apps

    • can enable things that corporate BES disallows

    • and for understanding how things are done

    • IT may raise concerns

    • not that easy to setup

      • don’t forget a mail server is required

      • Exchange needs its own NT domain


Code signing l.jpg
Code Signing

  • Most “interesting” APIs protected, app won’t run on device without being signed

    • But you can run them in the simulator

  • Signing requires certificates obtained from RIM

    • Small fee ($100) involved

    • Certificates needed for each build machine

  • Signing is an online-only process

    • Communicates back to RIM

    • Certificate owners gets email every time



Reduce reuse recycle l.jpg
Reduce, Reuse, Recycle

  • Don’t create lots of objects

    • Garbage collection eats up CPU time

    • Can run out of object handles

  • Look for opportunities to reuse objects

    • Invariant classes good in theory, but more realistic to allow changes

    • Remember arrays are objects!


Use threads l.jpg
Use Threads

  • Always do I/O operations on an application-defined thread

    • Don’t block the system event thread

      • Not only slows things down, but may also cause the app to freeze as system tries to prompt user for permission

    • Java threading mechanisms are quite good

      • Take the effort to learn them

      • Good book is Concurrent Programming in Java by Doug Lea


Keep applications small l.jpg
Keep Applications Small

  • Don’t go overboard with inner and nested classes

  • Think carefully about class interactions and dependencies

  • Can you get away with using a built-in class instead of your own?


Http or sockets l.jpg
HTTP or Sockets?

  • If you’re using MDS, sockets are a great option

    • Can also open a server socket and listen for data to be pushed to your app

    • Extra complexity of defining your own protocol

  • For non-MDS, HTTP is the best

    • Easier to get through the firewall

    • Support varies greatly by carrier, though

    • HTTPS may also be available

    • Easy to write servlet that shares the same data classes (Java on both ends)


Start the mds simulator l.jpg
Start the MDS Simulator!

  • If you’re doing network I/O, remember to start the MDS simulator before you run your app in the device simulator


Moving beyond the blackberry l.jpg
Moving Beyond the BlackBerry

  • Non-BlackBerry J2ME devices becoming more powerful

    • Still mostly consumer-oriented

    • In the future, more will be running the BlackBerry environment (BlackBerry Built-In) as well

      • Your BlackBerry apps will work on BlackBerry Built-In without any changes

  • Things you take for granted in an MDS environment are not there

    • Have to get through the firewall

    • Not as secure


Midp only is one option l.jpg
MIDP-Only Is One Option

  • You can write an application that only uses APIs from MIDP and perhaps an optional package or two

  • Application gets packaged as JAR file and an accompanying JAD file

  • Will run on most J2ME-enabled cellphones

    • Except that there are many buggy implementations


Other option split the source l.jpg
Other Option: Split the Source

  • Alternatively, build two different apps, one for BlackBerry, one for MIDP

  • Split code into three parts

    • One common (no BlackBerry APIs, no user interface)

    • One for BlackBerry

    • One for MIDP

    • More complex code due to use of factories and more interfaces and abstract classes



ad