Download Extending, Expanding, and Porting Mobile

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Extending, Expanding, and Porting
Mobile & Embedded Community
Projects
by Phil Bartholo
www.bartholo.com/OSCON/
Goals
‣ Learn how the core M&E Community projects
have been the catalyst for numerous ports,
extensions, and expanded open source uses
not previously envisioned when the
community launched.
Java Momentum
6 Billion Java-Enabled Devices
2.5 Billion Java-Enabled Phones
3.5 Billion Java Card
20 Million Java Set-top Boxes
800 Million Java Desktops
180 Operators Deploying
Java Content
6 Million Developers
Why Open Source?
•Bring communities together
and extend them
•Engage platform and
application developers, ISV's,
tools vendors, and operators
•Industry-wide collaboration
on platform, tools, and
applications
•Remove inefficiencies and
barriers to innovation
•Drive common
implementation and
consistency
Agenda
‣ Introduction to the Mobile & Embedded
Community
‣ Mobile
‣ Media
‣ Embedded
www.mobileandembedded.org
Community Structure
Why Get Involved?
‣
‣
The only place in the industry that brings together
•
Complete source code of Java ME implementations
•
Platform experts and spec leads
•
Testing tools
•
Experienced application and content developers
•
Lots of cutting-edge samples and source code under BSD
•
3rd party technology, collaboration, and code
•
Active community, very friendly and helpful
The best place to jump-start your involvement with Java ME
Agenda
‣ Introduction to the Mobile & Embedded
Community
‣ Mobile
‣ Media
‣ Embedded
Platform Scalability & Evolution
Java Platform,
Micro Edition (Java ME)
Optional
Packages
Optional Packages
Capabilities
Optional Packages
MSA
JTWI
Personal
Basis Profile
(PBP)
Personal
Profile
(PP)
Mobile
Information
Foundation Profile (FP)
Device Profile
(MIDP)
Java
Card
Connected
Device
Configuration
(CDC)
Connected
Limited Device
Configuration
(CLDC)
Resources
Java
Platform,
Standard
Edition
(Java SE)
phoneME Feature Project
‣
OS version of commercial “Sun Java Wireless Client”
‣
Shipping on mass-market “feature” phones
‣
Target platforms: Linux/ARM, Windows, Linux/x86
‣
CLDC/MIDP stack, including
•
Highly optimized performance with runtime compilation and
optimization
•
Advanced MIDlet multitasking
•
Advanced resource management
•
Modular, portable design
•
Most parts of MSA 248
phoneME Advanced Project
‣
Advanced phones and consumer devices
‣
Target platforms: Linux/ARM, Windows, Linux/x86, Windows
Mobile 5.0/6.0 in beta
‣
CDC/FP/PBP/PP stack, including
•
High performance with runtime compilation and optimization
•
Advanced application management
•
MIDlet support (“MIDP on CDC”)
•
JSR 75 (PIM), JSR 82 (Bluetooth), JSR 205 (WMA), JSR 135
(MMAPI), JSR 172 (Web Services), JSR 226 (SVG)
Lightweight UI Toolkit (LWUIT)
‣
Lightweight library bundled with
the application
‣
Compelling UI, consistent across
platforms (CLDC, CDC, Java SE)
‣
Minimal requirements
•
CLDC 1.1 + MIDP 2.0 or
•
CDC + PBP or
•
Java SE 1.4 and upwards
•
Highly portable
‣
Inspired by Swing, optimized for
mobile and embedded
‣
Tools support: Resource editor,
NetBeans Matisse (soon)
Who's using phoneME
‣
phoneME Feature usage examples
‣
midPath: A desktop MIDP emulation
‣
Sun SPOT & Squawk VM
‣
Sony PlayStation Portable PSP
‣
‣
phoneME Advanced usage examples
‣
MIDP stack for Windows Mobile
‣
CDC for Nokia N770/N800/N810
‣
OpenCable (OCAP): Set-top box middleware
‣
BUG: Configurable consumer electronics device
‣
Cineca.tv: Interactive TV platform
‣
Palm OS 5 port
... and much more in the pipe
ME Application Developers
https://meapplicationdevelopers.dev.java.net
Project Marge
‣
Bluetooth (JSR-82) framework
•
Inquiry for devices
•
Search for services
•
Connect and start exchanging messages
•
Default and auto connection alternatives
‣
Project started in 2006
•
‣
.05 release
Mooo project
•
Set of tools for create/update/display ODF Documents using Mobile
•
http://marge.dev.java.net/
CQME Project
Compatibility and Quality Testing Tools
Test Suite
Test Suite
Test Suite
‣
TestSuite-Specific
FW
ME Framework
JT Harness
JT Harness
•
‣
Used by Java technology
TCKs
ME Framework
•
‣
Supports ME platforms
Test Suite
•
Compatibility to specification
(JSRs) or specification-like
use-cases
Agenda
‣ Introduction to the Mobile & Embedded
Community
‣ Mobile
‣ Media
‣ Embedded
Media Projects
‣
Blu-Ray - http://hdcookbook.dev.java.net
‣
OCAP - http://opencable.dev.java.net
Media Delopment
Agenda
‣ Introduction to the Mobile & Embedded
Community
‣ Mobile
‣ Media
‣ Embedded
Buglabs
‣ Enabling a new generation of
engineers to build any type of
device they want
• Without having to solder
• Learn solid state electronics
‣ Open Source software
• Entire stack is Java except for thin
Linux layer
• Use phoneME Advanced
‣ CDC/FP/PP/PBP
‣ Extended to add their application APIs
and hardware modules
Squawk
‣
Java™ Operating Environment for small devices
‣
Bootloader/Micro Kernel
‣
Java™ ME CLDC 1.1 IMP 1.0
‣
Java™ on the “bare metal”
‣
Virtual Machine
‣
Device Drivers/Interrupt Handlers
‣
Sun Microsystems Laboratories project
Squawk – Why Java?
‣
Embedded development is hard
‣
Leverage Java™ expertise and code-base
‣
Use standard tools
‣
Ease of porting and emulation
‣
Java™ technology end to end
Squawk – Design Goals
‣
Optimize for small devices
‣
Java™ technology enabler
‣
Java™ in Java™
‣
Java™ on Java™
‣
Research and production
Squawk - Architecture
Sun Spot
‣ Sun has licensed Java over billions of cell phones
‣ How do we encourage Sun Technology in whatever comes next?
Built to Inspire
‣ Designed for flexibility
• Make hardware projects into
software projects
• Not designed for cost effective
deployment
‣ We want to
• Build a community of developers
• Enable new Devices and services
• Engage new customers
Sun Spot Device
‣ Basic device has three layers
• Battery
• Processor Board with Radio
• Sensor Board
‣ Processor Board alone acts as
base-station
‣ User programs the device
entirely in Java using std Java
tools
Sun SPOT Main board
‣ 180 Mhz 32 bit ARM920T core
‣ 512K RAM/4M Flash
‣ 802.15.4 radio
‣ USB interface – mini b
‣ 3.6V rechargeable lithium-ion
battery
‣ 36 µA deep sleep mode
‣ JavaME on the metal
Sun SPOT eDemoboard
‣ 2G/6G 3-axis accellerometer
‣ Light sensor
‣ Temp sensor
‣ 2 push buttons
‣ 8 RGB 24 bit LEDS
‣ 6 analog inputs
‣ 5 general purpose I/O pings and
4 current output pins
Projects Covered
‣
squawk – Java Virtual Machine
‣
spots-libraries – libraries used by SunSPOTs
‣
spots-hardware -
‣
spots-applications – demos and apps
‣
spots-curriculum – instructional materials
Trackbot
‣8 built in sensors modules
• Beaconing
• Obstacle avoidance
• Spatial awareness
• Communication
• Navigation
‣4 transducer stations for
optional/homebrew sensors
‣Designed specifically for
university-level education and
research
Demo
DEMO!
Extending, Expanding, and Porting
Mobile & Embedded Community
Projects
by Phil Bartholo
www.bartholo.com/OSCON/