ดูเนื้อหาของไฟล์ฐานข้อมูลใน Android Studio


251

ฉันใช้Android Studioเพื่อพัฒนาแอพตั้งแต่เปิดตัว

ทุกอย่างใช้งานได้ดีจนกระทั่งเมื่อเร็ว ๆ นี้ฉันต้องตรวจแก้จุดบกพร่องพร้อมตรวจสอบไฟล์ฐานข้อมูล เนื่องจากฉันไม่รู้วิธีดูฐานข้อมูลโดยตรงเมื่อฉันดีบั๊กเพื่อสร้างไฟล์ฐานข้อมูลฉันต้องส่งออกไฟล์ฐานข้อมูลจากโทรศัพท์ไปยังพีซี

DDMS > File Explorerเพื่อที่จะทำนี้ผมต้องเปิด เมื่อฉันเปิด DDMS ฉันต้องเชื่อมต่อ USB อีกครั้งและฉันจะเสียเธรดการดีบัก หลังจากตรวจสอบไฟล์ฐานข้อมูลแล้วฉันต้องปิด DDMS และเชื่อมต่อ USB อีกครั้งเพื่อกลับไปที่โหมดแก้ไขข้อบกพร่อง

มันซับซ้อนเกินไป ใครบ้างมีวิธีที่ดีกว่าในการทำเช่นนี้ใน Android Studio (ฉันรู้ว่าง่ายกว่าใน Eclipse)?


คำตอบ:


302

การดูฐานข้อมูลจาก Android Studio:

แก้ไข:หากต้องการดูฐานข้อมูลของคุณบน Emulator ให้ทำตามขั้นตอนเหล่านี้ (สำหรับอุปกรณ์จริงเลื่อนไปที่ด้านล่าง):

  1. ดาวน์โหลดและติดตั้งSQLiteBrowser

  2. คัดลอกฐานข้อมูลจากอุปกรณ์ไปยังพีซีของคุณ:

    • Android Studio เวอร์ชัน <3.0 :

      • เปิดDDMSผ่านTools > Android > Android Device Monitor

      • คลิกที่อุปกรณ์ของคุณทางด้านซ้าย
        คุณควรเห็นใบสมัครของคุณ: ป้อนคำอธิบายรูปภาพที่นี่

      • ไปที่File Explorer (หนึ่งในแท็บด้านขวา) ไปที่/data/data/databases ป้อนคำอธิบายรูปภาพที่นี่

      • เลือกฐานข้อมูลโดยคลิกที่มัน

      • ไปที่มุมบนขวาของหน้าต่าง Android Device Monitor คลิกที่ปุ่ม ' ดึงไฟล์จากอุปกรณ์ ': ป้อนคำอธิบายรูปภาพที่นี่

      • หน้าต่างจะเปิดขึ้นเพื่อสอบถามตำแหน่งที่คุณต้องการบันทึกไฟล์ฐานข้อมูล บันทึกได้ทุกที่ที่คุณต้องการบนพีซีของคุณ

    • เวอร์ชัน Android Studio> = 3.0 :

      • เปิดDevice File Explorerผ่านView > Tool Windows > Device File Explorer

      • ไปที่data > data > PACKAGE_NAME > databaseโดยที่ PACKAGE_NAME เป็นชื่อแพคเกจของคุณ (ซึ่งเป็นcom.Movieในตัวอย่างด้านบน)

      • Save As...คลิกขวาบนฐานข้อมูลและเลือก บันทึกได้ทุกที่ที่คุณต้องการบนพีซีของคุณ

  3. ตอนนี้เปิดSQLiteBrowser ที่คุณติดตั้ง คลิกที่ ' เปิดฐานข้อมูล ' นำทางไปยังสถานที่ที่คุณบันทึกไฟล์ฐานข้อมูลและเปิด ตอนนี้คุณสามารถดูเนื้อหาของฐานข้อมูลของคุณ


วิธีดูฐานข้อมูลของคุณบนอุปกรณ์มือถือ:

ไปที่ที่เก็บ Github นี้และทำตามคำแนะนำใน readme เพื่อให้สามารถดูฐานข้อมูลของคุณบนอุปกรณ์ของคุณ สิ่งที่คุณจะได้รับคือ:

ป้อนคำอธิบายรูปภาพที่นี่

แค่นั้นแหละ. คุณไม่ควรทำตามขั้นตอนเหล่านี้ทั้งหมดก่อนที่จะเผยแพร่แอปของคุณ


2
นั่นเป็นคำตอบที่ถูกต้องสำหรับฉันเพราะคำแนะนำด้วยเครื่องมือ sqlitebrowser มันยอดเยี่ยมมาก ขอบคุณ
Manu Zi

26
/ data ไม่ขยายตัวใน File explorer ของ Device Monitor ฉันเดาว่ามันไม่สามารถเข้าถึงได้เนื่องจากการแสดงรายการของ / data หรือ / data / data directory ต้องมีการเข้าถึง superUser ฉันยังสามารถเข้าถึงไฟล์ฐานข้อมูลผ่าน adb shell ด้วยสิทธิ์ su มีความคิดวิธีการเข้าถึง su ในโปรแกรมจัดการไฟล์หรือไม่?
Saravanabalagi Ramachandran

2
@ ZekeDran ใช่วิธีแสดงข้อมูลจากโปรแกรมจำลองที่ไม่ใช่อุปกรณ์ของคุณเท่านั้นฉันได้เพิ่มขั้นตอนในการดูฐานข้อมูลบนอุปกรณ์ของคุณตรวจสอบการแก้ไข
Ojonugwa Jude Ochalifu

11
ใช้งานได้ แต่อีมูเลเตอร์จะต้องทำงานไม่เกิน API 23 หากคุณใช้ API 25 แสดงว่าไม่มีเนื้อหาในไฟล์ explorer
Manos

2
ผู้จัดการฐานข้อมูลจากลิงค์ Github ของคุณใช้งานได้สำหรับฉัน! นอกจากนี้ยังมีโอกาสทดสอบข้อความค้นหา!
basti12354

199

เชื่อมต่อกับ Sqlite3 ผ่าน ADB Shell

ฉันไม่พบวิธีที่จะทำเช่นนั้นใน Android Studio แต่ฉันเข้าถึง db ด้วยเชลล์ระยะไกลแทนที่จะดึงไฟล์ในแต่ละครั้ง

ค้นหาข้อมูลทั้งหมดได้ที่นี่: http://developer.android.com/tools/help/adb.html#sqlite

1- ไปที่โฟลเดอร์เครื่องมือแพลตฟอร์มของคุณในพร้อมท์คำสั่ง

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/

5- run 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
คุณอาจจะต้องขุดรากถอนโคน AVD ของคุณและ / หรือเริ่ม adb เป็นรากที่ขั้นตอนที่ 3 'adb รากเปลือก -s จำลอง-xxxx'
Distwo

2
ขั้นตอนที่ 5: sqlite3 ไม่พบ ทำไม?
sabsab

3
เพราะคุณต้องติดตั้งเพื่อใช้งาน
Paul Paca-Vaca Seleznev

12
ฉันบุคคลได้รับอนุญาตถูกปฏิเสธเมื่อพยายามที่จะเข้าถึงโฟลเดอร์ฐานข้อมูลทำงานrun-as your.package.nameได้หลอกลวง
Yann39 39

83

จริง ๆ แล้วฉันประหลาดใจมากที่ไม่มีใครให้วิธีนี้:

ลองดูที่Stetho

ฉันเคยใช้ Stetho หลายครั้งเพื่อจุดประสงค์ที่แตกต่างกัน (หนึ่งในนั้นคือการตรวจสอบฐานข้อมูล) ในเว็บไซต์จริงพวกเขายังพูดคุยเกี่ยวกับคุณสมบัติสำหรับการตรวจสอบเครือข่ายและดูลำดับชั้นการดู

ต้องการเพียงการตั้งค่าเล็กน้อย: 1 การเพิ่มการพึ่งพา gradle (ซึ่งคุณสามารถคอมเมนต์สำหรับการสร้างงานสร้าง), โค้ดสองสามบรรทัดเพื่อยกตัวอย่าง Stetho และเบราว์เซอร์ Chrome (เพราะใช้ Chrome devtools สำหรับทุกสิ่ง)

อัปเดต : ตอนนี้คุณสามารถใช้ Stetho เพื่อดูไฟล์ Realm (ถ้าคุณใช้ Realm แทนที่จะเป็น SQLite DB): https://github.com/uPhyca/stetho-realm

อัปเดต # 2 : ตอนนี้คุณสามารถใช้ Stetho เพื่อดูเอกสาร Couchbase ได้ที่: https://github.com/RobotPajamas/Stetho-Couchbase

อัปเดต # 3 : Facebook มุ่งเน้นความพยายามในการเพิ่มฟีเจอร์ Stetho ทั้งหมดลงในเครื่องมือใหม่ Flipper Flipper มีคุณสมบัติหลายอย่างที่ Stetho มีอยู่แล้ว ดังนั้นตอนนี้อาจเป็นเวลาที่ดีที่จะทำการเปลี่ยน https://fbflipper.com/docs/stetho.html


9
ขอบคุณมาก. เพื่อให้ง่ายขึ้น 1. compile 'com.facebook.stetho:stetho:1.3.1' และ 2. เพิ่มรหัสนี้Stetho.initializeWithDefaults(this);และ 3chrome://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 pull user access

$ 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
ฉันพบปัญหากับคำสั่งที่ 2: run-as ฉันไม่ได้รับชื่อ 'com.mycompany.myappapp' และใช่ฉันคิดว่าฉันใช้ชื่อแพคเกจที่ถูกต้อง!
Scott Biggs

1
@PhuLai คุณลองใช้อุปกรณ์อื่นแล้วหรือยัง? อุปกรณ์ใดล้มเหลว
เสียชีวิตเมื่อ

1
ฉันลองด้วย Nexus 6P, API 25 ฉันคิดว่าวิธีนี้จะใช้ไม่ได้กับ Android เวอร์ชันใหม่
foo

chmod 660 databases/database_nameควรเป็นก่อนchmod 660 databases
Alaa M.

@PhuLai - ฉันได้รับสิ่งนี้ด้วยและจากนั้นฉันพยายามข้ามcpคำสั่งและเพิ่งทำpullจากภายนอก (หลังจากเปลี่ยนสิทธิ์) และใช้งานได้ ( adb pull data/data/package.name/databases/db_name.db)
Alaa M.

52

ในAndroid Studio 3ขึ้นไปคุณสามารถดูหัวข้อ"Device File Explorer" ที่ด้านล่างขวาของ Android Studio

เปิดจากนั้นคุณจะเห็นโครงสร้างไฟล์คุณสามารถค้นหาฐานข้อมูลแอปพลิเคชันในเส้นทางนี้:

/data/data/{package_name}/databases/

ป้อนคำอธิบายรูปภาพที่นี่


2
เมื่อฉันดับเบิลคลิกที่ไฟล์ DB สำหรับแอพของฉันมันจะแสดงตัวอักษรที่อ่านไม่ได้ทั้งหมด คุณใช้โปรแกรมอ่าน SQLite อะไรเพื่อดูเนื้อหาของฐานข้อมูล?
Surekha

4
ฉันแนะนำ sqlitebrowser.org ฟรีโอเพนซอร์สและใช้ได้กับทุกแพลตฟอร์ม
Ali Zeynali

3
ไฟล์ database.db ของฉันไม่มีตารางใด ๆ
Binil

โฟลเดอร์ว่างเปล่า run-as: Could not set capabilities: Operation not permittedข้อผิดพลาด: อุปกรณ์ Samsung: stackoverflow.com/questions/37413667/…
O-9

25

ในที่สุดฉันพบโซลูชันที่ง่ายที่สุดซึ่งไม่จำเป็นต้องเปิด DDMS

ที่จริงแล้วคำตอบนั้นขึ้นอยู่กับสิ่งที่ @Distwo พูดถึง แต่ไม่จำเป็นต้องซับซ้อนขนาดนั้น

ก่อนอื่นให้จำเส้นทางของไฟล์ฐานข้อมูลของคุณในอุปกรณ์มันควรจะทำแบบเดียวกัน ตัวอย่างของฉันคือ:/data/data/com.XXX.module/databases/com.XXX.module.database

ขั้นที่สองรันคำสั่งนี้ซึ่งดึงไฟล์ฐานข้อมูลของคุณไปยังพีซีของคุณ

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

สิ่งที่คุณต้องทำคือเพียงแค่คัดลอกและเก็บคำสั่งนี้จากนั้นคุณสามารถใช้มันอีกครั้ง

ประการที่สามถ้าคุณได้รับอนุญาตถูกปฏิเสธหรือบางอย่างเช่นนั้นให้เรียกใช้adb rootก่อนคำสั่งก่อนหน้า


9
การทำงานadb rootไม่ทำงานบนโทรศัพท์ของฉัน adbd cannot run as root in production buildsมันพิมพ์ออกมา หลังจากทำงานadb rootแล้วคำสั่ง pull จะหยุดทำงานและฉันจำเป็นต้องหยุดด้วยตนเอง
LaDude

@Daniela ลองใช้run-as your.package.nameวิธีนี้ "ล็อกอินคุณ" ในฐานะผู้ใช้ที่เป็นของแอพของคุณ
m02ph3u5

ใช้คำสั่งด้านบนเพื่อคัดลอกไฟล์. db ไปยังเดสก์ท็อปของคุณติดตั้งปลั๊กอินเบราว์เซอร์ SQLiteManager ใน Firefox และเริ่มต้นการเรียกดู 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

หลังจากผ่านการแก้ปัญหาทั้งหมดฉันจะแนะนำ

ใช้Stethos
ให้ดูว่ามันง่ายเพียงใด

เพิ่มการพึ่งพาต่อไปนี้ในไฟล์ 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, เปิด Chrome และในแถบที่อยู่ประเภท
chrome: // inspect /

ในแท็บทรัพยากร> เว็บ SQL ตรวจสอบฐานข้อมูลและตารางเล่นกับมันแบบเรียลไทม์ได้อย่างง่ายดาย


ห้องพักเป็นเพียง orm ไม่มีอะไรเปลี่ยนแปลงในแง่ของ sql มันทำงานในลักษณะเดียวกัน
ShankPossible

9

วิธีที่ง่ายที่สุดคือการใช้Android Debug ฐานข้อมูลห้องสมุด(7.3k ดาวบน GitHub)

ปฏิบัติการ Android Debug ฐานข้อมูล

ข้อดี:

  • การใช้งานที่รวดเร็ว
  • ดูฐานข้อมูลทั้งหมดและการตั้งค่าที่ใช้ร่วมกัน
  • แก้ไขลบสร้างค่าฐานข้อมูลโดยตรง
  • เรียกใช้แบบสอบถาม 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

# สำหรับAndroid Studio 4.1 Canary 6ขึ้นไป

คุณสามารถใช้คุณลักษณะ Android สตูดิโอที่ง่ายมากสารวัตรฐานข้อมูล ที่ซึ่งคุณสามารถตรวจสอบสอบถามและแก้ไขฐานข้อมูลแอปของคุณโดยใช้ตัวตรวจสอบฐานข้อมูล ตัวอย่างเช่นคุณสามารถแก้ปัญหา app ทำงานของคุณโดยการปรับเปลี่ยนค่าในฐานข้อมูลของคุณและการทดสอบการเปลี่ยนแปลงเหล่านั้นบนอุปกรณ์ในเวลาจริง โดยไม่ต้องออก Android สตูดิโอ

ในการเริ่มต้นให้ปรับใช้แอปของคุณกับอุปกรณ์ที่ใช้ API ระดับ 26 ขึ้นไปและเลือกดู> เครื่องมือ Windows> ตัวตรวจสอบฐานข้อมูลจากแถบเมนู

# สำหรับAndroid Studio 4.0 ขึ้นไป

ก่อนอื่นให้ติดตั้งปลั๊กอินนาวิเกเตอร์ฐานข้อมูลใน Android Studio

ป้อนคำอธิบายรูปภาพที่นี่

ประการที่สองรีสตาร์ท Android Studio

ประการที่สามบันทึกฐานข้อมูลลงในตำแหน่งเริ่มต้นเช่น: (C: \ Users \ ชื่อผู้ใช้ \ Documents \ AndroidStudio \ DeviceExplorer \ emulator หรืออุปกรณ์ \ data \ data \ data \ package ชื่อฐานข้อมูล)

ป้อนคำอธิบายรูปภาพที่นี่

ประการที่สี่เชื่อมต่อไฟล์dbname_db ที่บันทึกไว้ในDatabase Navigator

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

ให้เส้นทางไฟล์ DB เดียวกันกับที่ใช้ในขั้นตอนที่สาม

ie (C: \ Users \ ชื่อผู้ใช้ \ Documents \ AndroidStudio \ DeviceExplorer \ emulator หรืออุปกรณ์ \ data \ data \ data \ ชื่อแพคเกจ \ database \ package naem \ dbname_db)

สุดท้ายเพียงทดสอบการเชื่อมต่อฐานข้อมูลและเปิดคอนโซลแล้วทำทุกอย่างที่คุณต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ถ้าคุณต้องการรีเฟรช DB เพียงทำซ้ำขั้นตอนที่สองและเพียงแค่บันทึกหรือรีเฟรช

การเข้ารหัสที่มีความสุข !!!!!


3
โซลูชันนี้ต้องการความพยายามอย่างมากสำหรับการทำงานทุกวันของคุณ และในการเปลี่ยนแปลงแต่ละครั้งในฐานข้อมูลคุณจำเป็นต้องโหลดไฟล์ sql อีกครั้ง - ดูซับซ้อนไปหน่อย ฉันชอบที่จะใช้ปลั๊กอินบางตัวที่ให้ความสามารถในการดูฐานข้อมูลบนเซิร์ฟเวอร์ภายใน
МаксимПетлюк

1
ใช่คุณพูดถูกจนกระทั่งไม่มีการอัพเดทข้อมูลแบบเรียลไทม์ใน Database Navigator ฉันหวังว่ามันจะอัปเดตปลั๊กอินในไม่ช้า
Nabin

มันจะเป็นคุณสมบัติที่ยอดเยี่ยม
МаксимПетлюк

ใช่จนถึงตอนนี้อันนี้เป็นวิธีที่ดีที่สุดสำหรับฉันถ้าเราต้องการสืบค้นข้อมูลเพิ่มแก้ไขและลบ
34919

ฉันต้องทำการบันทึกเพื่อรีเฟรชฐานข้อมูลหรือไม่? มีวิธีที่ง่ายกว่าเช่นใน mysql ทั้งหมดที่ฉันต้องการคือกดปุ่มรีเฟรช
ンドリューライアンア

4

หากต้องการทราบว่าคุณจัดทำฐานข้อมูล sqlite ที่สร้างโดยคุณใน android studio คุณต้องทำตามขั้นตอนง่าย ๆ :

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. ดู -> หน้าต่างเครื่องมือ -> Device File Explorer
  2. ไปที่ data / data และค้นหาแพ็คเกจของคุณ
  3. ค้นหาไฟล์ DB ที่คุณต้องการสำรวจและดาวน์โหลด
  4. ฉันแนะนำเครื่องมือออนไลน์นี้: https://sqliteonline.com/ เพื่อสำรวจไฟล์ db

วิธีอื่นคือการใช้ไลบรารี Stetho:

  1. เพิ่มการพึ่งพา Stello ให้กับ build.gradle ของคุณ:

    รวบรวม 'com.facebook.stetho: stetho: 1.5.0'

  2. ใส่บรรทัดต่อไปนี้ลงใน onCreate () ของคลาสแอปพลิเคชันหรือกิจกรรมหลักของคุณ:

    Stetho.initializeWithDefaults (นี้);

  3. เชื่อมต่ออุปกรณ์ของคุณเปิดใช้แอปและเข้าสู่ไซต์ต่อไปนี้บน Chrome:

    chrome: // ตรวจสอบ / # อุปกรณ์

และนั่นคือมัน ตอนนี้คุณสามารถสำรวจตารางของคุณ

หมายเหตุ: ขอแนะนำให้ลบการอ้างอิงก่อนที่จะย้ายไปผลิต


3

หากคุณต้องการเรียกดูฐานข้อมูลของคุณจากภายใน ANDROID STUDIO นี่คือสิ่งที่ฉันกำลังใช้:

ไปที่ไฟล์ / การตั้งค่า / ปลั๊กอินแล้วมองหาสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่

... หลังจากรีสตาร์ท Android Studio แล้วคุณสามารถเลือกไฟล์ฐานข้อมูลที่ดาวน์โหลดมาดังนี้: ป้อนคำอธิบายรูปภาพที่นี่

... คลิกที่ไอคอน "Open SQL Console" และคุณจะได้มุมมองที่ดีของฐานข้อมูลของคุณใน Android Studio: ! [ใส่คำอธิบายภาพที่นี่


2
ดังนั้นฉันต้องคัดลอก db จากโปรแกรมจำลองตลอดเวลา?
Maksim Kniazev

2

ตัวตรวจสอบฐานข้อมูลใหม่ที่นำมาใช้ใน Android 4.1 Canary 5 Preview ซึ่งตอนนี้คุณสามารถตรวจสอบค้นหาแก้ไขและดีบักฐานข้อมูล SQLite ในแอปที่รันอยู่ของคุณโดยตรงจาก IDE - https://developer.android.com/studio/preview/features?linkId = 86173020 # ฐานข้อมูลการตรวจสอบ

รองรับการสืบค้นฐานข้อมูลสดเช่นกัน - https://developer.android.com/studio/preview/features?linkId=86173020#query

ป้อนคำอธิบายรูปภาพที่นี่


1

นี่เป็นคำถามเก่ามากและคำตอบของฉันคล้ายกับคำตอบข้างต้น แต่ทำเร็วขึ้นมาก สคริปต์ด้านล่างสำหรับ Mac แต่ฉันแน่ใจว่ามีคนสามารถแก้ไขได้สำหรับ Windows

1) เปิดตัวแก้ไขสคริปต์บน Mac ของคุณ (คุณสามารถค้นหาตัวแก้ไขสคริปต์ในสปอตไลท์)
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

หวังว่านี่จะช่วยใครซักคน


มันใช้งานได้สำหรับฉัน ยกเว้นคุณต้องเปลี่ยน 'ผู้ใช้' เป็นชื่อผู้ใช้ MacBook ของคุณในไดเรกทอรีเอาท์พุท /Users/User/Desktop/myDbName.db
Kenny Dabiri

1

ฉันรู้ว่าคำถามค่อนข้างเก่า แต่ฉันเชื่อว่าปัญหานี้ยังคงมีอยู่

การดูฐานข้อมูลจากเบราว์เซอร์ของคุณ

ฉันสร้างเครื่องมือพัฒนาที่คุณสามารถรวมเป็น lib ในโครงการแอพ android ของคุณ เครื่องมือนี้เปิดซ็อกเก็ตเซิร์ฟเวอร์ในแอปของคุณเพื่อสื่อสารผ่านเว็บเบราว์เซอร์ คุณสามารถเรียกดูฐานข้อมูลทั้งหมดของคุณและดาวน์โหลดไฟล์ฐานข้อมูลโดยตรงผ่านเบราว์เซอร์

ป้อนคำอธิบายรูปภาพที่นี่

การรวมสามารถทำได้ผ่าน jitpack.io:

โครงการ build.gradle:

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

app 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> 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> 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 หยุดทำงานใน chrome รุ่นใหม่
Homayoun Behzadian

1

ฉันต้องดึงฐานข้อมูลจากโทรศัพท์ไปยังพีซี ตอนนี้ฉันใช้แอพที่ทำมาอย่างดีและฟรีซึ่งมีคุณสมบัติมากมาย ใช้งานได้API 4.1+กับอุปกรณ์Rooted
แจ้งให้เราทราบหากคุณพบวิธีทำให้มันทำงานโดยไม่ต้องรูท

SqlitePrime หน้าจอ

https://play.google.com/store/apps/details?id=com.lastempirestudio.sqliteprime


1

เปิด Terminal Device Explore Terminal ที่ด้านล่างของ Android Studio

เปิดโฟลเดอร์ชื่อข้อมูลแล้วภายในข้อมูลอีกครั้งเปิดโฟลเดอร์ข้อมูล

เปิดข้อมูลโฟลเดอร์

เลื่อนลงรายการโฟลเดอร์และค้นหาโฟลเดอร์ด้วยyour.package.name เปิดโฟลเดอร์your.package.name > ฐานข้อมูล คุณได้รับชื่อ ฐานข้อมูลของคุณ คลิกขวาyour.databaseNameและบันทึกเป็น C: / your / Computer / Directory

ไปที่ C: / your / Computer / Directory เปิดyour.databaseNameด้วยDB SQLite

ป้อนคำอธิบายรูปภาพที่นี่


1

สำหรับ Android Studio 3.X

  1. ดู -> เครื่องมือ Windows -> Device File Explorer
  2. ใน File Explorer data-> data-> com. (แพ็คเกจ yourapplication) -> ฐานข้อมูล
  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จากนั้นเปิดตัวตรวจสอบฐานข้อมูลและเรียกใช้แอพคุณสามารถรันการสืบค้น DAO ในอินเทอร์เฟซของคุณได้โดยคลิกที่ปุ่ม Run ทางด้านซ้ายของ@Queryคำอธิบายประกอบ

แบบสอบถามสด


1

ใช้ android sqlite เช่นฐานข้อมูลฝั่งเซิร์ฟเวอร์

ทำตามขั้นตอนเหล่านี้ด้านล่าง:

  1. ค้นหาหน้าต่างเครื่องมือฐานข้อมูลแล้วคลิกเหมือนภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

  1. คลิกที่ไอคอนเครื่องหมายบวกและเลือกAndroid SQLiteเช่นภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

  1. เชื่อมต่ออุปกรณ์ android ของคุณกับคอมพิวเตอร์ของคุณ

  2. เลือกแพ็คเกจที่คุณสนใจและเลือกฐานข้อมูลเช่นภาพด้านล่าง ป้อนคำอธิบายรูปภาพที่นี่

  3. ก่อนที่จะทำตามขั้นตอนทั้งหมดข้างต้นคุณต้องแน่ใจว่าคุณได้รับอนุญาตที่ถูกต้องในการเข้าถึงไฟล์: /data/data//database/databasefile.db

หลังจากขั้นตอนเหล่านี้คุณจะเห็นเนื้อหาฐานข้อมูลเช่นด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งสำคัญสุดท้ายคือ

คุณต้องคลิกไอคอนอัปเดตทุกครั้งที่มีการอัพเดทข้อมูลฐานข้อมูล

ป้อนคำอธิบายรูปภาพที่นี่

หวังว่านี่จะเป็นผลสำหรับคุณ! ขอบคุณ !


0

นี่อาจไม่ใช่คำตอบที่คุณต้องการ แต่ฉันไม่มีวิธีที่ดีกว่าในการดาวน์โหลด DB จากโทรศัพท์ สิ่งที่ฉันจะแนะนำคือให้แน่ใจว่าคุณกำลังใช้ mini-DDMS นี้ มันจะถูกซ่อนเป็นพิเศษแม้ว่าคุณจะไม่คลิกที่กล่องลายพรางเล็ก ๆ ที่ด้านล่างซ้ายของโปรแกรม (พยายามที่จะโฮเวอร์เหนือมิฉะนั้นคุณอาจพลาด)

นอกจากนี้ยังมีรายการแบบหล่นลงที่ระบุว่าไม่มีตัวกรอง (ด้านบนขวา) แท้จริงแล้วมันมีวิธีที่แตกต่างกันมากมายที่คุณสามารถตรวจสอบกระบวนการ / แอพที่แตกต่างกันโดย PPID ชื่อและอีกมากมาย ฉันเคยใช้สิ่งนี้เพื่อตรวจสอบโทรศัพท์ แต่โปรดจำไว้ว่าฉันไม่ได้ทำประเภทของงาน dev ที่ต้องเป็นบวก 120% ฐานข้อมูลไม่ได้ทำอะไรผิดปกติ

หวังว่ามันจะช่วย

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันได้รวบรวม unix command line อัตโนมัติของกระบวนการนี้และใส่รหัสที่นี่:

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

เป็นเชลล์สคริปต์ที่ใช้ชื่อแพ็กเกจและชื่อฐานข้อมูลเป็นพารามิเตอร์ดาวน์โหลดไฟล์ฐานข้อมูลจากอุปกรณ์ Android ที่เชื่อมต่อและเรียกใช้สคริปต์ที่กำหนดเองกับไฟล์ที่ดาวน์โหลด จากนั้นด้วยเครื่องมือ unix เช่น 'watch' คุณสามารถเปิดหน้าต่างเทอร์มินัลพร้อมมุมมองที่อัปเดตของเอาต์พุตสคริปต์ฐานข้อมูลของคุณเป็นระยะ


0

ฉันใช้ windows 7 อุปกรณ์ของฉันเป็นอุปกรณ์ android android เลียนแบบ API 23 ฉันคิดว่ามันเหมือนกันสำหรับอุปกรณ์จริงใด ๆ ตราบใดที่มันได้รับการรูทและ API ไม่สูงกว่า 23

ไปที่เครื่องมือ -> Android -> การตรวจสอบอุปกรณ์ Android ไปที่ File Explorer ในกรณีของฉันมันอยู่ใน data / data // app_webview / ฐานข้อมูล / file_0 / 1

ฉันต้องเพิ่ม. db ด้วยตนเองที่ท้ายไฟล์ชื่อ "1"


0

มันเป็นการรวมกันจากคำตอบอื่น ๆ ด้วยการบวก

  1. ติดตั้งเบราว์เซอร์ฐานข้อมูลสำหรับ SQLite
  2. รับตำแหน่งที่แน่นอนจาก Device File Explorer สำหรับ MyBase.db บางอย่างเช่น "/data/data/com.whething.myapp/database/MyBase.db"
  3. ตั้งค่าหน้าต่างโครงการจาก Android เป็น Project - เพื่อให้คุณสามารถดูไฟล์ (build.gradle, gradle.properties, ... ฯลฯ )
  4. ในหน้าต่างโครงการคลิกขวาและเลือกเปิดในเทอร์มินัล
  5. ในเทอร์มินัลตอนนี้คุณอยู่ในผู้กำกับหลักของแอปพลิเคชันของคุณจากฮาร์ดดิสเพื่อให้ดำเนินการ: adb pull /data/data/com.whething.myapp/database/MyBase.db
  6. ตอนนี้ในหน้าต่างโครงการของ Android Studio คุณมีไฟล์ "MyBase.db"
  7. ดับเบิ้ลคลิกไฟล์ db ของคุณจาก Project และตอนนี้คุณสามารถเรียกดู / แก้ไขฐานข้อมูลของคุณใน DB Browser
  8. เมื่อคุณพร้อมที่จะทำการเขียนการเปลี่ยนแปลงในเบราว์เซอร์ฐานข้อมูลเพื่อบันทึกฐานข้อมูลลงในฮาร์ดดิสก์
  9. ในเทอร์มินัลด้วยคำสั่ง: adb push MyBase.db /data/data/com.whething.myapp/database/MyBase.db คุณเพิ่งส่งจาก Hardisk ไปยังอุปกรณ์ฐานข้อมูลที่แก้ไข

0

ทำตามขั้นตอนด้านบนเพื่อเปิดโฟลเดอร์ฐานข้อมูลของแอพของคุณใน Android Device explorer และในนั้นคุณสามารถเห็นไฟล์ได้หกไฟล์สามไฟล์แรกมีชื่อเป็น android และไฟล์สามไฟล์สุดท้ายตั้งชื่อเป็นชื่อฐานข้อมูลของคุณ คุณจะต้องทำงานกับสามไฟล์ล่าสุดเท่านั้นให้บันทึกสามไฟล์นี้ในตำแหน่งที่คุณต้องการ คุณสามารถบันทึกไฟล์เหล่านี้ได้ด้วยการคลิกขวาที่ไฟล์และคลิกปุ่มบันทึกเป็น (เช่นฉันมีฐานข้อมูลของฉันชื่อเป็น room_database ดังนั้นไฟล์สามไฟล์ถูกตั้งชื่อเป็น 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

ตอนนี้เปิดไฟล์ที่ 1 ในเบราว์เซอร์ SQLite และไฟล์ทั้งสามจะถูกบรรจุในเบราว์เซอร์


0

ในที่สุด Android Studio รองรับฟังก์ชั่นนี้ด้วยแท็บตัวตรวจสอบฐานข้อมูล คุณสามารถใช้การดำเนินการดู / อัปเดต / แบบสอบถามได้อย่างง่ายดาย ตอนนี้ยังไม่ได้อยู่ในแวดวงมั่นคง แต่คุณสามารถลองกับ Android Studio 4.1 Canary 5 และสูงกว่าได้

คุณสามารถดูว่าตัวตรวจสอบฐานข้อมูลมีลักษณะอย่างไร ที่นี่

และคุณสามารถดาวน์โหลดเวอร์ชั่นที่เหมาะสมได้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.