반응형
전체 예제 코드를 http://bunhere.tistory.com/205 에 추가했습니다.
약간 복잡한 기초 데이터를 위해 초기 실행시 Create Table 도 하고 insert도 할 수 있겠지만, 별도의 db 파일을 만들어 관리하고 싶다면 아래와 같은 방법을 쓰는 것도 한가지 방법입니다.1. db 파일을 assets에 넣습니다.
2. 아래 함수를 적당한 위치에 넣습니다.
풀 코드가 아니라 크게 도움은 안되지만 컨셉을 이해하실 수 있을 것이라고 생각됩니다.ROOT_DIR은 아래와 같이 선언되어 있습니다. 경로는 자기 패키지 경로로 수정해주시면 됩니다.
[2010-09-30] 간단히 설명 추가합니다.
4번 라인에서 mkdirs를 통해 폴더를 생성하고자 노력합니다. 일단 만들어져있으면 이 함수를 실패할 것입니다.
그러나 이미 원하는 목적(폴더생성)은 되어 있을 것이므로 문제가 되지 않습니다.
중요한 점 하나는 /data/data/ 아래에는 자기 패키지가 있는 곳 외에는 수정이 불가능합니다.
따라서 ROOT_DIR이 이상할 경우 mkdirs는 폴더가 없더라도 실패합니다.
5번라인에서 해당 폴더 아래 DATABASE_NAME 변수가 가르키는 이름을 가진 파일이 있는지 체크합니다.
이 파일의 이름은 반드시 assets에 복사해놓은 파일명과 동일해야 합니다.
(테이블 명이 아닙니다!)
왜냐하면 9번 라인에서 assetManager를 오픈할 때 이 DATABASE_NAME을 쓰기 때문입니다.
5번 라인에서 파일을 읽어드립니다.
6번 라인과 같이 파일의 길이가 0보다 작다는 것은 파일이 없다는 의미라고 생각했습니다. 따라서 파일을 복사하는 그 아래 코드(7번~18번)를 실행하게 됩니다.asset의 파일을 읽어오기 위해 7번 라인과 같이 assetManager를 이용해서 파일을 오픈합니다.나머지 내용들은 자바이므로 생략합니다.혹시 이해가 안되는 부분이나 더 나은 방법이 있다면 답글 주세요.
허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
반응형
'개발 > 안드로이드 App' 카테고리의 다른 글
Android]GalleryView에 Image 추가 하기 (0) | 2010.07.07 |
---|---|
[팁]GalleryView의 flick 민감도 조절하기 (2) | 2010.07.05 |
[팁] density를 고려한 어플리케이션 만들기 (0) | 2010.06.28 |
[팁] SDCARD의 상태 확인 (0) | 2010.06.26 |
[Widget][예제]ListView with CursorAdaptor (3) | 2010.06.24 |