Upload
synapseindiappsdevelopment
View
46
Download
3
Embed Size (px)
Citation preview
1
SynapseIndia Mobile Apps Tools forJava PlatformThe goal of the Mobile Tools for Java project is to extend existing Eclipse The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application development. frameworks to support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices.applications to emulators and real devices.
Scope of the doc:Focus on 1st release (+ potential future features)
217.02.2006
Contents Eclipse High-Level Architecture Java Runtime Environments MTJ Ecosystem MTJ high-level layers MTJ Development by Milestone Device fragmentation Pre-processing Automated & manual testing Build management
Wizards
Runtime Launch
Debugging
Code Editor
Deployment
Device Management
Signing and Obfuscation
Localization
Application Flow
GUI Editor
Backup slides
317.02.2006
Eclipse High-level Architecture
Tools PlatformTools
Platform
FrameworksFrameworks
Rich Client PlatformRich Client Platform
Technology Enablers
Technology Enablers
EcosystemEcosystem
Vertical Industry InitiativesVertical Industry Initiatives
Horizontal TechnologiesHorizontal
Technologies
SWTSWTSWTSWTWorkbenchWorkbenchWorkbenchWorkbenchRuntimeRuntimeRuntimeRuntime
UpdateUpdateUpdateUpdateProject ModelProject ModelProject ModelProject ModelWorkspaceWorkspaceWorkspaceWorkspace Multi-languageMulti-languagesupportsupport
Multi-languageMulti-languagesupportsupport
UI FrameworksUI FrameworksUI FrameworksUI FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksModeling FrameworksModeling FrameworksModeling FrameworksModeling Frameworks
Test and Test and PerformancePerformance
Test and Test and PerformancePerformance
C/C++ Dev. C/C++ Dev. ToolsTools
C/C++ Dev. C/C++ Dev. ToolsTools
Java Dev. Java Dev. ToolsTools
Java Dev. Java Dev. ToolsTools
Business Business Intelligence & Intelligence &
ReportingReporting
Business Business Intelligence & Intelligence &
ReportingReporting
Web ToolsWeb ToolsWeb ToolsWeb ToolsEmbedded & Embedded & Mobile ToolsMobile ToolsEmbedded & Embedded & Mobile ToolsMobile Tools
Modeling Modeling ToolsTools
Modeling Modeling ToolsTools
Data Data ManagementManagement
Data Data ManagementManagement
Service Service Oriented Oriented
ArchitectureArchitecture
Service Service Oriented Oriented
ArchitectureArchitecture
System System ManagementManagement
System System ManagementManagement
Desktop Desktop DomainDomainDesktop Desktop DomainDomain
Internet Internet DomainDomainInternet Internet DomainDomain
Enterprise Enterprise DomainDomain
Enterprise Enterprise DomainDomain
Embedded Embedded DomainDomain
Embedded Embedded DomainDomain
Mobile Mobile DomainDomain Mobile Mobile DomainDomain
417.02.2006
Java Runtime Environments
Desktop Low-enddevices
Enterprise High-enddevices
SmartCards
Optionalpackages
Optionalpackages
Optionalpackages
MIDP
Optionalpackages
CLDC
Foundationprofile
CDC
Personalprofile
JavaCard
Card VMKVMKVMJava Virtual MachineJava Virtual Machine
Java Micro Edition (J2ME)
J2EE J2SE
Legend
Java JRE runtime dependencies
Not used Javaruntime
J&C and MTJ runtime scope
The MTJ projects focus in Mobile runtimes is in the J2ME area.
517.02.2006
MTJ Ecosystem
MTJ context
EclipseEclipseEclipseEclipse
Operating Systems: Win32, Linux, MAC.
Operating Systems: Win32, Linux, MAC.
Tooling RuntimesJRE 1.4 .. 5.0, J9Tooling RuntimesJRE 1.4 .. 5.0, J9
XX
UEI
UEI
Vendor Y SDKVendor Y SDK
JavaDocsJavaDocs
APIAPI
Real DeviceReal DeviceReal DeviceReal Device
Download / Download / Update sitesUpdate sites
EclipseEclipse
Download / Download / Update sitesUpdate sites
EclipseEclipse
Sun / IBM Sun / IBM (tooling runtime(tooling runtime
JRE 5.0 / J9 )JRE 5.0 / J9 )
Sun / IBM Sun / IBM (tooling runtime(tooling runtime
JRE 5.0 / J9 )JRE 5.0 / J9 )
Vendor X Vendor X (for SDK download)(for SDK download)
Vendor X Vendor X (for SDK download)(for SDK download)
Different Different vendorvendor
products products based based
on Eclipse on Eclipse MTJMTJ
Different Different vendorvendor
products products based based
on Eclipse on Eclipse MTJMTJ
Generic SDKGeneric SDK
APIAPI
JavaDocsJavaDocs
MTJMTJMTJMTJ
JavaDocsJavaDocsJavaDocsJavaDocs
APIAPI
APIAPIAPIAPI
A List of A List of JVMSJVMS
A List of A List of JVMSJVMS
Vendor Y Vendor Y (for SDK download)(for SDK download)
Vendor Y Vendor Y (for SDK download)(for SDK download)
UEI
UEI
Vendor X SDKVendor X SDK
JavaDocsJavaDocs
APIAPI
617.02.2006
MTJ high-level layersMobile IDE ComponentsMobile IDE Components
Mobile IDE Extensibility Framework LayerMobile IDE Extensibility Framework Layer
Eclipse PlatformEclipse Platform
Eclipse Modeling FrameworkEclipse Modeling Framework
OSGIOSGIOSGIOSGI
Eclipse Tool ServicesEclipse Tool Services
Operating Systems: Win32, Linux, MACOperating Systems: Win32, Linux, MAC
Deployment Deployment ManagementManagementDeployment Deployment ManagementManagement
SWTSWTSWTSWT WorkbenchWorkbenchWorkbenchWorkbench
Visual Visual EditorEditorVisual Visual EditorEditor
Web Tools Web Tools ProjectProject
Web Tools Web Tools ProjectProject GEFGEFGEFGEF
Testing & Testing & Profiling Profiling Tools Tools
Testing & Testing & Profiling Profiling Tools Tools
EMF EMF EMF EMF
Build Build ManagementManagement
Build Build ManagementManagement
Runtime Management
Runtime Management
Device Management
Device Management
BIRTBIRTBIRTBIRT Workflow Workflow ToolboxToolbox
Workflow Workflow ToolboxToolbox
Data Tools Data Tools Data Tools Data Tools
Graphical Graphical Modeling Modeling
Framework Framework
Graphical Graphical Modeling Modeling
Framework Framework
JDTJDTJDTJDT
GUI Builder GUI Builder ManagementManagementGUI Builder GUI Builder
ManagementManagement
Multi-Multi-language language supportsupport
Multi-Multi-language language supportsupport
Multimedia Multimedia ToolsTools
Multimedia Multimedia ToolsTools
Security Security ManagementManagement
Security Security ManagementManagement
Obfuscation Provider
Obfuscation Provider
Device Description
Provider
Device Description
Provider
Device Platform Provider
Device Platform Provider
Packaging Provider
Packaging Provider
Signing ProviderSigning Provider
Device Platform Provider
Device Platform Provider
Build Provider
Build Provider
Pre-processing
Provider
Pre-processing
Provider
GUI Builder Provider
GUI Builder Provider
Deployment Provider
Deployment Provider Ant ProviderAnt Provider xx
717.02.2006
MTJ Development by MilestoneMobile RAD / IDEMobile RAD / IDEMobile RAD / IDEMobile RAD / IDE
Provider ComponentsProvider Components
IDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework Layer
Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform
Mobile SDK Mobile SDK EmulatorEmulator
Mobile SDK Mobile SDK EmulatorEmulator
WizardsWizardsWizardsWizards
Create Create ApplicationApplication
Create Create ApplicationApplication
Create Create ClassClass
Create Create ClassClass
Code Code PackagingPackaging
Code Code PackagingPackaging
Create Create ProjectProjectCreate Create ProjectProject
BuildBuildBuildBuild
DeploymentDeploymentDeploymentDeployment
Deployment providers
Deployment providers
Signing providerSigning provider
SnippetsSnippets
DebuggingDebugging
DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice
Runtime launchRuntime launch
DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice
GUI builders GUI builders
HelpHelp
LCDUI LCDUI EditorEditor
LCDUI LCDUI EditorEditor
eSWT eSWT EditorEditoreSWT eSWT EditorEditor
Game EditorGame EditorGame EditorGame Editor
Flow EditorFlow EditorFlow EditorFlow Editor
Custom Components
Custom Components
LocalizationLocalization
J2ME NatureJ2ME Nature
Audio converter
Audio converter
LegendLegend
11stst Iteration Iteration
22ndnd
Iteration Iteration
11stst Release Release
Future designFuture design
Runtime Management Framework
Runtime Management Framework
Deployment FrameworkDeployment FrameworkBuild FrameworkBuild Framework
Device Management Framework
Device Management Framework
GUI Builder FrameworkGUI Builder Framework
Security Management Framework
Security Management Framework
Obfuscation providers
Obfuscation providers
XxXx Editor Editor
XxXx Editor Editor
JAD EditorJAD Editor
Code EditorCode Editor
J2ME project builders
J2ME project builders
Symbian Symbian templatestemplatesSymbian Symbian templatestemplates Create UICreate UICreate UICreate UI
Pre-processing
Pre-processing
PackagingPackaging
Antenna providerAntenna provider
Project Build Other
817.02.2006
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
Huge amount ofconfigurations
VaryingdevicesVaryingdevices
Differingassets
Differingassets
Operatorrequirements
Operatorrequirements
917.02.2006
Device fragmentation, Mobile value chain
Application Application DevelopersDevelopersApplication Application DevelopersDevelopers
Content Content aggregators and aggregators and
DistributorDistributor
Content Content aggregators and aggregators and
DistributorDistributor
Network operatorsNetwork operatorsNetwork operatorsNetwork operators
End-user / End-user / consumer consumer End-user / End-user / consumer consumer
Infrastructure Infrastructure providersproviders
Infrastructure Infrastructure providersproviders
Device Device manufacturesmanufactures
Device Device manufacturesmanufactures
RetailRetailRetailRetail
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.
LegendLegend
Information exchangeInformation exchange
Cash flow exchangeCash flow exchange
1017.02.2006
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, that can be used e.g. in pre-processing.
DeviceDevice
Emulator
Device
Emulator
Device
Real
Device
Real
Device1..n
1
Device Platform Device Platformi/f
Fragmentation Definition
Fragmentation Definition
1
Runtime Platform Definition
Runtime Platform Definition
Can be seen as one definition
1117.02.2006
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.