Skip to content

WTK 2.5.2 issue

WTK 2.5.2 introduced pretty annoying bug to a very usefull feature, that is, ability to run the midlet from the command line, so that you can see all the system.out printed to the console.
it was always possible to do the following:
\%PATH_TO_WTK%\bin\emulator.exe -Xdescriptor:MyMidlet.jad
But since I upgraded to WTK 2.5.2 for CLDC 1.1, I’ve started getting this [...]

Motorola V3M slow startup.

Here is the interesting issue observed on the Motorola V3M. Application (in fact it’s VM) startup time deteriorates.
When midlet owns multiple RecordStores it’s startup time is painfully slow, in fact you don’t even see any message from the system that it is doing something, as the phone simply freezes. So far I found out that [...]

A must tool for any J2ME (JavaME) developer

There comes a time in any mobile project of significant size, where no matter how careful you were, you missed something (or you over optimized) and you have memory leak.
WTK2.5 comes a long way to show the count of live objects in memory, but it does not allow to trace the references to see why [...]

Good article that provides breakdown of PIM

There is a new article that describes jsr 75 PIM package implementation.
Here is also some sample code that opens up the contacts loops through the list and extracts Name and phoneNumber from each record.
if (PhoneConstants.JSR75_INCLUDED) {
PIM pimInstance = PIM.getInstance();
ContactList list = (ContactList) pimInstance.openPIMList( PIM.CONTACT_LIST, PIM.READ_WRITE);
Enumeration contacts = list.items();
while (contacts.hasMoreElements()) {
Contact contact = (Contact) contacts.nextElement();
String name [...]

J2ME Optimizations

At the current phase of the project I’m into the optimization. We have a CSSHelper class that has all the possible css values set in the map that is statically initialized. So on RAZR it takes 50 seconds to just load the class into the memory, absolutely unacceptable.
So poking around the web I found this [...]

Ever experienced untraceable ArrayIndexOutofBoundsException on RAZR?

Recently spent some time tracing where the heck this Exception is comming from. I’ve put the try/catch on every thread.run() and still was not able to catch it.. bummer.
Well the problem is that we are using Canvas.callSerially() a lot, and i guess on RAZR there is some (undocumented) limit.
So starting a new Thread rather then [...]

Email Push for free

Here is the great blog post that describes the way to get your emails onto the mobile device without the need to pay for black berry server nor Good. The underlying idea is to use IDLE command in IMAP protocol. From you j2me email client one connects to IMAP server and get’s into the IDLE [...]

J2ME memory optimization tip. Multidimensional arrays.

Mobile phone is a resource constrained device, that imposes some challenges for application developers.
Quite often it is very convenient to use multidimensional arrays, though when doing so, we have to keep in mind that there is an overhead price to pay, that is, for every array object created, overhead == 16 bytes.
int array of size:0 [...]

String memory footprint on mobile (RAZR) and techniques to optimize it.

We are currently working on the application that will have to receive XML. There is a potential problem here, that it is not always known how big the payload will be. The problematic outcome is, it will simply blow the memory.
Here are the results of method that creates new string object of incremental size and [...]

Testing multithreaded app with j2meunit

As it’s parent junit , j2meunit does not have built-in support for threads. There for the only way to test threads is to add listeners to the code and do Thread.sleep(), which is a guess work most of the time.
So it was really great to stumble upon this blog post that provides some very [...]