마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 로컬 db 접근관련 질문입니다.

0 추천
1. 안드로이드는 data/data에 db가 저장된다고 하던데요

예제를 보니까 sqlite 파일이 어디에 있는지에 대한 경로는 따로 지정을 하는거 같지 않더라구요?

data/data/패키지/databases/ 여기가 기본 고정값인지가 궁금합니다

 

2. data/data밑에 있는 db에 직접 접근이 어려워서 data/data밑에 저장되어 있는 db파일을 컴퓨터로 따로 가져와서 작업을 하는것 같던데 다시 data/data 쪽으로 덮어씌우기가 가능한건가요?

 

3. 2번처럼 처리하는 과정이 이해가 되지 않습니다.

data/data 자체가 이미 사용자가 사용하고 있는 기기의 경로를 말하는것 아닌가요?

왜 여기에 있는것을 가져와 수정을 하는건가요? 이미 가지고 있는 db파일을 수정하지 않고요? 그냥 테스트과정에서 사용자가 어떻게 보게될지를 확인하려는 작업일뿐인건가요?

그럼 개발자 입장에서는 db파일은 어디에 두고 어떻게 배포를 해야하는건가요?
익명사용자 님이 2016년 5월 1일 질문

1개의 답변

0 추천
1번은 어플이 설치된 경로에 같이 db 파일이 들어갑니다. 이건 못건드립니다.

2번처럼 하려면 루팅 해야됩니다

루팅안하면 어플이 설치되어 있는 경로 못건드립니다.

그냥 안드로이드로 하세요

안드로이드에서도 충분히 db 작업하기 쉽습니다.
안드잘하고싶 (3,310 포인트) 님이 2016년 5월 1일 답변
안드로이드에서 작업을 한다는게 어떤건가요..?
sqlite 디비를 아직 전혀 만들어보지 않으신거같네요
이거 만들때 db 파일명이랑 테이블 create문 이런거 다써서 직접 sql문 작성해서 디비 객체에서 exec 해서 테이블 생성하구요
테이블에서 데이터 받아올때는 튜플을 위에서부터 순서대로 가리키는 cursor를 쓰시던가 아니면 단순 insert나 delete같은건 sql문 작성해서 하면 됩니다. 코드상에서...
그냥 mysql이랑 다른점은 서버를 사용하느냐 아니면 직접 로컬에 저장해서쓰느냐 이차이입니다.
그리고 로컬에 저장해서 쓰기때문에 어플을 지우면 db도 지워집니다.
제가 지금 하려는 자료들이 엑셀을 거쳐서 만들어지고 있어서요
엑셀에 저장된 것들을 db파일로 전환하면서 테이블로 옮기고 다시 쿼리를 날려서 새로운 테이블에 정리시키려고 하고 있거든요(엑셀보다는 sql이 익숙해서..)

그런데 아직 테이블 설계가 명확하게 된것이 아니라 우선적으로 안드로이드에서 db파일을 어떻게 가져오는지를 테스트하고 있는중입니다.
임시적으로 db파일만들고 테이블만들어서 select결과를 log로 출력하는것은 된 상태이구요

마지막에는 앞서 말씀드린 직접 만든 db파일이 data/data--- 안에 들어가야하는데 어플리케이션을 배포할때 이 파일을 어떻게 넣어줘야하는지를 잘 모르겠습니다.

asset에 db 파일을 넣고 어플을 실행시키면 특정 소스를 통과시키도록하여 data/data로 옮겨주는 방식도 있던데 매번 무언가를 체크해야한다는게 정상적인 방법은 아닌거 같고..

웹을 이용해서 다운받도록하자니 또 서버가 필요하고..

혹시 다른 좋은 방법이 있을까요?
...