Java ME on Symbian JavaOne BoF Presentation RBH

  • Upload
    symbian

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    1/51

    Java ME on Symbian

    Daniel RochaNokia

    Roy Ben HayunSymbian Press author

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    2/51

    > Foreword by James O. Coplien> Four different sections> Checkout podcast #77

    http://community.

    java.net/mobileandembedded/

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    3/51

    3

    Agenda

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    4/51

    4

    Agenda

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    5/51

    A short history: 10 years++

    1998

    2008

    Copyright 2009 Symbian Foundation. Public

    Symbian Ltdwas founded byEricsson,Motorola, Nokia,and Psion,to createSymbian OS

    2009

    Nokia acquires Symbian LtdThe Symbian Foundationis announced by the initialboard members.2006

    100 millionphones shipped

    250 million phones shipped200 millionphones shipped

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    6/51

    Truly Independent, Truly Open

    6 Copyright 2009 Symbian

    Foundation.

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    7/51

    > Open Source> Open Tools and SDKs> Open Development Process> Open Roadmap> Open Membership> (Almost) Open Website! - developer.symbian.org

    Open In More Ways Than One!

    Copyright 2009 Symbian

    Foundation.7

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    8/51

    > Ten years of roadmap development Ever increasing completeness, predictability, compatibility, quality

    > 250+ million devices 40+ million in Japan alone

    > 250+ device models: numerous form factors> 250+ operators worldwide

    Operator Review Board, complements TechCom> Tens of thousands of applications> 4 million developers

    Native Symbian C++ Open Environment (POSIX-compliant) Web Run Time, Python, Ruby Java ME, Flash Lite, C# .NET, MS Silverlight

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    9/51

    Please welcomethe Symbian platform!

    40 million lines of code (device/tools/test/PC)450,000 source code files

    45,000 directories of source code files2000 software components

    100+ packages3 layers covering 14 technology domains

    1 unified mobile operating system

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    10/51

    10

    Agenda

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    11/51

    11

    Be calm Its Java ME!> MIDlet.. LCDUI.. GCF.. and all that Jazz..

    > You can use MSA Component JSRs

    > You can use WTK, Java ME SDK 3.0

    > The familiar Java community and ecosystem

    > Only it comes with the power of Symbian platform

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    12/51

    12

    MSA support on Symbian platform> Evolutionary approach

    > Highly consistent implementation on many devices

    > JSRs are tightly integrated with native services

    > Including many optional MSA features

    > Lets have a quick look at a Symbian device?

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    13/51

    13

    Taking a first on-device tour

    > Deploy, install and run

    > Supported MSA Component JSRs

    > Task manager

    > Application manager

    > Security settings

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    14/51

    N95 on-device tour

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    15/51

    No fixed limits to computing resources

    > No fixed limit to JAR size

    > Expanding and shrinking Java heap

    > Number of threads, connections, files, RMS size etc..

    > Java ME applications are first class citizen

    > Allows developers to focus on the main tasks

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    16/51

    16

    Aim high its a smartphone!> Plan for high standards of UX

    > Use the powerful multimedia capabilities

    > Consider diversity of Symbian devices

    > Consider synergy and interoperability

    > Explore technical opportunities on Symbian devices

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    17/51

    17

    Multitasking

    > Symbian platform is a fully multitasking OS

    > Java applications are first class citizens

    > S60 JAD attributes for multitasking

    > Users switch with Task ManagerDisplay.getDisplay(this).setCurrent(null);

    this.resumeRequest();Display.getDisplay(this).setCurrent(form);

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    18/51

    Demo:Self-switching foreground & background

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    19/51

    19

    Symbians JAD attributes (1/3)

    > Graphics and UI attributes> Nokia-MIDlet-Target-Display-Size> Nokia-MIDlet-Original-Display-Size>

    Nokia-MIDlet-Canvas-Scaling-Orientation-Switch

    > Nokia-Scalable-Icon> Nokia-UI-Enhancement> Nokia-Scalable-Icon> Nokia-UI-Enhancement

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    20/51

    20

    Symbians JAD attributes (2/3)

    > Multitasking> Nokia-MIDlet-No-Exit> Nokia-MIDlet-Flip-Close>

    Nokia-MIDlet-Background-Event

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    21/51

    21

    Symbians JAD attributes (3/3)

    > For touch devices> Nokia-MIDlet-On-Screen-Keypad> Nokia-MIDlet-App-Orientation

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    22/51

    Scaling: full screen, orientation switch,

    no keypad> Attribute values:

    Nokia-MIDlet-Canvas-Scaling-Orientation-Switch: true Nokia-MIDlet-Original-Display-Size: 240,320 Nokia-MIDlet-On-Screen-Keypad: no

    > The image is changed, when sizeChanged() method is called> From 640x360 to 360x640, or vice versa, sizeChanged()

    is called and orientation is changed

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    23/51

    23

    eSWT

    > eSWT is the embedded Standard Widget Toolkit> Subset of desktop SWT API + Mobile Extensions> eSWT API specification: Eclipse eRCP web page.

    > Widget gallery ->http://www.eclipse.org/ercp/eswt/gallery/gallery.php

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    24/51

    24

    IAP Info

    > IAP Info API is a Java API, withwhich MIDlets can access internetaccess point group related information,including:

    > Internet access point (IAP) relatedinformation (ID, type, name)

    > Internet access point group (Destinationnetwork) related information (ID, name,IAPs contained)

    > List of preferred Access Points

    > Last used Access Point(for TCP socket connections)

    > Connector.open("http://www.nokia.com;nokia_apnid=2")

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    25/51

    Improved security prompting

    > Many improvements made after S60 3rd. FP2> Easier for the user to grant/deny permissions> Combined with checkPermission(), gives ideal

    MIDlet usability when it comes to permissions.

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    26/51

    26

    Java Runtime for S60

    > Independent from S60 releases> Brings news features in a faster way> Selected S60 3rd Edition, Feature Pack 2 and S60

    5th Edition devices> Allows users to update their Java Runtime to

    support new features e.g. JSR 256 MobileSensor

    > Inclusion in Symbian Foundation SDK TBD> NokiaN5800d-1/20.0.012/sw_platform=S60;sw_platform_version=5.0;java_build_version=1.3.4

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    27/51

    Mobile Sensor JSR 256

    > Added with Java Runtime 1.4> Provides access to device sensors, like:> Accelerometer- Used to measure acceleration of

    the device on three different axes (x, y and z).> Battery charge level sensor> Charger state sensor> Network field intensity sensor Used to measure

    the intensity of the currently used cellular networksignal.

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    28/51

    28

    Agenda

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    29/51

    29

    Java ME SDKs for Symbian platform> WTK and Java ME SDK 3.0

    > Nokia S60 3rd Edition SDK

    > UIQ SDK

    > SEMC SJP-3

    > Motodev> Symbian^1 SDK WTK \ Java ME SDK 3.0

    S60 UIQ

    SEMC

    UI Platform

    OEM

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    30/51

    30

    Symbian platform MIDP SDKs

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    31/51

    Emulation, vs Real emulationSymbian1 SDK emulator comes with full stackof Symbian platform!

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    32/51

    Demo Symbian^1 SDK

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    33/51

    Add the native tools to your toolbox

    > Device features emulation e.g., SMS emulation, flip open/close etc..

    > Native memory profiler> Native CPU profiler

    > PC-Device connectivity

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    34/51

    Demo Nokia Energy Profiler

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    35/51

    Redirector API

    //executing in a separate MIDlet, running in the backgroundclass MyRedirector extends Thread {

    public void run() { ...

    ic = (InputConnection)Connector.open("redirect://", );in = ic.openInputStream();...

    len = inputStream.read(buffer);String s = new String(buffer, 0, len);

    //show log \ send \ save to file.. etc.. appendLogMessage(s);}}

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    36/51

    Demo Redirector API

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    37/51

    On Device Debugging (under the hood)

    IDE

    SDK

    launch

    debug

    SW Installer

    SystemAMS

    Debug Agent

    VMKDP Agent

    install

    launch

    start

    start

    JDWP KDWP

    terminate

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    38/51

    Demo On Device Debugging on N95

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    39/51

    39

    Agenda

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    40/51

    Ovi Store (1/4)

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    41/51

    41

    Ovi Store (2/4)

    > Main route to market for most companies> Access to 60+ devices and 50 million users (at

    launch)

    > Available in 190+ countries> Automated publishing system> QA done by Nokia> 70/30 revenue sharing> Allows publishing Java, Symbian and Flash Liteapps, content, widgets, media for tens of devices

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    42/51

    Ovi Store (3/4)

    > Ovi Publisher guide:> Symbian apps -> need to be pre-tested and must

    fulfill the Symbian Signed Certificationrequirements

    > Java apps -> must be pre-tested and fulfill JavaVerified requirements.

    > Java and Symbian unsigned apps are not allowedon Ovi Store.

    > Lighter signing requirements: Thawte and VeriSign signing for Java are accepted Symbian Express signing is accepted

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    43/51

    Ovi Store (4/4)

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    44/51

    44

    Symbian Signed> NOT relevant to MIDP applications!!!

    > But just so youll know.. Symbian OS is built around the Platform Security

    concept

    Applications need to be granted capabilities toexecute sensitive operations on the device

    Simpler applications do not need any advancedcapabilities, and do not need to be (Symbian)

    signed Capability granting is done through signing

    (Symbian Signed)

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    45/51

    45

    Agenda

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    46/51

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    47/51

    47

    Finding more information

    > Java ME on Symbian OS at www.wiley.com

    > developer.symbian.org

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    48/51

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    49/51

    49

    Summary

    > Introduction to the Symbian platform> Enter Java ME on Symbian> Java ME development for Symbian devices> Routes to market> Finding more information

    > Lots of demos.. books.. E71..

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    50/51

    Questions?

  • 8/14/2019 Java ME on Symbian JavaOne BoF Presentation RBH

    51/51