[AGENDA] * will be covering what J2ME is * what configurations and profiles are * some demos, or tools that developers can use * and then i'll sum things up to start off with, J2ME is the Macro-Edition of the Java 2 platform. it has the ability to run on small devices with limited resources, such as cell phones, pagers, pda's, and many other things. for experienced java developers, it's simply a subset of the java language. you have a trimmed down subset of the Java Foundation Classes, and are limited with resources and operations. [CONFIGURATIONS] so, what's a configuration? it's basically a hardware specification, that tells you about how much memory and processing ability a certain device has. devices are grouped into these configurations, based on their hardware, and developers can target their applications for these sets of devices, making their apps more portable. once a developer has an app written, it can be tested on a desktop computer using a compatibility kit that you can download for free. [CLDC and CDC] the two predominant configurations are CLDC and CDC. CLDC, standing for Connected, Limited Device Configuration, targets devices with very limited resources that have network connections. usually phones, pagers, and PDA's. CDC, standing for Connected Device Configuration, and targets devices which generally have a great deal more resources, and have a network connection. [CLDC] you can see up on the board, the CLDC specification. * small amount of memory * not alot of power * very small displays, usually incapable of graphics * and poor network connections [CDC] you can now see the CDC specification, which is a quite a bit more generous with the resources. you have considerable more memory, a reliable network connection, and a better display. all of this means that more of the core JFC is available for the developer. [PROFILES] now, what's a profile then? it's basically just another specification that supplements a configuration. it can supplement both the hardware and software specifications, and is usually geared towards specific markets. there's also compatibility tests that applications can be tested against on normal desktop computers to see if they fit 'within' the profile. [MIDP and FP and others] you can see up on the board, some examples of different profiles. you have profiles for things like, GUI and networked devices, non GUI and networked devices, GUI and non-networked devices, non-GUI and non- networked devices, and others. again, these are geared toward application specific implementations. PDA's don't necessarily HAVE to be networked, but they do HAVE to have a decent GUI. so that type of profile would have more of the graphics API's from the JFC available for the developer, but none of the networking API's. [MIDP] one of the profiles, the Mobile Information Device Profile, is listed on the screen. this profile is has a simple graphics API's, input API's, and a small database API that can be used to store information. it also supports http, so you could write a browser for one of these devices. [CURRENT PROFILES] there's a number of profiles currently going through the Java Community Process, which will soon be implemented, and available for use. information and spec-sheets for all of these can be downloaded from the J2ME web-site, which is easy enough to find, but i'll post it at the end of the presentation as well. [J2ME TODAY] so, what's ahead for J2ME developers? devices which ship "J2ME ready" are already available and is growing pretty rapidly. Again, this is part of Sun's ultimate goal to get everything everywhere running Java and connected. [CDC DEVICES] an example would be the recent adoption of J2ME as the standard for all digital televisions in the US and China, once those become the standard. so, it's definately going explode here shortly, and there's going to be a pretty high demand for experienced J2ME developers. [J2ME STACK] there's that slide... this gives you a basic idea of how the configurations and profiles fit in with the applications you could write. at the very bottom, you have the hardware, and above that you have the VM (sun's version is called KVM), which is specific to the configuration. above that, are the API's for that configuration. and above that, you CAN have additional API's for any profile. Your application then sits on top of that, specific to that combination of profile & configuration. [TOOLS STATS AND AVAILABILITY] so, what currently uses J2ME and will be using J2ME, and what tools do you the developer have? [JAVA PHONES] this is a list of phones that use the J2ME platform. this is by no means a list of ALL phones, there are loads more on the web-site listed there. this list was compiled back in i think august of 2001, so there's a bunch that have come out since then. [JAVA PDA's] this is a list of PDA's that use the J2ME platform. again, there are more that use J2ME. you can see what VM and what configuration & profile each device uses. [TOOLS] now, what can you the developer use to help write J2ME applications? * first, there are LOADS of references and spec-sheets available for download on all of the different configurations, and profiles. * there's also a J2ME wireless toolkit that sun puts out, that has plugins for Forte....a pretty IDE for writing Java. * those CD's i handed out a couple of presentations ago, for those that were there, are loaded with all of these tools. * also, many of the J2ME enabled devices have SDK's you can download for them, which usually includes a nice emulator... [J2ME WIRELESS TOOKKIT] you can see here a screen shot of the wireless toolkit sun puts out, which includes some genaric emulators, but also some device specific ones. [OTHER J2ME TOOLS] here's the Emulators that come with the phone-specific SDK's. [MORE] here's a couple more. pretty schnazzy right? [GETTING STARTED] so, how to write a J2ME app? 1 - write your code! it's just regular java, find out what configuration and profile you want to target and find out what API's in the JFC are available to you. 2 - you can use the toolkit to create a project, and build your code. 3 - then you just run it against any emulator, and test it. [CALL FOR ACTION] all of the tools and emulators shown are free, and can be downloaded today, and that's everything you need to write a J2ME application. [J2ME INFO] bleh