ui environments
Skip this Video
Download Presentation
UI Environments

Loading in 2 Seconds...

play fullscreen
1 / 30

UI Environments - PowerPoint PPT Presentation

  • Uploaded on

UI Environments. J2ME .NET Compact Framework nods to: Shwetak Patel, Heather Mahaney, Gillian Hayes. Agenda. UI Environments J2ME .NET Compact Framework HW 3. Intro to J2ME. J2ME – Java 2 Micro Edition Introduced by Sun in 1999 for mobile devices Scaled down version of J2SE

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' UI Environments' - fallon-pittman

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ui environments

UI Environments


.NET Compact Framework

nods to:

Shwetak Patel, Heather Mahaney, Gillian Hayes

  • UI Environments
  • J2ME
  • .NET Compact Framework
  • HW 3
intro to j2me
Intro to J2ME
  • J2ME – Java 2 Micro Edition
    • Introduced by Sun in 1999 for mobile devices
    • Scaled down version of J2SE
      • Smaller footprint
      • No heavyweight classes
      • (swing, awt, etc)
    • Highly optimized runtime environment
j2me architecture
J2ME Architecture
  • KVM - Kilobyte Virtual Machine
    • 40 – 80 KB in size
    • For devices with 160 KB of memory and 16 or 32-bit RISC/CISC microprocessors

OEM Specific API

j2me architecture cont
J2ME Architecture (cont.)
  • CLDC - Connected Limited Device Configuration
    • Provides core lower level functionality
      • Bare minimum IO and utilities
    • Currently consists of java.io, java.lang, java.util, java.microedition.io

OEM Specific API

j2me architecture cont1
J2ME Architecture (cont.)
  • MIDP – Mobile Information Device Profile
    • MIDP provides the core application functionality for mobile devices
      • Network connectivity, data storage, and user interfaces

OEM Specific API

j2me architecture cont2
J2ME Architecture (cont.)
  • OEM Specific API
    • Access to proprietary features and functionality
      • Audio system, camera, lighting system, etc

OEM Specific API

j2me programming environment
J2ME Programming Environment
  • Sun provides IDE for the “generic” java-enable mobile phone
  • Most mobile phone companies like Motorola or Nokia have their own IDEs
j2me applications
J2ME Applications
  • A J2ME app is called a Midlet

Midlet life cycle

j2me ui
  • MIDP provides some limited UI elements
    • Form
    • Alert
    • Choice and ChoiceGroup
    • List
    • StringItem
    • TextBox
    • TextField
    • DateField
    • Guage
    • Ticker
j2me ui vs j2se ui
  • MIDP UI elements ARE NOT subsets of AWT/Swing
  • Interaction with the user is based around a succession of screens
  • MIDP only has a single command listener
j2me canvas
J2ME Canvas
  • J2ME does allows lower level access to the Canvas
    • Can create custom graphics and user interfaces by extending Canvas
lightweight window toolkit
Lightweight Window Toolkit
  • Motorola introduced the LWT to address the limitation of MIDP
    • Works on all Java-enable mobile phone
    • Similar to J2SE Swing
      • Layout management with absolute or relative widget placement
      • Notion of containers
      • Component Listeners
net compact framework design goals
.NET Compact Framework Design Goals
  • Target mobile and embedded devices
  • Portable subset of .NET Framework
    • No new ‘compact’ namespaces
    • Visual Basic .NET & C# compiler support in v1
  • Leverage Visual Studio .NET
    • Run managed .EXEs and .DLLs directly
    • Debug with Visual Studio .NET
  • Peacefully co-exist with host OS
    • Run on native threads, P/Invoke to call native code
other differences
Other Differences
  • Class libraries are a subset (about 25%)
  • Different size and scalability characteristics
  • Compact Additions
    • IrDA support
    • SQL Server CE managed classes (not available on CF for SmartPhones)
    • Device-specific controls
framework size
Framework Size
  • Framework size
    • 1.35MB (ROM) on Windows CE .NET Device
    • Each application runs its own instance of the Framework; there is no pooling at this time.
  • Running RAM needs
    • 1 MB+ (depends on app)
  • Typical application sizes
    • 5 - 100 KB
    • Apps often smaller due to use of platform features in the framework
net compact framework1


  • Services
    • Description
    • Discovery
    • Protocols
  • UI
    • HTML Controls
    • Web Controls


Component Model




Drawing 2D



Session State






SQL Client

XML Document



SQL ServerCE







  • Runtime
    • Interop Services
    • Remoting
    • Serialization



Service Process







.NET Compact Framework
base networking
Base: Networking
  • Sockets
    • Synchronous and asynchronous
    • Multiple protocols
  • Streams
    • Built on top of sockets
    • Synchronous and asynchronous
  • HTTP request and response
    • Use stream model
    • Requires no user knowledge of HTTP


.NET Compact Framework

Web Services

HTTP Request/Response, Network Stream


Common Language Runtime

base threading
Base: Threading
  • Applications start with an initial thread
  • Applications can start new threads
  • Using threads
    • Responsive UI
    • Program function segregation
  • Thread synchronization primitives
  • App domains exist until all threads exit
base native code interop
Base: Native Code InterOp
  • Managed  native (P/Invoke)
    • Calls into existing native code
    • .NET Compact Framework does marshalling of arguments
  • Native  managed
    • P/Invoke and block
    • MessageWindow Class
      • Native code can indicate events and transfer data to managed code via message pumps
      • Microsoft.WindowsCE.Forms.MessageWindow
windows forms support
Windows Forms Support
  • Great for Rapid Prototyping on Pocket PC
  • Layout
    • Manual positioning
  • Drawing
    • Polygons, lines, arcs, ellipses, rectangles
    • JPEG, BMP images
  • Text and images
    • TrueType bitmap fonts on Mobile
  • Most desktop controls
  • Designer support
hw 3 starting your idf
HW 3: Starting your IDF
  • Starting an Interface Division Framework
  • You’re now going to start generalizing the work you did for HW 2
hw 3 two major parts
HW 3: Two major parts
  • Part I: Support for Initiating Division
  • You must create a library for applications that:
    • Provides an interface and functionality for initiating communication with an interface generator
    • Provides at least two general purpose interactors that applications can instantiate to allow end users to choose how to divide the interface
    • Manages communication to and from the interface generator
hw 3 two major parts1
HW 3: Two major parts
  • Part II: Interface GeneratorYou must generalize the mechanism you created for HW 2 to support a wider variety of interface divisions. Your interface generator should:
    • Accept a semantic description of the components, including their attributes and desired layout, to include in the interface
      • This semantic description should be kept in a file separate from your application code
    • Support at least 3 types of layouts, and at least 7 types of components.
    • Provide mechanisms for returning information from the interface generator when requested by either the generated interface or the original application
hw 3 using the framework
HW 3: Using the Framework
  • Update your email application to use your framework
  • Create a simple application that demonstrates your 3 layouts and 7 components
  • HW 4: Adding support for behaviors
  • HW 5: Allowing users to choose desired interface division and associated behaviors
  • HW 6: Create a new application using your framework
next time
Next Time
  • Midterm!