Slideshare.net (beta)

 
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons



All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

Programming Cool Devices with Java ME

From terrencebarr, 3 months ago

Slides for the "Programming cool devices with open source Java ME" more

776 views  |  0 comments  |  0 favorites  |  1 embed (Stats)
 

Groups/Events

Not added to any group/event

 
 

Privacy InfoNew!

This slideshow is Public

 
Embed in your blog
Embed (wordpress.com)
custom

Slideshow Statistics
Total Views: 776
on Slideshare: 775
from embeds: 1* * Views from embeds since 21 Aug, 07

Slideshow transcript

Slide 1: Programming for cool devices using the open source Java ME phoneME stack Terrence Barr Senior Technologist and Community Ambassador Java Mobile & Embedded Community Sun Microsystems 1 1

Slide 2: Goal of this Session • Rich, open source Java ME is available NOW • Learn about the cool stuff people are doing with phoneME and how you can do it too

Slide 3: Agenda • Java ME: A rich, versatile platform • Your friendly Mobile & Embedded Community • phoneME: What is it? What can it do? • phoneME for Windows Mobile: Build it & run it • What's Next & Resources

Slide 4: The World of Java Optional Packages Optional Packages Java Platform, Micro Edition (Java ME) Optional Packages Optional Packages Java Personal Personal Platform, Basis Profile Profile MSA Java (PBP) (PP) JTWI Enterprise Platform, Mobile Edition Foundation Profile (FP) Information Standard Device Profile (Java EE) (MIDP) Edition (Java SE) Connected Device Connected Configuration Limited Device Configuration Java (CDC) Card (CLDC)

Slide 5: MSA for CLDC – JSR 248 Overview • “Umbrella” specification that combines number of existing JSRs and provides clarifications to JSRs • Who's Who > Spec Leads: Nokia and Vodafone > Sun is heavily involved in this specification > Sun provides the overall RI and the TCK for the defined Clarifications > Much IP involved from many different companies • Devices started shipping in 2007, e.g. > Sony Ericsson Z750, K630, W910i, K850i, more > Nokia Series 40 5th edition

Slide 6: Compelling Feature Phone Platform: MSA (JSR 248). Now Shipping in Volume! Comms Graphics Security & Application Personal Commerce Connectivity Information JSR 82 JSR 226 Bluetooth 2D Scalable Vector Graphics JSR 180 JSR 184 SIP 3D Graphics JSR 205 JSR 234 JSR 229 JSR 211 JSR 179 MMS Mobile-media Payment Content Location Messaging Supplement Handler JSR 120 JSR 135 JSR 177 JSR 172 JSR 75 SMS Security & Messaging Mobile Media Trust Services Web Services PIM & File Application JSR 185 JSR 118 JSR 238 Environment JTWI MIDP 2.0 I18N Virtual JSR 139 Conditional APIs Machine CLDC 1.1 JTWI APIs

Slide 7: Things you can do with 248: Games • JSR 184 (3D Graphics) • 3D world creation and manipulation • JSR 135 (Mobile Media) • Sounds • JSR 82 (Bluetooth) • P2P gaming • JSR 180 (SIP) • P2P over the network • JSR 229 (Payment) • Payment of new levels

Slide 8: Things you can do with 248: Mapping Applications • JSR 226 (Vector Graphics) • Map data visualization • JSR 179 (Location) 23 Main St. • Finding current position • JSR 172 (Web Services) • Requesting business addresses • JSR 75 (File and PIM) • Mapping addresses • JSR 238 (Internationalization) • Creating a globally available version

Slide 9: Things you can do with 248: Info Applications • JSR 172 (Web Services) • Access of data and parsing • JSR 205 (Messaging) • Sending info to friends • JSR 211 (Content Handler) • Viewing URLs using the browser • JSR 75 (File and PIM) • Saving important articles

Slide 10: Things you can do with 248: Multimedia Applications • JSR 234 (Multimedia) Travel Blog • Access to camera Snow on SiliconV hills! alley • JSR 205 (Messaging) • Sending media to friends • JSR 179 (Location) • Location metadata for media • JSR 75 (File and PIM) • Saving important media

Slide 11: Agenda • Java ME: A rich, versatile platform • Your friendly Mobile & Embedded Community • phoneME: What is it? What can it do? • phoneME for Windows Mobile: Build it & run it • What's Next & Resources

Slide 12: 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 Java ME Remove inefficiencies and barriers to innovation Drive common implementation and consistency

Slide 13: The Mobile & Embedded Community http://www.mobileandembedded.org

Slide 14: ME Application Developers Project https://meapplicationdevelopers.dev.java.net

Slide 15: Current Sub-Projects in ME App Dev • Sun Wireless Toolkit 2.5 demo sources ● 25 demo applications covering most MSA features ● Copy & paste into your app as a starting point ● phoneME UI Labs ● SVG tutorial and JSR 226 tutorial ● Live demos, code snippets, links ● MobileAerith demo and code ● SVG GUI Makeover project and code ● Great intro and starting point for all things SVG and UIs

Slide 16: Current Sub-Projects (2) • Mobile Ajax for Java ME ● Libraries and sample code for building your own mobile Ajax/web 2.0 application ● Libraries: ● Streaming Atom, JSON, expression language, async I/O, blog reading, and web services ● Sample applications: ● GPS mapping, Flickr client, Yahoo! local business search, blog reader, twitter.com client • And more ...

Slide 17: 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

Slide 18: Agenda • Java ME: A rich, versatile platform • Your friendly Mobile & Embedded Community • phoneME: What is it? What can it do? • phoneME for Windows Mobile: Build it & run it • What's Next & Resources

Slide 19: Overview of phoneME Project https://phoneme.dev.java.net/ • The open source implementation of Java™ ME platform • Hosted in subversion on java.net > https://phoneme.dev.java.net/source/browse/phoneme/ • Actually two distinct stacks > phoneME “Feature” (CLDC/MIDP stack) > phoneME “Avanced” (CDC stack) > Shared code for common JSRs and functionality • Despite the name phoneME is also applicable to non-phone embedded or mobile platforms

Slide 20: Licensing Model: Balancing Community & Commercialization Community Commercialization • Sun’s Java ME implementations • Sun's Java ME implementations and frameworks available in the available under current Mobile & Embedded Community commercial license • The community gets free and • Licensees can develop easy access to the platform and commercial products without the source code GPLv2 license implications • Source code available under • 3rd party component integration GPLv2 possible > Encourages transparency • TCK availability under current > Compatible with GNU/Linux, commercial license fostering adoption > Minimizes proprietary forks • Branding and support available for commercial licensees

Slide 21: Overview of phoneME Project • phoneME Feature software > 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 > Building blocks of MSA 248

Slide 22: Overview of phoneME Project (2) • phoneME Advanced software > Advanced phones and consumer devices > Target platforms: Linux/ARM, Windows, Linux/x86, Windows Mobile 5.0/6.0 in beta > CDC/Foundation/Personal Basis/Personal Profiles 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)

Slide 23: Things people are doing with phoneME • phoneME Feature is being used in > midPath: A desktop MIDP emulation > SunSPOT & Squawk > Sony PlayStation Portable PSP • phoneME Advanced is being used in > 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 • ... and much more in the pipe

Slide 24: Source Code at Java.Net • Snapshots available as source code bundles > https://phoneme.dev.java.net/downloads_page.html • Source code can be retrieved from svn repository > Use an svn client to access https://phoneme.dev.java.net/svn/phoneme • Atypical repository structure > Lots of branches, tags, and supertags

Slide 25: Repository Layout: Top Level ROOT trunk releases builds components legal www All the source code is These areas contain tagged under here! versions of the components This area contains GPL, copyrights, etc. only the website!

Slide 26: Repository Layout: Components components cdc ... jsr120 midp jsr135 ... cldc shared components phoneME Advanced phoneME Feature software software

Slide 27: Agenda • Java ME: A rich, versatile platform • Your friendly Mobile & Embedded Community • phoneME: What is it? What can it do? • phoneME for Windows Mobile: Build it & run it • What's Next & Resources

Slide 28: Demo Building phoneME Advanced (CDC) with MIDP Run MIDlets on phoneME Advanced for Windows Mobile

Slide 29: Building phoneME: Setting Up • Tools > Install Java SE 1.4.2 SDK, make, gcc, ant 1.6.5, flex, perl, etc. > A svn client Recommended: SmartSVN (community ed.) > For Microsoft environments also install > Microsoft Visual Studio Express 2005 C++ (free) > cygwin (+ packages for above tools) (free) > For Windows Mobile platforms: ActiveSync, PocketPC 5.0 SDK • Caveat: On Windows, cygwin bugs may cause flaky build problems

Slide 30: Building phoneME: Checking out • Don’t just grab the whole thing > You’ll get about 100 copies of the source code… • For current version > Check out out the component's trunk • For or a particular version > Check out that branch • Example $ svn checkout https://phoneme.dev.java.net/svn/ phoneme/components/cdc/trunk working-dir • Check out all required components from repository

Slide 31: Building phoneME: Build environment • Follow “Getting Started Guides” & wikis: > http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEFeature > http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvanced • Define tools, source and build paths, modules to be built, and config options, ex.: export VSROOT="/cygdrive/c/Program Files/Microsoft Visual Studio 8" export VS2005_CE_ARM_LIB="C:/Program Files/Windows CE Tools/WCE500/WINDOW~1.0PO/LIB/ARMV4I" export PATH=$VSROOT2/vc/ce/bin/x86_arm: $VSROOT2/Common7/IDE:$VSROOT2/VC/BIN: $VSROOT2/Common7/Tools:... ...

Slide 32: Building phoneME Adv.: make • Create make command line with all flags, then build • Example: phoneME Advanced (CDC) with MIDP for Windows Mobile 5 > $ export TOP=/<top-level-of-working-copy> > $ make -C $TOP/cdc/build/win32-arm-wm5 J2ME_CLASSLIB=foundation USE_MIDP=true CVM_OPTIMIZED=true CVM_JIT=true CVM_PRELOAD_LIB=true USE_JPEG=true JPEG_DIR=$TOP/jpeg CVM_INCLUDE_JAVACALL=true PROJECT_JAVACALL_DIR=$TOP/javacall-com • First build takes 30 minutes, even on a fast machine • In case of problems > Check your set up (tools, variables, make cmd.) > Weird path or shell issues likely to be cygwin's fault

Slide 33: Running phoneME Advanced • All necessary files are created in build directory: bin, lib, midp -> copy to emulator • Copy your app to the emulator • .lnk and args.txt creates an association, e.g -Xmx2m -Dmicroedition.profiles=MIDP-2.1 -Dsun.midp.library.name=midp "- Dsun.midp.home.path=Storage Cardmidpmidp_wince" -Dcom.sun.midp.mainClass.name=com.sun.midp .main.CdcMIDletSuiteLoader sun.misc.MIDPLauncher -midppath "Storage Cardmidpmidp_winceclasses" -suitepath "Storage Cardsuite.jar" -1 mainclass • Double-click .lnk file to run app!

Slide 34: Agenda • Java ME: A rich, versatile platform • Your friendly Mobile & Embedded Community • phoneME: What is it? What can it do? • phoneME for Windows Mobile: Build it & run it • What's Next & Resources

Slide 35: Building upon phoneME: Examples • Open source Java DB/Derby Database > Relational database with small footprint > Requires CDC - runs on phoneME Advanced • Open source Perst Lite > Object-oriented database with small footprint > Runs on phoneME Feature and phoneME Advanced > See “ProScout” demo app in ME App. Dev. Project • SVG & JSR 226 > Available for phoneME Feature, available very soon for phoneME Advanced • phoneME is a great basis for your projects

Slide 36: What's Next & Resources • Explore the wealth of information and projects > http://www.mobileandembedded.org • phoneME is the open source Java ME reference > Play with it: Download, build, modify, run it • Join the community > Sign up as a member > Participate in the forums, ask questions, help others > Write a blog or articles • Start coding: Bug-fixes, improvements, applications • Participate in the various community projects

Slide 37: Programming for cool devices using the open source Java ME phoneME stack Terrence Barr Senior Technologist and Community Ambassador Java Mobile & Embedded Community Sun Microsystems 37 37