SynapseIndia Mobile Apps Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices. Scope of the doc: ď ŽFocus on 1st release (+ potential future features)
1
Contents
Eclipse High-Level ArchitectureWizards Java Runtime Environments Runtime Launch MTJ Ecosystem Debugging MTJ high-level layers Code Editor MTJ Development by MilestoneDeployment Device fragmentation Device Management Pre-processing Signing and Obfuscation Automated & manual testing Localization Build management Application Flow GUI Editor Backup slides
17.02.2006
2
Eclipse High-level Architecture Ec o s y s t e m Ve r t ic a l In d u s t r y In it ia t iv e s
Enterprise Enterprise Domain Domain
Internet Internet Domain Domain
Desktop Desktop Domain Domain
Embedded Embedded Domain Domain
Mobile Mobile Domain Domain
Data Data Management Management
Modeling Modeling Tools Tools
Embedded Embedded & & Mobile Mobile Tools Tools
Web Web Tools Tools
Service Service Oriented Oriented Architecture Architecture
Java Java Dev. Dev. Tools Tools
C/C++ C/C++ Dev. Dev. Tools Tools
Test Test and and Performance Performance
Business Business Intelligence Intelligence & & Reporting Reporting
System System Management Management
Modeling Modeling Frameworks Frameworks
Graphical Graphical Frameworks Frameworks
UI UI Frameworks Frameworks
Workspace Workspace
Project Project Model Model
Update Update
Runtime Runtime
Workbench Workbench
SWT SWT
17.02.2006
Ho rizo n t a l Te c h n o lo g ie s
Te c h n o lo g y En a b le rs
Fra Fr a m e w o rk r ks
Multi-language Multi-language support support
To o ls Pla t fo rm
Ric h Clie n t Pla t fo r m
3
Java Runtime Environments Legend
Enterprise Optional packages
Desktop
High-end devices
Optional packages
J2EE
J2SE
Low-end devices
Smart Cards
Java JRE runtime dependencies J&C and MTJ runtime scope
Optional packages
Not used Java runtime
Personal profile
Optional packages
Foundation profile
MIDP
CDC
CLDC
Java Card
KVM KVM
Card VM
Java Java Virtual Virtual Machine Machine
Java Micro Edition (J2ME) The MTJ projects focus in Mobile runtimes is in the J2ME area.
17.02.2006
4
MTJ Ecosystem Eclipse Eclipse
Download Download // Update Update sites sites Eclipse Eclipse
U U E E II
Vendor X SDK
API API
MTJ MTJ
JavaDocs JavaDocs API API
API API
JavaDocs JavaDocs
Sun Sun // IBM IBM
(tooling (tooling runtime runtime JRE JRE 5.0 5.0 // J9 J9 ))
Vendor Y SDK A A List List of of JVMS JVMS
X X U U E E II
Vendor Vendor X X (for (for SDK SDK download) download)
JavaDocs JavaDocs API API
Tooling Runtimes JRE 1.4 .. 5.0, J9 Operating Systems: Win32, Linux, MAC.
Vendor Vendor Y Y (for (for SDK SDK download) download)
API API
Real Real Device Device
JavaDocs JavaDocs
MTJ context
17.02.2006
Generic SDK
5
Different Different vendor products products based based on on Eclipse MTJ MTJ
MTJ high-level layers Mobile IDE Components Device Platform Provider
Device Description Provider
Obfuscation Provider
Packaging Provider
Signing Provider
Device Platform Provider
GUI Builder Provider
Preprocessing Provider
Build Provider
Deployment Provider
Ant Provider
x
Runtime Management
Build Build Management Management
Deployment Deployment Management Management
Device Management
Mobile IDE Extensibility Framework Layer Security GUI Security GUI Builder Builder Management Management Management Management
Visual Visual Editor Editor
Web Web Tools Tools Project Project
GEF GEF
Data Data Tools Tools
Multimedia Multimedia Tools Tools
MultiMultilanguage language support support
Graphical Graphical Modeling Modeling Framework Framework
BIRT BIRT
Testing Testing & & Profiling Profiling Tools Tools
Workflow Workflow Toolbox Toolbox Eclipse Modeling Framework
EMF EMF OSGI OSGI
17.02.2006
Eclipse Tool Services
SWT SWT
Workbench Workbench
Eclipse Platform
JDT JDT
Operating Systems: Win32, Linux, MAC
6
MTJ Development by Milestone
GUI GUI builders builders
Mobile Mobile RAD RAD // IDE IDE
Wizards Wizards
Mobile Mobile SDK SDK Emulator Emulator
Provider Provider Components Components Build
Create Create Application Application
Code Code Packaging Packaging
Build Build
Project
Create Create Class Class
Create Create Project Project
Deployment Deployment
J2ME J2ME Nature Nature
Obfuscation Obfuscation providers providers
Audio Audio converter converter
Flow Flow Editor Editor
Code Code Editor Editor
Signing Signing provider provider
Custom Custom Components Components
LCDUI LCDUI Editor Editor
J2ME J2ME project project builders builders
Deployment Deployment providers providers
Localization Localization
eSWT eSWT Editor Editor
PrePreprocessing processing
JAD JAD Editor Editor
Symbian Symbian templates templates
Create Create UI UI
Runtime Runtime launch launch Desktop Desktop
Device Device
Packaging Packaging
Debugging Debugging Desktop Desktop
Game Game Editor Editor
Other
Xx Xx Editor Editor
Snippets Snippets
Build Build Framework Framework
Deployment Deployment Framework Framework
Runtime Runtime Management Management Framework Framework
GUI GUI Builder Builder Framework Framework
Security Security Management Management Framework Framework
Eclipse Eclipse Platform Platform
17.02.2006
nd
2 Iteration 1st Release Future design
IDE IDE Extensible Extensible Framework Framework Layer Layer Device Device Management Management Framework Framework
1st Iteration
Help Help
Antenna Antenna provider provider
Device Device
Legend
7
Device fragmentation
Different characteristics of devices must be taken into account Physical device characteristics, e.g. display resolution,-size and buttons, processing power and memory Quirks in the OS, API and Java virtual machine implementations Variation comes also from APIs supported by each device Flavours of Symbian (S60, S80, S90) and other mobile OS versions J2ME profiles and configurations CLDC 1.0/1.1 and MIDP 1.0/2.0 Optional APIs for Bluetooth, 3D, Multimedia, Web Services, etc. Proprietary APIs from device manufacturers and operators In addition, there are other operator and market requirements Localisation, branding, billing, etc. New devices and APIs are introduced frequently Varying devices
17.02.2006
Differing assets
Operator requirements
Huge amount of configurations
8
Device fragmentation, Mobile value chain Application Application Developers Developers
Content Content aggregators aggregators and and Distributor Distributor
End-user End-user // consumer consumer
Network Network operators operators
Infrastructure Infrastructure providers providers
Legend
Information exchange Cash flow exchange
17.02.2006
Retail Retail
Device Device manufactures manufactures
This diagram represents the major players in the wireless industry. Application- and Content providers have partnered with Network operators to design and develop Java solutions for consumers. Content aggregators license content from it’s creators and format it to be used with specific devices and networks. Content distributors create the revenue by providing the distribution channels. Network operators (carriers) and Infrastructure providers control the wireless network and own the customer information. Device manufactures drive the technical innovation through the new hardware. The application developers and content aggregators needs most tools against the device fragmentation.
9
Device fragmentation, pre-processing ď Ž
ď Ž
ď Ž
Definition: Pre-processing changes the source code before it is compiled. It allows conditional compilation and inclusion of one source file into another and is helpful when trying to maintain a single source for several devices, each having its own bugs, add-on APIs, etc. and it enables device optimization. The Eclipse JDT could add support for pre-processing, alternative could be e.g. J2ME Polish, which can be integrated to Eclipse (licensing must be checked) or re-implementing the similar functionality. One key feature is the device description database, that helps to create tasks or actions against similar devices. The device description database enables that developers can identify and group devices with an keyword, Can be seen as one definition that can be used e.g. in pre-processing. Device
i/f
Device Platform
17.02.2006
1
1..n
Emulator
Real
Device
Device
10
1
Runtime Platform Definition Fragmentation Definition
Application Flow ď Ž
The Application Flow creates kind a action diagram, where the visible and invisible actions are drawn on a graphical editor. The AF-editor enables that developer can design e.g. mobile application UI flow.
17.02.2006
11