원문 : http://taxhon.blog.me/60124799218
맨처음 데이타베이스를 사용하다가 이상하게 언젠가부터 뻑이 나서 제대로 동작이 되질 않았다.
알고봤더니 asset폴더는 데이타베이스 파일이 1mb가 넘으면 읽지를 못한다길래,
이 파일을 자바프로젝트에서 분리하고
그 파일을 설치될때 복사하는 방법을 찾았다.
테스트를 해보니..파일이 제대로 열리지 않았다.
다양한 소스를 테스트해보던 중
이런 글을 보았다.
대용량 DB 때문에 분할할려고 하나 보군요. 분할할 필요없습니다.
Asset에다가 대용량 DB를 넣을 때, 확장자를 mp4나 mp3로 바꿔서 넣고, 이를 복사해서 사용하면 됩니다.
복사할 때 확장자를 바꾸면 됩니다.
-> 이런 진짜로 동작이 되었다.;;;;;반나절이 안되는 시간을 고민하면서 디버깅을 했는데..아무튼 이걸로 뭐 분할이고 뭐가 다 필요가 없는 것이었다.
정말 커뮤니티가 좋은 것 같다.
Asset folder는 특정확장자를 제외한 화일들은 안드로이드가 내부적으로 모두 압축을 합니다.
그러므로 대용량을 분할하지 않을려면 압축이 자동으로 되지 않는 화일확장자를 가지면 됩니다. 이런 확장자가 mp3,mp4 등등 몇개 있습니다.
대용량 sqlite화일이 그대로 복사가 안되는 이유는 sqlite화일을 안드로이드가 압축을 해서 가지고 있는데, 이를 다시 풀려고 할 때 ,
특정 사이즈 이상은 처리가 안되게 되어 있다고 합니다. 즉 압축문제입니다.
저도 처음엔 asset 폴더에 넣어서 어플 배포를 했는데 나중에 알게되니 asset 폴더에 단점이 있습니다..
일단 1메가 이상은 에러가 나고..
가장 큰 단점은 db를 카피하고 나서 필요없어진 asset 폴더안에 db파일은 삭제도 안되고 공간만 차지 하게 됩니다..
가장 좋은 방법은 사이트에 db 파일을 올리고 초기 설치시에 웹에서 다운받아서 db를 오픈하시길 추천합니다.
http://www.androidpub.com/1188867
역시 오늘도 난 검색을 더욱 더 사랑하게 되었다.
'안드로이드' 카테고리의 다른 글
[안드로이드] byte[] -> bitmap, bitmap -> byte[] 변환 (0) | 2011.08.10 |
---|---|
[안드로이드] GirdView에서 아이템 클릭시, OnItemClick() 메소드 수행 후 getView() 호출 이유(?) (0) | 2011.08.09 |
[안드로이드] 다중쓰레드 기반에서 ProgressBar 멈춤 현상 (0) | 2011.08.09 |
[안드로이드] Drag&Drop 을 할 수 있는 ListView 만들기 (0) | 2011.08.05 |
클래스 로딩 문제 분석하기, Part 2: 기본적인 클래스 로딩 예외(Exception) (한글) (0) | 2011.08.04 |
[자바] 큐(Queue) 성능 테스트 - ArryList, HashMap, LinkedList, ... (0) | 2011.07.29 |
안드로이드 폴더 삭제 (0) | 2011.07.21 |
자바 입출력(객체형식으로 파일 입출력, 소켓형식의 입출력) (0) | 2011.07.19 |
Heap 메모리 분석 (0) | 2011.07.07 |
안드로이드 메모리 누수 줄이기 (0) | 2011.07.07 |