This webinar presentation gives you an overview of how to port various types of Android applications to the Series 40 platform. Join Michael Samarin of Futurice as he walks you through the basic porting tasks involved and shows you how to map Android APIs to corresponding Series 40 APIs. In live coding demonstrations, Michael will use simple hands-on examples to illustrate a step-by-step porting process. This presentation will pay special attention to UI portability and creating a consistent user experience on Series 40 phones.
Handwritten Text Recognition for manuscripts and early printed texts
Porting Android apps to the Series 40 platform
1. Series 40 Developer Training
Porting from Android
to Series 40
Michael Samarin, Ph.D
Director,
Developer Training
Futurice
@MichaelSamarin
2. › This Webinar is compressed summary
of the following resources:
› Porting:
Resources
at › http://www.developer.nokia.com/Develop/Porting
Nokia Developer › Guide for Android Developers:
› http://www.developer.nokia.com/Resources/Library/
Porting_to_Series_40/#!porting-from-android-to-
series-40.html
4. Developer Tools
Android Series 40
Officially supported IDEs Eclipse Eclipse and NetBeans IDE
Emulator Multiple profiles One profile per SDK
installation
Emulator debugging Yes Yes
On-device debugging Yes Yes, with On-Device Debugger
Remote Device Access No Yes, through Nokia RDA
6. Ranges and Differences
Feature Android Phone Series 40 Touch Phone
CPU 600+ MHz 200-1000 MHz
Display tech Capacitive Resistive or Capacitive
Touch interaction Multi-point touch Single-touch and Multi-point touch
Display resolution 240x320 upwards 240x320, 240x400
Sensors GPS, Proximity, Acceleration GPS, Acceleration
Multitasking Yes No
Background processing Yes No
Low-level API access Yes Limited
UI Definition Declarative or programmatical Programmatical
Ready-to-use UI Android UI Standard LCDUI, LWUIT
components
Battery life Fair Excellent
Development platforms Windows, Mac, Linux Windows
IDEs Eclipse Eclipse, Netbeans
Application size limitations 50MB + 4GB 2MB + Persistent Storage
7. Nokia Asha 311 Nokia Asha 305/306 Nokia Asha 308/309 Nokia Asha 303 Nokia Asha 302
240 x 400 240 x 400 240 x 400 240 x 320 320 x 240
Capacitive Touch Resistive Touch Capacitive Touch QWERTY and
Screen, Multipoint- Screen, Multipoint- Screen, Multipoint- Capacitive Touch QWERTY
touch (5 points) touch (2 points) touch Screen
ROM/RAM ROM/RAM ROM/RAM ROM/RAM ROM/RAM
256MB/128MB, 32 64MB/32MB, 32 GB 64MB/32MB, 32 GB 256MB/128MB, 32 GB 256MB/128MB, 32 GB
GB Micro SD Micro SD Micro SD Micro SD Micro SD
8. Memory Considerations
» On Series 40 Memory Limitations:
› Application JAR file size can’t exceed 2 MB.
› Java Heap Size is 2 or 4 MB.
› Use Nokia Device Matrix for checking:
http://www.developer.nokia.com/Devices/Device_specifications/
» Brings challenging decisions, especially to visually rich games, with many
bundled graphical resources.
» Option: post-download of needed resources and caching in RMS.
9. Apps particularly favorable for porting include
» Content-intensive applications, showing lots of textual content and making
use of vertical scrolling.
» Single-purpose tools utilizing network connectivity: Content aggregators,
RSS/News readers; Location-aware applications featuring maps.
» Various business applications.
» Casual games (puzzle, 2D arcade), children's apps (drawing, coloring, touch
interaction, soundboards).
10. Application Portability and considerations
category
Games: Arcade, Generally portable. Certain touch interactions might need to be redesigned. Use of images for
Action, Racing, graphics might need to be optimized. Many of these games can also be ported for non-touch
Sports devices: also lower-resolution ones, by downscaling the graphics.
Games: Brain, Generally portable. As these games are not usually graphically intensive, porting would be mostly
Puzzle, Cards, converting the game logic and adjusting graphics for new resolutions. Depending on the type of
Casual the game, a wide range of Series 40 devices can be targeted, including non-touch ones.
Books, Comics, Generally portable. Biggest challenge is likely scaling the graphical content. While a wide range of
Education, devices can be targeted, a particularly sweet spot for these applications would be the full touch
News/Magazines devices with lots of screen estate.
Business, Generally portable, except for productivity tools related to platform personalisation. These
Finance, applications can be made to work on a wide variety of screen sizes and input types. Porting is
Productivity mostly adjusting views and converting the application logic. Also adjusting to non-touch devices is
usually possible.
Communication, Generally not portable: VoIP, tethering, ringtone and caller ID applications not feasible in Series 40.
Social Messenger applications are limited to foreground processing.
11. Application category Portability and considerations
Entertainment, Generally portable. Applications can be made to work on a number of screen sizes and non-
Health, Lifestyle, touch devices. Most porting work is done with adjusting the UI and converting application logic.
Medical, Shopping, Background processing is not available to e.g. record GPS location on the background.
Sports
Media & Video Generally not portable. Simple video playback possible, but support varies across devices. See
Video Formats in the Developer Wiki.
Music & Audio Generally portable, e.g. streaming music from online, with the exception of lack of background
processing. Online streaming services generally work well where good network connetions are
available, regardless of the input paradigm used. Porting work is required for application UI and
audio streaming code.
Photography Portable, with reservations: camera accessible via JSR-234, no access to native code might make
filters difficult to implement. This category is best viewed on the larger screen sizes, i.e. touch
and type and full touch devices.
Tools, Widgets, Live Generally not portable: replacements for platform functionalities, virus scanners etc. not
Wallpapers, relevant in Series 40.
Personalisation,
Libraries
19. Porting › Consider Co-Development,
instead of classic “porting”
› Make clear separation
between business logic and
UI
› IT is possible to make libs
reusable between platforms
› JARs from Series 40 with
platform independent Java
code are reusable directly on
Android
20. › Android “Activity” vs. Midlet
Application Life › Android Background
Cycle Execution vs. Midlet instant
kill