외부 database를 참조하고 싶을때, 어떻게 해야할까.
기본적으로 database를 생성하면, package에 포함되 버려서 database를 열람하지 못한다. (emulator에서는 explorer로 볼수 있다. 하지만 폰에서는 확인하지 못한다.)
DATABASE 운용이 잘 되는 개발자라면, 별 어려움을 못느끼겠지만... 그런사람이 얼마나 될까.
그래서 내부 database를 외부로 빼내서, sqlite browser나 파이어폭스 sqlite manager로 보고싶다.
public static final String PACKAGE_DIR = "/data/data/com.mob.package/"; public static final String DATABASE_NAME = "db/testdb.sqlite"; public static final String COPY2DATABASE_NAME = "testdb.sqlite"; public void doCopy() { // check File folder = new File(PACKAGE_DIR + "databases"); folder.mkdirs(); File outfile = new File(PACKAGE_DIR + "databases/" + COPY2DATABASE_NAME); outfile.delete(); if (outfile.length() <= 0) { AssetManager assetManager = getResources().getAssets(); try { InputStream is = assetManager.open(DATABASE_NAME, AssetManager.ACCESS_BUFFER); long filesize = is.available(); byte[] tempdata = new byte[(int) filesize]; is.read(tempdata); is.close(); outfile.createNewFile(); FileOutputStream fo = new FileOutputStream(outfile); fo.write(tempdata); fo.close(); } catch (IOException e) { e.printStackTrace(); } } } }
'프로그래밍 > Android 짜투리 지식' 카테고리의 다른 글
[androd] animation 적용 (0) | 2013.01.25 |
---|---|
[android] toast text 위치 (0) | 2013.01.16 |
[android] encrypt decrypt (0) | 2012.11.29 |
[android] FragmentActivity - Fragment 에 하드웨어 키 리스너 가져오기 (0) | 2012.11.26 |
[android] sdcard 내 image 검색 (0) | 2012.11.17 |