2014-01-13 1 views
-2

В проекте Android, в котором я сейчас работаю, сериализация объектов используется для хранения статуса активации. В нем создается объект устройства, и все данные, относящиеся к активации, хранятся в нем, и объект хранится в файле в памяти. На этом этапе сериализация приходит на место, и объект сериализуется и сохраняется в файле. Итак, что такое сериализация, и что означает это слово? Это лучшая практика в отношении безопасности? Не удается ли сохранить объект в файле напрямую?Что такое SERIALIZATION в программировании

+0

Это задано в контексте Java, оно не имеет ничего общего с Java. – thecoshman

+0

check http://en.wikipedia.org/wiki/Serialization –

+0

@SimonMokhele в целом предпочитает ссылки на вопросы SO, это помогает избежать будущих мертвых ссылок. – thecoshman

ответ

0

Сериализация - это то, что очень легко найти. Это просто процесс взятия двоичного объекта в памяти и преобразования его в некоторый (обычно) строковый формат, чтобы он мог быть сохранен на диск (или, возможно, передан по проводу). Он также включает процесс десериализации.

Для вас в Java есть стандартный интерфейс «serializable», который вы должны реализовать, чтобы сделать класс, ну и сериализуемым. По большей части классы, содержащие только базовые типы данных или сериализуемые типы, вам не нужно делать вручную вручную.

0

1> Учитывая ваш вопрос, заданный для файла сериализации:

Самый простой способ ускорить стандартной сериализации является использование объекта RandomAccessFile:

public void testWriteBuffered(TestObject test, String fileName) throws IOException { 
    ObjectOutputStream objectOutputStream = null; 
    try { 
    RandomAccessFile raf = new RandomAccessFile(fileName, "rw"); 
    FileOutputStream fos = new FileOutputStream(raf.getFD()); 
    objectOutputStream = new ObjectOutputStream(fos); 
    objectOutputStream.writeObject(test); 
    } finally { 
    if (objectOutputStream != null) { 
     objectOutputStream.close(); 
    }  
} 

В в конце мы можем сделать несколько выводов:

  • небезопасные сериализации больше, чем в 23 раза быстрее, чем стандартный использование java.io.Serializable

  • Использование RandomAccessFile может ускорить стандартный буферную сериализацию почти в 4 раза

  • Kryo-динамическая сериализации примерно на 35% медленнее, чем ручной буфер с прямым вводом .

Ref: Dzone

то, что я рекомендую использовать эффективным Java NIO

2> Android перспектива:

В частности, в андроиде использование SQL облегченный с sqlcipher для хранения защищенных данных или предпочтение андроида с защищенной реализацией, если вы загружаете наборы данных из REST API, вы должны использовать сериализаторы/десериализаторы GSON JACKSON! для хранения в SQLlite вы можете использовать orm lite framework