Android Studio에서 데이터베이스 파일 내용보기


251

앱이 출시 된 후 Android Studio 를 사용하여 앱을 개발해 왔습니다.

최근까지 모든 것이 잘 작동합니다. 데이터베이스 파일 확인과 함께 디버깅해야합니다. 데이터베이스를 직접 보는 방법을 모르기 때문에 데이터베이스 파일을 생성하기 위해 디버깅 할 때 데이터베이스 파일을 휴대폰에서 PC로 내 보내야합니다.

이렇게하려면을 열어야 DDMS > File Explorer합니다. DDMS를 열면 USB를 다시 연결해야하며 디버그 스레드가 손실됩니다. 데이터베이스 파일을 확인한 후 DDMS를 닫고 USB를 다시 연결하여 디버그 모드로 돌아 가야합니다.

너무 복잡합니다. 누구든지 Android Studio 에서이 작업을 수행하는 더 좋은 방법이 있습니까? (Eclipse에서 더 쉽다는 것을 알고 있습니다)?


답변:


302

Android Studio에서 데이터베이스보기 :

편집 : 에뮬레이터에서 데이터베이스를 보려면 다음 단계를 수행하십시오 (실제 장치의 경우 맨 아래로 스크롤).

  1. SQLiteBrowser를 다운로드하여 설치 하십시오 .

  2. 장치에서 PC로 데이터베이스를 복사하십시오.

    • Android Studio 버전 <3.0 :

      • 를 통해 DDMS 열기Tools > Android > Android Device Monitor

      • 왼쪽에서 기기클릭하십시오 .
        응용 프로그램이 표시되어야합니다. 여기에 이미지 설명을 입력하십시오

      • 이동 탐색기 파일 (오른쪽에있는 탭 중 하나를)로 이동/data/data/databases 여기에 이미지 설명을 입력하십시오

      • 데이터베이스 를 클릭하여 선택하십시오 .

      • Android 장치 모니터 창의 오른쪽 상단으로 이동하십시오. ' 기기에서 파일 가져 오기 '버튼을 클릭하십시오. 여기에 이미지 설명을 입력하십시오

      • 데이터베이스 파일을 저장할 위치를 묻는 창이 열립니다. PC의 원하는 위치에 저장하십시오 .

    • Android Studio 버전> = 3.0 :

      • 다음을 통해 장치 파일 탐색기 를 엽니 다.View > Tool Windows > Device File Explorer

      • 으로 이동하십시오 data > data > PACKAGE_NAME > database. 여기서 PACKAGE_NAME은 패키지 이름입니다 ( 위 예에서 com.Movie 입니다).

      • 데이터베이스를 마우스 오른쪽 단추로 클릭하고을 선택하십시오 Save As.... PC의 원하는 위치에 저장하십시오 .

  3. 이제 설치 한 SQLiteBrowser 를 엽니 다 . ' 데이터베이스 열기 '를 클릭 하고 데이터베이스 파일을 저장 한 위치로 이동 한 다음를 엽니 다 . 이제 데이터베이스의 내용을 볼 수 있습니다.


모바일 장치에서 데이터베이스를 보려면

Github 리포지토리로 이동 하여 readme의 지침에 따라 장치에서 데이터베이스를 볼 수 있습니다. 당신이 얻는 것은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

그게 다야. 그러나 앱을 게시하기 전에이 단계를 모두 취소해야한다는 것은 말할 것도 없습니다.


2
sqlitebrowser 도구의 힌트는 훌륭하기 때문에 정답입니다. 감사합니다
Manu Zi

26
장치 모니터의 파일 탐색기에서 / data가 확장되지 않습니다. / data 또는 / data / data 디렉토리의 항목을 나열하려면 수퍼 유저 액세스가 필요하므로 액세스 할 수없는 것 같습니다. 여전히 su 권한으로 adb shell을 통해 데이터베이스 파일에 액세스 할 수 있습니다. 파일 관리자에서 su 액세스하는 방법을 알고 있습니까?
Saravanabalagi Ramachandran 2016 년

2
@ZekeDran, 예 방법 아닌 device.I이 장치 though.Check 편집에서 데이터베이스를 볼 수있는 단계를 추가 한 에뮬레이터 만 쇼 데이터
Ojonugwa 유 Ochalifu

11
작동하지만 에뮬레이터는 API 23 이하를 실행해야합니다. API 25를 사용하는 경우 파일 탐색기에 내용이 없습니다
Manos

2
Github 링크의 데이터베이스 관리자가 나를 위해 일하고 있습니다! 또한 쿼리를 테스트 할 수있는 기회가 있습니다!
basti12354

199

ADB Shell을 통해 Sqlite3에 연결

Android Studio에서 그렇게하는 방법을 찾지 못했지만 매번 파일을 가져 오는 대신 원격 쉘로 db에 액세스합니다.

여기에서 모든 정보를 찾으십시오 : http://developer.android.com/tools/help/adb.html#sqlite

1- 명령 프롬프트에서 platform-tools 폴더로 이동하십시오.

2- adb devices장치 목록을 보려면 명령 을 입력하십시오

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx   device

3- 장치에 쉘을 연결하십시오.

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell

4- db 파일이 들어있는 폴더로 이동하십시오.

cd data/data/<your-package-name>/databases/

sqlite3을 실행하여 DB에 연결하십시오.

sqlite3 <your-db-name>.db

6- 원하는 sqlite3 명령을 실행하십시오. 예 :

Select * from table1 where ...;

참고 : 아래에서 실행할 추가 명령을 찾으십시오.

SQLite 치트 시트

SQLite 데이터베이스에서 테이블을 보려면 몇 가지 단계가 있습니다.

  1. 데이터베이스의 테이블을 나열하십시오.

    .tables
  2. 테이블 모양을 나열하십시오.

    .schema tablename
  3. 전체 테이블을 인쇄하십시오.

    SELECT * FROM tablename;
  4. 사용 가능한 모든 SQLite 프롬프트 명령을 나열하십시오.

    .help

17
4 단계에서 권한이 거부되었습니다. 어떻게 생각하십니까?
Adrian Olar

4
3 단계 'root adb -s emulator-xxxx shell'에서 avd를 루트로 시작하거나 루트로 adb를 시작해야 할 수도 있습니다.
Distwo

2
5 단계 : sqlite3을 찾을 수 없습니다. 왜?
sabsab

3
사용하려면 설치가 필요하기 때문에
Paul Paca-Vaca Seleznev

12
데이터베이스 폴더 에 액세스하려고 할 때 개인적으로 권한이 거부되었습니다 . run-as your.package.name
Yann39

83

실제로 아무도이 솔루션을 제공하지 않았다는 사실에 매우 놀랐습니다.

Stetho를 살펴 보십시오 .

나는 여러 가지 목적으로 Stetho를 여러 목적으로 사용했습니다 (그중 하나는 데이터베이스 검사). 실제 웹 사이트 에서는 네트워크 검사 기능과 뷰 계층 구조를 살펴 보는 기능에 대해서도 설명합니다.

그것은 약간의 설정 만 필요합니다 : 1 gradle 종속성 추가 (생산 빌드를 위해 주석을 달 수 있음), Stetho를 인스턴스화하는 몇 줄의 코드 및 Chrome 브라우저 (모든 것에 Chrome devtools를 사용하기 때문에).

업데이트 : 이제 Stetho를 사용하여 Realm 파일을 볼 수 있습니다 (SQLite DB 대신 Realm을 사용하는 경우) : https://github.com/uPhyca/stetho-realm

업데이트 # 2 : 이제 Stetho를 사용하여 Couchbase 문서를 볼 수 있습니다 : https://github.com/RobotPajamas/Stetho-Couchbase

업데이트 # 3 : Facebook은 모든 Stetho 기능을 새로운 도구 인 Flipper에 추가하기 위해 노력하고 있습니다. 플리퍼에는 이미 Stetho의 많은 기능이 있습니다. 따라서 이제 전환하기에 좋은시기 일 수 있습니다. https://fbflipper.com/docs/stetho.html


9
많은 감사합니다. 더 간단하게, 1. compile 'com.facebook.stetho:stetho:1.3.1' , 2.이 코드 Stetho.initializeWithDefaults(this);와 3을 추가하십시오.chrome://inspect/#devices
Frank Myat Thu

2
크롬 브라우저 내에서 타사 도구없이 데이터베이스의 데이터를 볼 수 있습니다.
Mateus Viccari

교실에 Stetho.initializeWithDefaults(this);있어야한다는 것을 잊지 마십시오 Application.
wonsuc

1
훌륭한 도구입니다. 설정이 올바르게 완료되면 앱이 #devices 페이지에 표시됩니다. 검사를 클릭 한 후 자원> 웹 SQL> [db_name]으로 이동하면 sqlite 문을 작성할 수 있습니다.
브래드

73

에뮬레이터를 사용하지 않을 때 가장 간단한 방법

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name

주의 사항 :

나는 이것을 한동안 테스트하지 않았습니다. API> = 25에서는 작동하지 않을 수 있습니다. cp 명령이 작동하지 않으면 다음 중 하나를 대신 시도하십시오.

# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>

# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name

설명:

첫 번째 블록은 데이터베이스의 권한을 읽을 수 있도록 구성합니다. 이를 통해 run-as패키지 사용자를 가장하여 변경할 수 있습니다.

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as

다음으로 데이터베이스를 월드 읽기 가능 / 쓰기 가능 디렉토리에 복사합니다. 이것은 adb 풀 사용자 액세스를 허용합니다.

$ cp /data/data/your.package.name/databases/database_name /sdcard

그런 다음 기존 읽기 / 쓰기 권한을 바꾸십시오. 이는 앱 보안에 중요하지만 다음 설치시 권한이 대체됩니다.

$ run-as your.package.name
$ chmod 660 databases/database_name 
$ chmod 660 databases
$ exit # Exit the shell started with run-as

마지막으로 데이터베이스를 로컬 디스크에 복사하십시오.

$ exit # Exits shell on the mobile device (from adb shell) 
$ adb pull /sdcard/database_name

4
두 번째 명령에 문제가 있습니다 : run-as. 'com.mycompany.myappname'을 알 수 없습니다. 그리고 네, 올바른 패키지 이름을 사용하고 있다고 확신합니다!
Scott Biggs

1
@PhuLai 다른 장치를 사용해 보셨습니까? 어떤 장치가 고장입니까?
18시 51 분

1
Nexus 6P, API 25를 사용해 보았습니다.이 방법은 새로운 Android 버전에서는 작동하지 않는다고 생각합니다.
foo

chmod 660 databases/database_name전에 있어야chmod 660 databases
Alaa M.

@PhuLai-나는 이것을 얻었고 cp명령을 건너 뛰고 pull외부에서 (권한을 변경 한 후) 시도했지만 작동했습니다 (A adb pull data/data/package.name/databases/db_name.db)
Alaa M.

52

에서 안드로이드 스튜디오 3 이상 당신은 볼 수 있습니다 "장치 파일 탐색기를" 오른쪽 아래에 섹션이 있습니다.

파일 트리를 열면이 경로에서 응용 프로그램 데이터베이스를 찾을 수 있습니다.

/data/data/{package_name}/databases/

여기에 이미지 설명을 입력하십시오


2
내 앱의 DB 파일을 두 번 클릭하면 읽을 수없는 모든 문자가 표시됩니다. DB 내용을 볼 때 어떤 SQLite 리더를 사용하십니까?
Surekha

4
sqlitebrowser.org 무료, 오픈 소스를 권장하며 모든 플랫폼에서 사용 가능합니다.
Ali Zeynali

3
내 database.db 파일에 테이블이 없습니다.
Binil

폴더가 비어 있습니다. 오류 : run-as: Could not set capabilities: Operation not permitted. 삼성 장치 : stackoverflow.com/questions/37413667/…
O-9

25

마지막으로 DDMS를 열 필요가없는 가장 간단한 솔루션을 찾았습니다.

실제로 솔루션은 @Distwo가 언급 한 내용을 기반으로하지만 그렇게 복잡 할 필요는 없습니다.

먼저 , 장치에서 데이터베이스 파일의 경로를 기억하십시오. 예를 들어 광산은 다음과 같습니다./data/data/com.XXX.module/databases/com.XXX.module.database

둘째 , 데이터베이스 파일을 PC로 가져 오는이 명령을 실행하십시오.

 adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

이 명령을 복사하여 저장하면 반복해서 사용할 수 있습니다.

셋째 , Permission Denied 또는 이와 유사한 것이 있으면 adb root이전 명령 전에 실행 하십시오.


9
adb root휴대 전화에서 실행 이 작동하지 않습니다. 인쇄합니다 adbd cannot run as root in production builds. 그러나을 실행 한 후 adb rootpull 명령이 멈추고 수동으로 중지해야합니다.
LaDude

@Daniela run-as your.package.name는 귀하의 앱에 속한 사용자로서 "로그인해야합니다"
m02ph3u5

위 명령을 사용하여 .db 파일을 데스크탑에 복사하고 Firefox에 SQLiteManager 브라우저 플러그인을 설치 한 후 탐색을 시작하십시오. 2 분 일!
JaydeepW

그 루트 명령은 에뮬레이터를위한 것이기 때문에이 명령을 실행하고 '전화'를 루트 할 수는 없습니다.
Darpan

1
모든 것이 끝나면 database.db를 얻습니다. 그러나 database.db 파일에 테이블이 포함되어 있지 않음
Binil

16

이 안드로이드 스튜디오 플러그인 SQLScout을 사용해보십시오 . 앱 데이터베이스를 실시간으로보고 편집 할 수 있습니다.

SQLScout

편집 : 유료 플러그인이지만 24 시간 평가판이 있고 두통 시간에 적합하다는 것을 기억하십시오.


17
유료 제품이므로 언급하지 않았습니다.
yshahak

58
실제로는 24 시간의 평가판이 있으며 24 시간 이상 개발자로 내 미래를 계획했습니다.
yshahak

슬프게도, 그것은 무료가 아닙니다.
K.Sopheak

시험 시간은 36 시간입니다.
Mahdi Moqadasi

9

모든 솔루션을 거친 후 제안합니다

스테 토스 사용
얼마나 간단한 지 살펴 보겠습니다

build.gradle 파일에 다음 종속성 추가

compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

그런 다음 mainActivity onCreate 메소드로 이동하여 다음 줄을 추가하십시오.

Stetho.initializeWithDefaults(this);

이것은 당신이 필요합니다

import com.facebook.stetho.Stetho;

이제 android studio, Open Chrome 및 주소 표시 줄 유형 chrome : // inspect / 에서 앱을 실행하는 동안

리소스 탭> 웹 SQL에서 데이터베이스 및 테이블 재생을 실시간으로 쉽게 확인하십시오.


방은 단지 orm이고, sql과 관련하여 아무런 변화도 없습니다
ShankPossible

9

가장 쉬운 방법은 Android 디버그 데이터베이스 라이브러리 (GitHub의 7.3k 별)를 사용하는 것 입니다.

안드로이드 디버그 데이터베이스

장점 :

  • 빠른 구현
  • 모든 데이터베이스 및 공유 환경 설정보기
  • 데이터베이스 값을 직접 편집, 삭제, 생성
  • 주어진 데이터베이스에서 SQLite 쿼리를 실행하십시오.
  • 데이터에서 검색
  • 데이터베이스 다운로드
  • 사용자 정의 데이터베이스 파일 추가
  • 장치를 루팅 할 필요가 없습니다.

사용하는 방법:

  1. 추가 debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'합니다 build.gradle (module);
  2. 앱 시작;
  3. LogCat에서 로그에서 디버깅 링크를 찾아 ( D/DebugDB: Open http://192.168.232.2:8080 in your browser링크가 다름) 브라우저에서 엽니 다.
  4. 강력한 디버깅 도구를 즐기십시오!

중대한:

  • 불행히도 에뮬레이터 에서는 작동 하지 않습니다
  • USB를 통해 사용하는 경우 다음을 실행하십시오. adb forward tcp:8080 tcp:8080
  • Android 휴대 전화와 노트북은 동일한 네트워크 (Wifi 또는 LAN)에 연결되어 있어야합니다

자세한 내용 은 GitHub 의 라이브러리 페이지 로 이동 하십시오 .


1
이것은 가장 고통스럽지 않은 과정입니다! 감사합니다 Daniel
Sudip

5

안드로이드 스튜디오 내에서 데이터베이스 컨텐츠 를 볼 수있는 간단하고 쉬운 방법 .

#Android Studio 4.1 Canary 6 이상

매우 간단한 Android Studio 기능인 Database Inspector를 사용할 수 있습니다 . 새로운 Database Inspector를 사용하여 앱의 데이터베이스를 검사, 쿼리 및 수정할 수있는 위치 예를 들어 Android Studio를 종료하지 않고 데이터베이스의 값을 수정하고 기기에서 변경 사항을 실시간으로 테스트하여 실행중인 앱을 디버깅 할 수 있습니다 .

시작하려면 API 레벨 26 이상을 실행하는 디바이스에 앱을 배치 하고 메뉴 표시 줄에서 보기> 도구 창> 데이터베이스 검사기 를 선택하십시오 .

#Android Studio 4.0 이하

먼저 Android Studio에서 Database Navigator 플러그인을 설치하십시오.

여기에 이미지 설명을 입력하십시오

둘째 , Android Studio를 다시 시작하십시오.

셋째 , (C : \ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator 또는 device \ data \ data \ package name \ databases) 와 같은 기본 위치에 데이터베이스를 저장하십시오 .

여기에 이미지 설명을 입력하십시오

넷째 , 데이터베이스 네비게이터 에 저장된 dbname_db 파일 연결

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

3 단계에서 사용 된 것과 동일한 DB 파일 경로 제공

(C : \ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator 또는 device \ data \ data \ package name \ databases \ package naem \ dbname_db)

마지막으로 DB 연결을 테스트하고 콘솔을 열고 원하는 작업을 수행하십시오.

여기에 이미지 설명을 입력하십시오

DB를 새로 고치려면 2 단계를 반복 하고 저장하거나 새로 고치십시오.

행복한 코딩 !!!!!


3
이 솔루션은 일상 업무에 많은 노력이 필요합니다. 그리고 데이터베이스가 변경 될 때마다 SQL 파일을 다시로드해야합니다. 조금 복잡해 보입니다. 로컬 서버에서 데이터베이스를 볼 수있는 플러그인을 사용하는 것을 선호합니다
Максим Петлюк

1
데이터베이스 네비게이터에 실시간 데이터 업데이트가 없을 때까지 플러그인이 곧 업데이트되기를 바랍니다.
Nabin

정확하게, 그것은 훌륭한 기능이 될 것입니다
Максим Петлюк

예, 지금까지 데이터 쿼리, 추가, 편집 및 삭제가 필요한 경우이 방법이 가장 좋습니다.
Nabin

데이터베이스를 새로 고치려면 항상 저장을 수행해야합니까? mysql에서보다 쉬운 방법이 있습니까? 새로 고침 버튼을 누르는 것만 필요합니다.
ン ド リ ー 라이라이 아나

4

android studio에서 sqlite 데이터베이스가 저장된 위치를 알려면 간단한 단계를 수행해야합니다.

1.Run your application
2.Go to Tools--->Android---->Device Monitor
3.Find your application name in left panel
4.Then click on File Explorer tab
5.Select data folder
6.Select data folder again and find your app or module name
7.Click on your  database name
8.On right-top window you have an option to pull file from device.
9.Click it and save it on your PC
10.Use FireFox Sqlite manager to attach it to your project.

자세한 내용은이 링크가 유용합니다. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

db 파일에 존재하는 데이터를 보려면 sqlite 브라우저를 다운로드하거나 브라우저에서 동일한 플러그인을 추가해야하므로 브라우저에서 파일을 열고 데이터를 봐야합니다.

http://sqlitebrowser.org/ 에서 브라우저를 다운로드 하십시오.

등록 데이터베이스가 포함 된 브라우저를 보여주는 스크린 샷입니다

감사,


3

가장 간단한 방법은 기기를 연결하고 툴바에서 Android Studio를 실행하는 것입니다.

  1. 보기-> 도구 창-> 장치 파일 탐색기
  2. 데이터 / 데이터로 이동하여 패키지 찾기
  3. 탐색하려는 DB 파일을 찾아서 다운로드하십시오.
  4. 이 온라인 도구 : https://sqliteonline.com/ 에서 db 파일을 탐색하는 것이 좋습니다.

또 다른 방법은 Stetho 라이브러리를 사용하는 것입니다.

  1. build.gradle에 Stello 종속성을 추가하십시오.

    'com.facebook.stetho : stetho : 1.5.0'컴파일

  2. Application 클래스 또는 주요 활동의 onCreate ()에 다음 줄을 넣으십시오.

    Stetho.initializeWithDefaults (this);

  3. 기기를 연결하고 앱을 실행 한 다음 Chrome에서 다음 사이트를 입력하십시오.

    chrome : // inspect / # devices

그게 다야. 이제 테이블을 탐색 할 수 있습니다.

참고 : 프로덕션으로 이동하기 전에 종속성을 제거하는 것이 좋습니다.


3

ANDROID STUDIO에서 데이터베이스를 탐색하려면 다음을 사용하십시오.

파일 / 설정 / 플러그인으로 이동하여 다음을 찾으십시오.

여기에 이미지 설명을 입력하십시오

... Android Studio를 다시 시작한 후 다음과 같이 다운로드 한 데이터베이스 파일을 선택할 수 있습니다. 여기에 이미지 설명을 입력하십시오

... "Open SQL Console"아이콘을 클릭하면 Android Studio에서 데이터베이스의 멋진 모습을 볼 수 있습니다. ! [여기에 이미지 설명 입력


2
그래서 나는 항상 에뮬레이터에서 db를 복사해야합니까?
Maksim Kniazev


1

이것은 매우 오래된 질문이며 내 대답은 위의 답변과 비슷하지만 훨씬 빨리 완료되었습니다. 아래 스크립트는 Mac 용이지만 누군가 Windows 용으로 수정할 수 있다고 확신합니다.

1) Mac에서 스크립트 편집기를 엽니 다 (Spotlight에서 스크립트 편집기를 검색하면됩니다)
2) 아래 텍스트를 복사하여 붙여넣고 SDK 경로, 패키지 이름 등으로 수정합니다 (아래 참조).
3) 스크립트를 저장하십시오! !

그게 다야! 바탕 화면에있는 업데이트 된 데이터베이스 파일을 가져 오려면 상단의 재생 버튼을 누르십시오.

아래 스크립트에서 다음 사항을 교체하십시오.

path_to_my_sdk == >> 당신의 SDK의 전체 경로를 넣어
my_package_name 응용 프로그램의 패키지 이름 >> ==
myDbName.db == >> 데이터베이스의 파일 이름

set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db"
do shell script getLocalDb

이것이 누군가를 돕기를 바랍니다.


그것은 나를 위해 일했다. 출력 디렉토리 /Users/User/Desktop/myDbName.db에서 'User'를 MacBook 사용자 이름으로 변경해야하는 것을 제외하고
Kenny Dabiri

1

나는 질문이 다소 오래되었다는 것을 알고 있지만이 문제가 여전히 존재한다고 생각합니다.

브라우저에서 데이터베이스보기

안드로이드 앱 프로젝트에 lib로 통합 할 수있는 개발 도구를 만들었습니다. 이 도구는 앱에서 서버 소켓을 열어 웹 브라우저를 통해 통신합니다. 전체 데이터베이스를 탐색하고 브라우저를 통해 데이터베이스 파일을 직접 다운로드 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

jitpack.io를 통해 통합을 수행 할 수 있습니다.

프로젝트 build.gradle :

//...
allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
//...

앱 build.gradle :

//...
dependencies {
    //...
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'
    //...
}
//...

응용 프로그램 클래스

특정 빌드 유형 또는 제품 버전에서만 DebugGhostLib를 컴파일하려면 특수 버전에서 파생되는 추상 응용 프로그램 클래스가 필요합니다. 다음 클래스를 main폴더 에 넣습니다 ( java> 아래 your.app.package).

public class AbstractDebugGhostExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Do your general application stuff
    }
}

이제 릴리스 빌드 유형 (또는 제품 맛)의 경우 다음 release(또는 제품 맛) 폴더 ( java> 아래)에 다음 Application 클래스를 추가합니다 your.app.package.

public class MyApp extends AbstractDebugGhostExampleApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

이것은 응용 프로그램 클래스가 아닙니다 DebugGhostLib를 참조 .

또한 AndroidManifest.xml자신의 응용 프로그램 클래스를 사용하고 있다고 말하십시오 . 이것은 귀하의 main폴더 에서 수행됩니다 :

<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- permissions go here -->
    <application android:name=".MyApp"> <!-- register your own application class -->
        <!-- your activities go here -->
    </application>
</manifest>

이제 디버그 빌드 유형 (또는 제품 맛)의 경우 다음 debug(또는 제품 맛) 폴더 ( java> 아래)에 다음 Application 클래스를 추가합니다 your.app.package.

public class MyApp extends AbstractDebugGhostExampleApplication {
    private DebugGhostBridge mDebugGhostBridge;

    @Override
    public void onCreate() {
        super.onCreate();

        mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);
        mDebugGhostBridge.startDebugGhost();
    }
}

여기 에서 도구 를 얻을 수 있습니다 .


이 Stetho이 새로운 크롬에서 작동이 중지 특히 후 좋은 도구입니다
호마윤 Behzadian


1

Android Studio 하단에서 장치 파일 탐색 터미널을 엽니 다.

Data 라는 폴더를 연 다음 Data 내부에서 폴더 데이터를 다시 엽니 다 .

폴더 데이터를 엽니 다

폴더 목록을 아래로 스크롤하여 your.package.name이 있는 폴더를 찾으십시오 . your.package.name > Database 폴더를여십시오 . your.databaseName을습니다 . your.databaseName을 마우스 오른쪽 단추로 클릭 하고 C : / your / Computer / Directory에 다른 이름으로 저장하십시오.

C : / your / Computer / Directory로 이동 하여 DB SQLite로 your.databaseName 을 엽니 다.

여기에 이미지 설명을 입력하십시오


1

Android Studio 3.X의 경우

  1. 보기-> 도구 창-> 장치 파일 탐색기
  2. 파일 탐색기 데이터-> 데이터-> com. (사용자 응용 프로그램 패키지)-> 데이터베이스
  3. 데이터베이스를 마우스 오른쪽 단추로 클릭하고 로컬 시스템에 저장하십시오. 파일을 열려면 데이터베이스 파일을 끌어서 SQLite Studio를 사용할 수 있습니다.

다음은 SQLite Studio에 대한 링크입니다. https://sqlitestudio.pl/index.rvt?act=download


1

Android Studio 4.1 Canary 및 Dev Preview 릴리스 에서는이라는 새로운 도구를 사용할 수 있습니다

데이터베이스 검사기

DB 인스펙터

AS 4.1 이상을 설치하고 앱을 실행 한 다음 데이터베이스 관리자를 연 다음 데이터베이스 관리자 패널의 왼쪽에서 데이터베이스 파일을 본 다음 내용을 볼 테이블을 선택할 수 있습니다.

라이브 쿼리

Run SQL 옵션을 사용하여 쿼리를 실행 하거나 Room 을 사용하는 경우 데이터베이스 관리자를 열고 앱을 실행하면 @Query주석 왼쪽의 실행 버튼을 클릭하여 인터페이스에서 DAO 쿼리를 실행할 수 있습니다 .

실시간 검색어


1

서버 측 데이터베이스와 같은 Android sqlite 사용

아래 나열된 단계를 따르십시오.

  1. 데이터베이스 도구 창을 찾아 아래 이미지와 같이 클릭하십시오.

여기에 이미지 설명을 입력하십시오

  1. 더하기 아이콘을 클릭하고 아래 그림과 같이 Android SQLite를 선택하십시오.

여기에 이미지 설명을 입력하십시오

  1. 안드로이드 기기를 컴퓨터에 연결

  2. 관심있는 패키지를 선택하고 아래 이미지와 같은 데이터베이스를 선택하십시오 여기에 이미지 설명을 입력하십시오

  3. 위의 모든 단계를 수행하기 전에 파일에 액세스 할 수있는 올바른 권한 이 있는지 확인해야합니다. /data/data//database/databasefile.db

이 모든 단계를 마치면 아래와 같은 데이터베이스 내용이 표시됩니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

마지막으로 중요한 것은

데이터베이스 데이터가 업데이트 될 때마다 업데이트 아이콘을 클릭해야합니다.

여기에 이미지 설명을 입력하십시오

이것이 당신을위한 일이기를 바랍니다! 감사합니다 !


0

이것은 당신이 찾고있는 대답이 아닐 수도 있지만 전화로 DB를 다운로드하는 더 좋은 방법은 없습니다. 내가 제안 할 것은이 미니 DDMS를 사용하고 있는지 확인하는 것입니다. 프로그램의 맨 왼쪽 하단에있는 아주 작은 camoflage 상자를 클릭하지 않으면 매우 숨겨집니다. (이 위에 마우스를 올려 놓으려고하면 놓칠 수 있습니다.)

또한 필터가 없다고 표시된 드롭 다운 (오른쪽 상단). 말 그대로 PPID, 이름 등으로 다양한 프로세스 / 앱을 모니터링 할 수있는 다양한 방법이 있습니다. 나는 항상 이것을 전화를 모니터하기 위해 사용했지만 데이터베이스가 평범하지 않은 것을하지 않는 120 % 긍정적이어야하는 개발 작업 유형을하고 있지 않다는 것을 명심하십시오.

그것이 도움이되기를 바랍니다.

여기에 이미지 설명을 입력하십시오


0

이 프로세스의 유닉스 커맨드 라인 자동화를 구성하고 코드를 여기에 넣었습니다.

https://github.com/elliptic1/Android-Sqlite3-Monitor

패키지 이름과 데이터베이스 이름을 매개 변수로 사용하고 연결된 Android 장치에서 데이터베이스 파일을 다운로드 한 다음 다운로드 한 파일에 대해 사용자 지정 스크립트를 실행하는 셸 스크립트입니다. 그런 다음 'watch'와 같은 유닉스 도구를 사용하면 데이터베이스 스크립트 출력을 주기적으로 업데이트하여 터미널 창을 열 수 있습니다.


0

Windows 7을 사용하고 있습니다. 내 장치는 에뮬레이트 된 Android 장치 API 23입니다. 루팅되고 API가 23 이상이 아닌 한 실제 장치와 동일하다고 가정합니다.

도구-> Android-> Android 장치 모니터로 이동하십시오. 파일 탐색기로 이동하십시오. 제 경우에는 data / data // app_webview / databases / file_0 / 1에 있습니다.

"1"이라는 파일 끝에 .db를 수동으로 추가해야합니다.


0

다른 답변과 플러스의 조합

  1. SQLite 용 DB 브라우저 설치
  2. "/data/data/com.whatever.myapp/databases/MyBase.db"와 같은 MyBase.db 용 장치 파일 탐색기에서 정확한 위치를 가져옵니다.
  3. 프로젝트 창을 Android에서 Project로 설정하면 파일 (build.gradle, gradle.properties 등)을 볼 수 있습니다
  4. 프로젝트 창에서 마우스 오른쪽 버튼을 클릭하고 터미널에서 열기를 선택하십시오.
  5. 터미널에서 이제 hardisk에서 응용 프로그램의 루트 디렉터에 있습니다. adb pull /data/data/com.whatever.myapp/databases/MyBase.db
  6. 이제 Android Studio의 프로젝트 창에 "MyBase.db"파일이 있습니다.
  7. Project에서 db 파일을 두 번 클릭하면 DB Browser에서 데이터베이스를 찾아보고 편집 할 수 있습니다.
  8. 데이터베이스가 hardisk에 저장되도록 DB 브라우저에서 변경 사항 작성을 수행 할 준비가되면
  9. adb push MyBase.db /data/data/com.whatever.myapp/databases/MyBase.db 명령으로 터미널에서 편집 한 데이터베이스를 장치로 보내기 만하면됩니다.

0

위의 단계를 따라 Android 장치 탐색기에서 앱의 데이터베이스 폴더를 열면 6 개의 파일이 있습니다. 처음 3 개는 android로, 마지막 3 개는 데이터베이스 이름으로 지정됩니다. 마지막 세 개의 파일로 작업해야하며이 세 파일을 원하는 위치에 저장하십시오. 파일을 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 저장 버튼을 클릭하여 이러한 파일을 저장할 수 있습니다 (내 데이터베이스 이름이 room_database이고 3 개의 파일 이름이 room_database, room_database-shm 및 room_database-wal로 표시됨). :-

1) room_database to room_database.db 2) room_database-shm to room_database.db-shm 3) room_database-wal to room_database.db-wal

이제 모든 SQLite 브라우저에서 첫 번째 파일을 열면 세 파일이 모두 브라우저에 채워집니다.


0

마지막으로 Android Studio는 데이터베이스 관리자 탭에서이 기능을 지원합니다. 보기 / 업데이트 / 쿼리 작업을 쉽게 적용 할 수 있습니다. 현재로서는 안정적인 채널이 아니지만 Android Studio 4.1 Canary 5 이상을 사용해 볼 수 있습니다.

당신은 데이터베이스 관리자의 외모 좋아하는 것을 볼 수 있습니다 여기에

여기에서 적절한 버전을 다운로드 할 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.