본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] Data 안전하게 저장하기,

by 돼지왕 왕돼지 2013. 9. 25.
반응형


 안드로이드, Data 안전하게 저장하기.

 

[android] Data 안전하게 저장하기,


SharedPreference 와 SQLite 만 사용한다면 별로 걱정할 일이 없다.

만약 File I/O API 를 직접 이용하면 문제가 된다.

ext4 파일 시스템은 YAFFS ( 과거 안드로이드가 채택한 파일 시스템 ) 에 비해 훨씬 적극적으로 버퍼를 활용한다. 따라서 write() 와 close() 메서드를 호출했다고 해서 데이터가 실제 플래쉬 메모리에 저장되었다고 단언할 수 없다.


따라서 데이터를 저장할 때는 RandomAccessFile 의 synchronous 모드를 사용하는 것이 좋다. 이렇게 사용하면 내부적으로 fsync() 를 호출한다.


FileOutputStream 을 사용하게 되면 다음과 같이 sync 를 시켜주어야 한다.


public static boolean sync(FileOutputStream stream) {

try {

if (stream != null) {

stream.getFD().sync();

}

return true;

catch (IOException e) { }


return false;

}





여기서 단점은, sync() 를 사용하면 performance 이슈가 생기기 쉽고, 간혹가다가는 엄청난 속도 차를 내기도 한다. 이 점을 주의해서 사용해야 한다.



반응형

댓글