The Source for Java Technology Collaboration
User: Password:



Darryl Mocek's Blog

phoneME Advanced Directory Structure Explained

Posted by darryl_m on November 27, 2006 at 06:42 PM | Comments (0)

In this blog entry, I'll be talking about the directory layout of the phoneME Advanced project. You can follow along by browsing the source code here while you're reading this blog. You'll have to join the project to do this.

The start of the phoneME Advanced code is located components/cdc/trunk directory. Underneath the trunk directory are these directories:

  • build – contains the make files. This is where you want to go to build.
  • src – contains the source files
  • test – contains the test files

This is obvious enough.

Once you're at the src directory, you're at the root of the source code for all platforms. You'll notice a listing of several hardware and os/hardware combination directories here as well as a share directory, which I'll talk about later. These directories contain code specific to the os/hardware (except the share directory). Code in these directories are minimized and are mainly native (non-Java) code. The majority of it is cvm code.

Underneath the share directory is the bulk of the phoneME Advanced code.

  • appmanager – contains the code for the application manager
  • basis – contains the code for the Personal Basis Profile
  • cdc – contains demo code for the Connected Device Configuration
  • classes - contains the code for the Connected Device Configuration<
  • foundation – contains the code for the Foundation Profile
  • javavm – contains the code for the cvm
  • lib – contains Java security files
  • native – contains shared native code
  • personal – contains the code for the Personal Profile
  • tools – contains tools

Each of these directories can be put into categories: basis, foundation, personal, and the src directory in which we're “in”, typically have a classes directory and a native directory. The classes directory contains all of the Java code and the native directory contains supporting native code for the Java classes. The native directories contain JNI code and code which interfaces with other native libraries, like Qt.

appmanager is an all-Java component and contains no native code. cdc contains only a demo file and lib contains two text files relating to Java security, a policy and security file. tools contains both native and Java files, but the directory structure underneath it is slightly different. For now, I'll focus on the profile code.

Underneath the classes directory is, for the most part, the root of the Java packages. So here's where you'll find the java/lang directory.

The CDC profiles build upon each other. So the Personal Basis Profile includes Foundation Profile and the Personal Profile includes the Personal Basis Profile. For the most part, the Foundation Profile code is in the foundation directory, the Personal Basis Profile code is in the basis directory and so forth. There are some cases where you'll find the same file in different profiles. For example, you'll find Toolkit.java in basis: basis/classes/common/java/awt/Toolkit.java and in personal: personal/classes/common/java/awt/Toolkit.java. This is to account for the differences in the various profiles.

Underneath the build directory, you'll find directories similar to the src directory, a share directory, which contains makefiles which are shared across all platforms, and directories specific to each os/hardware platform. Again, the os/hardware-specific makefiles are minimized.

Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds