Android emulator: excessive garbage collection (GC_FOR_MALLOC) when using simpleframework
===

I have an Android app that uses the [SimpleFramework][1] for XML serialization. The app runs fine on all real devices I have tested it on, but when run on the emulator, the garbage collector kicks in a runs for about about 3 minutes on each launch of the app.

Here is what I have observed so far:

 - Garbage collection kicks in just before serializing objects to XML
 - It only happens before the first object is serialized and sent over the network, and does not happen for successive calls.
 - Serialization code is in a separate library that is packaged and added as a .jar file in the project.

Here is the output from LogCat:

    07-27 08:17:10.275: D/dalvikvm(682): GC_FOR_MALLOC freed 10179 objects / 482344 bytes in 32ms
    07-27 08:17:10.435: D/dalvikvm(682): GC_FOR_MALLOC freed 13927 objects / 535968 bytes in 33ms
    ....... About 300 more similar entries...


Here is the code I'm presently using for serialization:

	public String fromElement(Object request) {
		Writer writer = new StringWriter();
		try {
			serializer.write(request, writer);
			String res = writer.toString();
			Log.d(LOG_TAG, res);
			return writer.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}

Obviously, this is taking up a lot of time, each time I make a change in my code and redeploy the app. Is there some way I can prevent this? Would increasing the heap (currently set at `vm.heapSize=24`)? Or is something wrong with my code?


  [1]: http://simple.sourceforge.net/