Serialization Performance and Google Android

Posted by Jomanscool2 on Stack Overflow See other posts from Stack Overflow or by Jomanscool2
Published on 2010-05-27T00:53:13Z Indexed on 2010/05/27 1:01 UTC
Read the original article Hit count: 383

I'm looking for advice to speed up serialization performance, specifically when using the Google Android. For a project I am working on, I am trying to relay a couple hundred objects from a server to the Android app, and am going through various stages to get the performance I need.

First I tried a terrible XML parser that I hacked together using Scanner specifically for this project, and that caused unbelievably slow performance when loading the objects (~5 minutes for a 300KB file). I then moved away from that and made my classes implement Serializable and wrote the ArrayList of objects I had to a file. Reading that file into the objects the Android, with the file already downloaded mind you, was taking ~15-30 seconds for the ~100KB serialized file. I still find this completely unacceptable for an Android app, as my app requires loading the data when starting the application.

I have read briefly about Externalizable and how it can increase performance, but I am not sure as to how one implements it with nested classes. Right now, I am trying to store an ArrayList of the following class, with the nested classes below it.

public class MealMenu implements Serializable{
private String commonsName;
private long startMillis, endMillis, modMillis;
private ArrayList<Venue> venues;
private String mealName;
}

And the Venue class:

public class Venue implements Serializable{
private String name;
private ArrayList<FoodItem> foodItems;
}

And the FoodItem class:

public class FoodItem implements Serializable{
private String name;
private boolean vegan;
private boolean vegetarian;
}

IF Externalizable is the way to go to increase performance, is there any information as to how java calls the methods in the objects when you try to write it out? I am not sure if I need to implement it in the parent class, nor how I would go about serializing the nested objects within each object.

© Stack Overflow or respective owner

Related posts about java

Related posts about android