Java ME



Andreas Jakl
Senior Technical Consultant
Forum Nokia

                              13 April, 2010
13.04.2010   © 2010 Nokia   2




Java?
• In numbers:
   – > 6 Billion Java-enabled devices
   – 2.6 Billion Java-enabled phones
     (8 out of 10 shipped in 2008)
   – 3.5 Billion Java Cards
   – 20 Million Java set-top boxes
   – 800 Million Java desktops
   – 180 Operators deploying Java content
   – 6 Million developers
13.04.2010        © 2010 Nokia                   3

                                                                                    MSA …    Mobile Service Architecture (JSRs 248 and 249)



Editions
                                                                                    JTWI …    Java Technology for the Wireless Industry, JSR 185
                                                                                    MIDP …   Mobile Information Device Profile
                                                                                    CDC …    Connected Device Configuration
                                                                                    CLDC …   Connected Limited Device Configuration

            Servers &     Servers &        High-end          Mobile phones &      Smart
           enterprise     personal      PDAs, TV set-top     entry-level PDAs     cards
           computers     computers      boxes, embedde
                                           d devices
           Optional
           Packages
                          Optional
                          Packages         Optional
                                           Packages

                                        Personal Profile         Optional
                                                                 Packages
             Java 2                         Personal
           Platform, E      Java 2            Basis
                                                                   MSA
            nterprise    Platform, St        Profile
             Edition       andard                                  JTWI
              (J2EE)       Edition        Foundation
                                                                   MIDP
                            (J2SE)          Profile


                                              CDC                  CLDC          Java Card



                                        Java Platform, Micro Edition (Java ME)
13.04.2010   © 2010 Nokia   4




Java SE vs. Java ME
• Java ME is mainly a subset of J2SE
    – But different UI- and event handling functionality
    – Less utility classes
        (only Vector and Hashtable, no LinkedLists, …)
• Code runs on both platforms?
    –     general algorithms: yes
    – But the whole application needs porting
13.04.2010   © 2010 Nokia   5




Targets




          + RIM / Blackberry
          + SonyEricsson
          + Motorola
13.04.2010   © 2010 Nokia   6




Basic Terms – Configuration
• Defines Java platform for different device classes
    – CLDC
        •   Limited UI                                 Currently used in
        •   Low computing power,
                                                       most phones:
                                                       CLDC 1.1
        •   Limited connectivity

    – CDC
        •   High bandwidth network connection
        •   larger memory requirements
13.04.2010   © 2010 Nokia   7




Basic Terms – Profile
• Extension and more detailed specification for a configuration
    – Contains APIs for UI, event handling, data storage, networks, timers, …
    – Minimum requirements for devices (screen size, input possibilities, ...)
• For mobile phones:
    – Mobile Information Device Profile (MIDP)
    – Currently used: MIDP 2.1
13.04.2010   © 2010 Nokia      8

                                                 Tornado Mania! 3D


Basic Terms – JSR
                                                 (Digital Chocolate)




• Java Specification Request (JSR)
                                                                                               RealReplay
    – Describe specifications and technologies                                                   (Mopius)


    – Mobile space: APIs, standards
• Examples:
    – JSR 82: Bluetooth APIs
    – JSR 179: Location API
    – JSR 184: Mobile 3D API
    – JSR 226: Scalable 2D Vector Graphics API
13.04.2010   © 2010 Nokia   9




What JSRs could be required?
• A mapping application could require:
   – JSR 226 (Vector Graphics)
       •   Map visualization

   – JSR 179 (Location)
       •   Where am I?

   – JSR 172 (Web Services)
       •   Requesting data

   – JSR 75 (File and PIM)               Google Maps Mobile
                                             © Google
       •   Map an address
13.04.2010   © 2010 Nokia   10




What does my phone support?




                   http://www.forum.nokia.com/devices/
13.04.2010   © 2010 Nokia   11




Development – NetBeans IDE
•   Fully integrated solution
     – Integrates all aspects of mobile
       development
     – Visual UI Designer
     – Game Builder
     – Localization, Preprocessing
     – Web access
     – Automated deployment
     – Comes with generic emulator
•   Maintained by Oracle (Sun)
     – http://www.netbeans.org/
                                          NetBeans (+ Java ME module)
13.04.2010   © 2010 Nokia   12




Development – Eclipse IDE
•   Mobile Tools for Java (MTJ)
     – Targets Java ME development
     – Supports MIDlets
     – Adds project type and Java ME perspective to Eclipse
     – Templates for common projects (games, etc.)
     – Localization, Preprocessing
     – Creates .jad/.jar packages
     – Originally based on EclipseME plug-in
•   Pulsar
     – Combined tools set – includes Eclipse, MTJ and other tools
     – http://eclipse.org/pulsar/
13.04.2010   © 2010 Nokia   13




SDKs
• Device vendor specific SDKs
   – Simulate target more accurately
   – Support proprietary APIs
   – Include device skins
• Generic SDK from Sun
   – Fine enough for initial development
   – http://java.sun.com/javame/downloads/sdk30.jsp
13.04.2010   © 2010 Nokia   14




Deployment Process


                                           .jar/.jad-file
                                          (MIDlet Suite)


                              Packaging


                 Compile &
                  Preverify

   Source code
     (.java)
13.04.2010   © 2010 Nokia   16




Future of Java ME
• Roadmap
   – Nokia makes its Java ME implementation open source
       •   Contribution to Symbian Foundation
   – Next version: Java Runtime 2.0 (JRT)
       •   Faster startup
       •   Easier installation
       •   Beta: http://betalabs.nokia.com/apps/nokia-java-runtime-20-for-s60
   – Future
       •   Migration to Qt based UI ongoing
       •   Hardware acceleration, haptics, etc.
   – http://blogs.forum.nokia.com/blog/java-runtime-for-s60-blog
Thank You.

Java me introduction

  • 1.
    Java ME Andreas Jakl SeniorTechnical Consultant Forum Nokia 13 April, 2010
  • 2.
    13.04.2010 © 2010 Nokia 2 Java? • In numbers: – > 6 Billion Java-enabled devices – 2.6 Billion Java-enabled phones (8 out of 10 shipped in 2008) – 3.5 Billion Java Cards – 20 Million Java set-top boxes – 800 Million Java desktops – 180 Operators deploying Java content – 6 Million developers
  • 3.
    13.04.2010 © 2010 Nokia 3 MSA … Mobile Service Architecture (JSRs 248 and 249) Editions JTWI … Java Technology for the Wireless Industry, JSR 185 MIDP … Mobile Information Device Profile CDC … Connected Device Configuration CLDC … Connected Limited Device Configuration Servers & Servers & High-end Mobile phones & Smart enterprise personal PDAs, TV set-top entry-level PDAs cards computers computers boxes, embedde d devices Optional Packages Optional Packages Optional Packages Personal Profile Optional Packages Java 2 Personal Platform, E Java 2 Basis MSA nterprise Platform, St Profile Edition andard JTWI (J2EE) Edition Foundation MIDP (J2SE) Profile CDC CLDC Java Card Java Platform, Micro Edition (Java ME)
  • 4.
    13.04.2010 © 2010 Nokia 4 Java SE vs. Java ME • Java ME is mainly a subset of J2SE – But different UI- and event handling functionality – Less utility classes (only Vector and Hashtable, no LinkedLists, …) • Code runs on both platforms? – general algorithms: yes – But the whole application needs porting
  • 5.
    13.04.2010 © 2010 Nokia 5 Targets + RIM / Blackberry + SonyEricsson + Motorola
  • 6.
    13.04.2010 © 2010 Nokia 6 Basic Terms – Configuration • Defines Java platform for different device classes – CLDC • Limited UI Currently used in • Low computing power, most phones: CLDC 1.1 • Limited connectivity – CDC • High bandwidth network connection • larger memory requirements
  • 7.
    13.04.2010 © 2010 Nokia 7 Basic Terms – Profile • Extension and more detailed specification for a configuration – Contains APIs for UI, event handling, data storage, networks, timers, … – Minimum requirements for devices (screen size, input possibilities, ...) • For mobile phones: – Mobile Information Device Profile (MIDP) – Currently used: MIDP 2.1
  • 8.
    13.04.2010 © 2010 Nokia 8 Tornado Mania! 3D Basic Terms – JSR (Digital Chocolate) • Java Specification Request (JSR) RealReplay – Describe specifications and technologies (Mopius) – Mobile space: APIs, standards • Examples: – JSR 82: Bluetooth APIs – JSR 179: Location API – JSR 184: Mobile 3D API – JSR 226: Scalable 2D Vector Graphics API
  • 9.
    13.04.2010 © 2010 Nokia 9 What JSRs could be required? • A mapping application could require: – JSR 226 (Vector Graphics) • Map visualization – JSR 179 (Location) • Where am I? – JSR 172 (Web Services) • Requesting data – JSR 75 (File and PIM) Google Maps Mobile © Google • Map an address
  • 10.
    13.04.2010 © 2010 Nokia 10 What does my phone support? http://www.forum.nokia.com/devices/
  • 11.
    13.04.2010 © 2010 Nokia 11 Development – NetBeans IDE • Fully integrated solution – Integrates all aspects of mobile development – Visual UI Designer – Game Builder – Localization, Preprocessing – Web access – Automated deployment – Comes with generic emulator • Maintained by Oracle (Sun) – http://www.netbeans.org/ NetBeans (+ Java ME module)
  • 12.
    13.04.2010 © 2010 Nokia 12 Development – Eclipse IDE • Mobile Tools for Java (MTJ) – Targets Java ME development – Supports MIDlets – Adds project type and Java ME perspective to Eclipse – Templates for common projects (games, etc.) – Localization, Preprocessing – Creates .jad/.jar packages – Originally based on EclipseME plug-in • Pulsar – Combined tools set – includes Eclipse, MTJ and other tools – http://eclipse.org/pulsar/
  • 13.
    13.04.2010 © 2010 Nokia 13 SDKs • Device vendor specific SDKs – Simulate target more accurately – Support proprietary APIs – Include device skins • Generic SDK from Sun – Fine enough for initial development – http://java.sun.com/javame/downloads/sdk30.jsp
  • 14.
    13.04.2010 © 2010 Nokia 14 Deployment Process .jar/.jad-file (MIDlet Suite) Packaging Compile & Preverify Source code (.java)
  • 15.
    13.04.2010 © 2010 Nokia 16 Future of Java ME • Roadmap – Nokia makes its Java ME implementation open source • Contribution to Symbian Foundation – Next version: Java Runtime 2.0 (JRT) • Faster startup • Easier installation • Beta: http://betalabs.nokia.com/apps/nokia-java-runtime-20-for-s60 – Future • Migration to Qt based UI ongoing • Hardware acceleration, haptics, etc. – http://blogs.forum.nokia.com/blog/java-runtime-for-s60-blog
  • 16.