更好的文件序列化方式,以正确的CPU使用?

时间:2011-03-21 10:30:34

标签: android multithreading performance serialization cpu

我使用以下文件序列化方法从磁盘检索我的数据。

public Vector load(String fileName) {

    try {

        FileInputStream fis = openFileInput(fileName);
        ObjectInputStream in = new ObjectInputStream(fis);

        Vector obj = (Vector) in.readObject();

        in.close();
        return obj;

    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }
    return null;
}

我有35K大小的文件要序列化。它工作得很完美,但线程猛烈地使用cpu并导致应用程序使用缓慢。我只加载了一次这个文件。

有没有更好的序列化方法,还是有任何不同的方法来处理线程的使用cpu?

2 个答案:

答案 0 :(得分:0)

  1. 不要使用Vector,使用ArrayList - 不会有任何同步开销。

  2. 如果您的操作时间很长,只需在AsyncTask中显示ProgressDialog,例如here

答案 1 :(得分:0)

您还可以考虑使用Parcel进行序列化,它是更轻量级的存储类型。

http://developer.android.com/reference/android/os/Parcelable.html