안드로이드 개발 질문/답변
(글 수 45,052)
A라는 DB파일이 있을 경우
앱 배포하면 A라는 파일은 사라져 버립니다.
기존에 A파일을 뽑아서 asset에 이동시킨뒤
코드내에서 복사해주는 방법이 있다고 하는데
검색해봐도 간단한 설명만 나와있어서
염치불구하게 질문을 올립니다.
디비파일 복사는 어떻게 해야하는지요??
앱 배포하면 A라는 파일은 사라져 버립니다.
기존에 A파일을 뽑아서 asset에 이동시킨뒤
코드내에서 복사해주는 방법이 있다고 하는데
검색해봐도 간단한 설명만 나와있어서
염치불구하게 질문을 올립니다.
디비파일 복사는 어떻게 해야하는지요??
2010.05.31 18:55:10
보통 부적절한 공간에 허용되지 않는 종류의 파일이 있으면, 배포될 때 없어집니다. 예를 들어 src 폴더에 *.db 파일이 있다면, 배포되면서 사라지죠. 보통 그런 파일들은 asset 디렉토리에 넣어서 배포해야만 합니다.
그리고 asset에 들어있는 파일들은 읽기 전용입니다. 수정 삭제가 안됩니다.
고로, 어떤 파일을 프로젝트 내의 다른 디렉토리에 넣어놨다가, asset으로 옮기는 것 또한 불가능입니다.
결국 이러나 저러나, 방법은 필요한 파일을 asset에 넣어뒀다가, 런타임 시에 그걸 SD 카드로 퍼내는(?) 방법을 써야하죠.
근데 asset에 들어갈 수 있는 파일은 1024kb가 넘으면 안됩니다.
그러므로, 용량이 큰 파일이라면 적당히 쪼갠 다음에, 최초 런타임 시나, 적당한 시점에서 SD 카드로 복사를 한 후,
그 파일을 이용하는 것이 좋으리라 봅니다.
그리고 파일 복사하는 방법을 모르신다면, java.io package 쪽을 공부하시는 것이 좋을 거라 봅니다.
그리고, 회색님이 쓰신 스킬 중에는, [실제 어플리케이션]과, [어플리케이션의 데이터만 갖고 있는 어플리케이션]을 따로 배포하여,
[데이터만 가지는 어플리케이션]은 데이터를 SD 카드로 복사한 후, 스스로 언인스톨 되게 하는 그런 방법도 있었습니다.