Mobile Information Device Profile
Directory Structure

 

Contents of this File

Overview

The upper-level directory structure of the release is as follows:

midp1.0.3/
    appdb/
    bin/
    build/
    classes/
    docs/
    example/
    lib/
    src/
    tools/
    index.html
    MIDP_License
    Copyright

[top]

When the system first arrives there is a prebuilt runtime environment already available:

appdb/   Storage for apps and a key store for HTTPS
lib/   Default configuration files
bin/   Executables
classes/   Compiled Java class files
example/   Prebuilt example application descriptor (.jad) and JAR files

A full source release is also provided:

src/   Full source (crypto packaged separately)
build/   Platform specific compilation tools
tools/   Source for supporting build tools

There are files that are shared across all platforms, located in:

build/share/
src/share/classes
src/share/native
src/example

As well as platform specific files, located in:

build/linux
build/solaris
build/win32
src/solaris/native
src/win32/native

The overall directory structure of this release and pertinent files are included below.


[top]
 

Documentation

Directory or Filename Description
docs/Configuration.html Requirements before MIDP can be installed
docs/Compile.html Instructions on how to build MIDP
docs/Running.html Instructions on how to run the reference implementation and sample programs
docs/DirectoryStructure.html Contains list of directories / files included in release (this page).
docs/MIDPporting.pdf MIDP Reference Implementation (RI) Porting Guide
docs/InstallGuide.html MIDP Reference Implementation (RI) installation instructions
docs/document_roadmap.html MIDP Reference Implementation (RI) documentation roadmap
docs/MIDPReleaseNotes.pdf MIDP Release Notes
docs/html Contains Javadoc reference pages for the CLDC and MIDP  specifications
docs/examples_doc/ Describes the sample MIDlet suites that come bundled with the MIDP Reference Implementation

[top]

 

MIDP Public Classes

Directory Description
src/share/classes/java/lang Classes to support the Java programming language
src/share/classes/java/util Timer classes
src/share/classes/javax/microedition/io MIDP Network and IO Interfaces
src/share/classes/javax/microedition/lcdui MIDP User Interface
src/share/classes/javax/microedition/midlet MIDP MIDlet Lifecycle
src/share/classes/javax/microedition/rms MIDP Record Management Store

[top]



MIDP Implementation Classes

Directory Description
src/share/classes/com/sun/midp
src/share/classes/com/sun/midp/midlet
src/share/classes/com/sun/midp/midletsuite
MIDlet and MIDlet Suite management
src/share/classes/com/sun/midp/dev Graphical application manager
src/share/classes/com/sun/midp/security
src/share/classes/com/sun/midp/publickeystore
Java application security
src/share/classes/com/sun/midp/io
src/share/classes/com/sun/midp/io/j2me/http
src/share/classes/com/sun/midp/io/j2me/https
src/share/classes/com/sun/midp/io/j2me/storage
src/share/classes/com/sun/midp/io/j2me/socket
Networking and Storage I/O
src/share/classes/com/sun/midp/lcdui User Interface
src/share/classes/com/sun/midp/rms Record Store

[top]



I18N Implementation

Directory Description
src/share/classes/com/sun/cldc/i18n/j2me
src/share/classes/com/sun/midp/lcdui/i18n
Character converters and input handlers for non ISO 8859-1 encodings

[top]

Performance Metric Implementation

Directory Description
src/share/com/sun/midp/perfmon Performance metric gathering

[top]

Shared Native Implementation

Path Description
share/native/commandState.c
share/native/commandState.h
share/native/exitInternal.c
Implements the native methods of com.sun.midp.Main
share/native/configuration.c
share/native/exitInternal.h
The native configuration mechanism for system and implementation properties
share/native/crc32.c
share/native/crc32.h
Checksum algorithm used by screenGrabber.c (for user interface testing)
share/native/defaultLCDUI.c
share/native/defaultLCDUI.h
Implements the native methods of javax.microedition.lcdui and com.sun.lcdui classes
share/native/events.c
Modified version of CLDC file to add byte-code throttling support
share/native/events_midp.c
Implements MIDP specific event handling routines
share/native/imageDecode.c
share/native/imageDecode.h
share/native/pngDecode.c
Native implementation of PNG image decoding
share/native/JarReader.c
Implements the native methods of com.sun.midp.midletsuite.JarReader
share/native/kvmUtil.c
Misc utility functions
share/native/main.c
Default main program for command line startup
share/native/menus.c
Native implementation of the system menu
share/native/perfmon.c
Implements the native methods of com.sun.midp.perform.PerfMon
share/native/kvmUtil.c
Native implementation of the system menu
share/native/property.c
share/native/property.h
Override CLDC native implementation of getSystemProperty() to use the MIDP configuration mechanism (configuration.c)
share/native/RandomAccessStream.c
Implements the native methods of com.sun.midp.io.j2me.storage.RandomAccessStream
share/native/ResourceInputStream.c
Implements the native methods of com.sun.midp.io.ResourceInputStream
share/native/screenGrabber.c
share/native/screengrab.h
Native implementation of screen capture utility (for user interface testing)
share/native/storage.c
share/native/storage.h
Native lower level internal storage interface for MIDP
share/native/storageFile.c
Implements the native methods of com.sun.midp.io.j2me.storage.File
share/native/SystemOutputStream.c
share/native/storage.h
Implements the native methods of com.sun.midp.io.SystemOutputStream
share/native/throttle.c
Controls the rate of byte-code executing (in events.c) to simulate slower devices
 
 
share/native/i18n/conv.c
share/native/i18n/conv.h
Implements the native methods of com.sun.cldc.i18n.j2me.Conv
share/native/i18n/eucjp.c/tt>
Japanese EUC (Extended Unix Code) text converter
share/native/i18n/localeMethod.c
share/native/i18n/localeMethod.h
I18N locale support
share/native/i18n/sjis.c
Japanese SJIS (Shift JIS) text converter

[top]


Solaris Native Implementation

Path Description
solaris/native/graphics.c Implementation for LCDUI native graphics code
solaris/native/images.c Implementation for LCDUI native image manipulation code
solaris/native/nativeGUI.c
solaris/native/nativeGUI.h
Implementation for LCDUI native code
solaris/native/runtime_md.c Modified version of CLDC file (VmUnix/src/runtime_md.c) to remove call to FinalizeWindowSystem() in FinalizeNativeCode()
solaris/native/screengrab.c Implementation for screen capture utility (for user interface testing)
solaris/native/staticGraphics.c
solaris/native/staticGraphics.h
solaris/native/arrows.xbm
solaris/native/inputmodes.xbm
solaris/native/phone.xpm
solaris/native/topbar.xbm
Implementation of image data for MIDP phone emulator graphics
solaris/native/text.c Implementation for LCDUI text and font manipulation
 
 
solaris/native/i18n/genConv.c Generic text converter
solaris/native/i18n/lcWin.c
solaris/native/i18n/lcWin.h
Generic locale implementation
solaris/native/i18n/locale.c Implementation of locale support
solaris/native/i18n/inputmodes_ja.xbm Implementation of image data for MIDP phone emulator graphics
 
 
solaris/native/xpm/include/X11/xpm.h Include file for XPM library

[top]


Win32 Native Implementation

Path Description
win32/native/dirent.c
win32/native/dirent.h
Implementation of directory access function calls
win32/native/graphics.c Implementation for LCDUI native graphics code
win32/native/images.c Implementation for LCDUI native image manipulation code
win32/native/nativeGUI.c
win32/native/nativeGUI.h
Implementation for LCDUI native code
win32/native/phone.h Implementation of image data for MIDP phone emulator graphics
win32/native/screengrab.c Implementation for screen capture utility (for user interface testing)
win32/native/text.c Implementation for LCDUI text and font manipulation
 
 
win32/native/i18n/genConv.c Generic text converter
win32/native/i18n/locale.c Implementation of locale support
win32/native/i18n/inputmodes_ja.bmp Implementation of image data for MIDP phone emulator graphics

[top]

Build and Makefiles

Directory or Filename Description

build/linux/GNUmakefile
build/linux/Platform.gmk
build/linux/makefiles/Defs-pre.gmk
build/linux/makefiles/Defs-post.gmk

build/solaris/GNUmakefile
build/solaris/Platform.gmk
build/solaris/makefiles/Defs-pre.gmk
build/solaris/makefiles/Defs-post.gmk

build/win32/GNUmakefile
build/win32/Platform.gmk
build/win32/makefiles/Defs-pre.gmk
build/win32/makefiles/Defs-post.gmk

Makefile for platform

build/share/lib/system.config
build/share/lib/internal.config
Default runtime configuration values
build/share/makefiles/KVM.gmk CLDC build targets for Java Code Compact, the Debug Proxy and the preverifier tools
build/share/makefiles/CancelImplicits.gmk Targets to cancel pre-defined gnumake rules
build/share/makefiles/Defs.gmk Standard build definitions for all platforms
build/share/makefiles/Docs.gmk Targets to generate Javadoc documentation
build/share/makefiles/Example.gmk Targets to build example MIDlet suites
build/share/makefiles/MIDP.gmk Standard MIDP build targets
build/share/makefiles/Release.gmk Targets to generate distribution release bundle
build/share/makefiles/Testbeans.gmk Targets to build local unit tests
build/share/makefiles/Tools.gmk Targets to build auxilary MIDP tools

[top]

 

Platform Subdirectories

For each platform directory (build/win32, build/solaris, build/linux) the following directories are created as part of the build process:

Directory Description
appdb Application database for runtime storage of the keystore, installed applications, record storage, and icons for the AMS
bin Built applications, such as the midp executable, mekeytool and CLDC Debugger Proxy
lib Runtime configuration files
jcc_classes
jcc_classes/components
jcc_classes/util
jcc_classes/vm
jcc_classes/jcc
jcc_classes/runtime
jcc_classes/text
Java Code Compact tool used to generate the native function mapping table and ROMized image file. Code is in the KVM workspace but compiled to the local MIDP directory.
kdp_classes
kdp_classes/kdp
kdp_classes/kdp/classparser
kdp_classes/kdp/classparser/attributes
kdp_classes/kdp/classparser/constantpoolclasses
CLDC Debugger Proxy utility. The KDP is only built if Java source level debugging is enabled. See the build how-to for instructions on enabling this build option
kssl_obj KSSL native crypto routines. Shipped as binary object files for the target platform. Under a full source license the crypto source compiles into this separate directory.
p_obj Preverify object files
obj MIDP native object files
makefiles Platform specific over rides to the shared makefiles
tools Binary tools needed at build time, such as Xpm
tools_classes Target directory for built tools, such as the mekeytool
extract_obj Target directory for the extractOffsets tool object files

[top]


Example Programs

The make rules now support applications collected into bundles, each including one or more MIDlets. Below are the bundled "MIDlet Suites" in this release:
 

Bundle Example Programs Included
auction.jad Tickets Auction
demos.jad Colors, Properties, HttpTest
games.jad WormGame, TilePuzzle
manyballs.jad ManyBalls
photoalbum.jad Photo Album
pushpuzzle.jad PushPuzzle
stock.jad Stock

[top]

Below are the various subdirectories of src/example/:

Directory or Filename Description
src/example/about.java About screen shared by all examples
src/example/HelloMIDlet.java
src/example/HelloMIDlet.mf
src/example/HelloMIDlet.jad
HelloWorld Example
src/example/auction Ticket Auction example
src/example/auction/i18n Internationalization Classes (Japanese)
src/example/chooser Color Chooser Example
src/example/data PNG test data
src/example/http HTTP example
src/example/icons Icons for Selector
src/example/manyballs ManyBalls Example
src/example/photoalbum Photo Album Example
src/example/wormgame WormGame Example Game
src/example/pushpuzzle PushPuzzle Example Game
src/example/stock Stock Ticker Example
src/example/tilepuzzle TilePuzzle Example Game

[top]

 

Copyright 2001 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, U.S.A. All rights reserved. This product is distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Sun, Sun Microsystems, the Sun Logo, Java, and the Java Coffee Cup Logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Federal Acquisitions: Commercial Software -- Government Users Subject to Standard License Terms and Conditions. DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.