ดูเนื้อหาของฐานข้อมูลที่สร้างด้วย Room Persistence Library


98

มีวิธีที่ง่ายกว่าในการดูเนื้อหาของฐานข้อมูลที่สร้างด้วย Room Persistence Library ใน Android Studio หรือไม่


6
easier wayเทียบกับทางไหน?
Vladyslav Matviienko

1
เมื่อเทียบกับวิธีการเก่า ๆ เช่นการใช้ DDMS หรือผ่าน adb shell DDMS ทำให้คอมพิวเตอร์ของฉันค้างและการใช้ adb ต้องทำงานมาก ฉันคิดว่าต้องมีวิธีที่ง่ายกว่านี้เนื่องจาก Google เพิ่งเปิดตัว
SpiralDev

12
ไม่ได้อยู่ในสตูดิโอ Android แต่github.com/facebook/stethoนี้เป็นสะพานดีบัก Android ที่ดีที่สุดที่พัฒนาโดย facebook ซึ่งคุณสามารถดูฐานข้อมูลแอปของคุณแม้กระทั่งการแชร์ค่ากำหนด ฯลฯ
Moinkhan

คำตอบ:


47

วิธีที่ 1

คุณสามารถใช้Android-Debug-Databaseและคุณสามารถ CRUD ของข้อมูลของคุณจากเบราว์เซอร์จากนั้นคุณจะสามารถดูข้อมูลการตั้งค่าของคุณได้จากเบราว์เซอร์

วิธีที่ 2

หากคุณไม่ต้องการใช้งานจากเบราว์เซอร์และคุณต้องตรวจสอบไฟล์อื่น ๆ จำเป็นต้องตรวจสอบการเปลี่ยนแปลงข้อมูลของคุณใช้ Genymotion Emulator ดังนั้นคุณต้องรูทโปรแกรมจำลองของคุณลองรูทโปรแกรมจำลองของคุณดูในhttps: / /stackoverflow.com/a/44039429/2772552 แจ้งให้เราทราบหากคุณไม่พอใจ


สามารถดูไฟล์ฐานข้อมูล แต่ไม่สามารถดูตารางที่สร้างในฐานข้อมูลได้ ฉันลองทั้งสองวิธีแล้ว
Ravikiran

9
ในที่สุดฉันก็พบวิธีแก้ปัญหาหลังจากทำงานมาทั้งวัน ส่งออกไฟล์ "userdatabase", "userdatabase-shm" และ "userdatabase-wal" จากโปรแกรมจำลองและเปิดไฟล์ "userdatabase" ในโปรแกรมดู sqlite
Ravikiran

ถ้า. db อยู่ใน dir ภายในคุณจะไม่ได้รับอนุญาตให้ดูที่นั่นคัดลอกไฟล์. db ไปยัง dir ที่จัดเก็บข้อมูลภายนอกด้วยตนเองและจะใช้งานได้สำหรับคุณ
Htoo Aung Hlaing

ฉันมีปัญหากับวิธีที่ 1 ซึ่งทำให้เกิดปัญหาในการอ่าน / เขียนกับงาน async อื่น ๆ ทำให้แอปค้าง
Jeffrey

90

ใน Android Studio เวอร์ชันเก่า:

Emulator -> Android Studio -> Device File Explorer -> /data/data/{$packageId}/databases/ -> Save As -> https://sqlitebrowser.org/

ใน Android Studio เวอร์ชันใหม่กว่า (3.5+):

View -> Tool Windows -> Device File Explorer -> /data/data/{$packageId}/databases/ -> Save As -> https://sqlitebrowser.org/

1
ไม่อนุญาตให้ดำเนินการ
โจนาธา

2
@jonney วิธีนี้จะใช้ได้กับอุปกรณ์หรือโปรแกรมจำลองที่รูทเท่านั้น
Hitesh Bisht

1
สิ่งนี้ควรใช้ได้กับโทรศัพท์ที่ไม่ได้รูทที่ติดตั้งแอพดีบั๊กยกเว้นอุปกรณ์ Samsung
Gaket

1
นี่ควรเป็นคำตอบที่ยอมรับได้ - วิธีที่ง่ายที่สุดในการรับ DB โดยไม่ต้องดาวน์โหลดซอฟต์แวร์หรือรูทอุปกรณ์
Beyondtheteal

1
@ JakubJabłońskiเปิดตัวแอปของคุณบนโปรแกรมจำลองกว่าเปิด Device File Explorer ใน Android Studio
kreker

66

ใน android studio 3.1. *

ในแถบหน้าต่างเครื่องมือคลิกที่ " Device File explorer" โดยทั่วไปคุณจะพบสิ่งนี้ที่มุมล่างขวาของหน้าจอ

เปิดไดเร็กทอรีใน data/data/your-application-package/databases

ด้วยสถาปัตยกรรมใหม่ 3 ไฟล์ถูกสร้างขึ้นในไดเร็กทอรีฐานข้อมูล

your-database-name
your-database-name-shm
your-database-name-wal

คุณต้องส่งออกทั้ง 3 รายการในไดเรกทอรีเดียวกัน

จากนั้นเปิดไฟล์แรก (ที่มีชื่อฐานข้อมูลของคุณเท่านั้น) ในเบราว์เซอร์ sqlite ใด ๆ

และตอนนี้คุณสามารถดูข้อมูลทั้งหมดของคุณ .......

your-database-name-shm
your-database-name-wal

จำเป็นต้องใช้ไฟล์พิเศษสองไฟล์นี้เพื่อเปิดไฟล์ db หากคุณจะเปิดไฟล์ฐานข้อมูลเท่านั้นซึ่งคุณจะไม่พบตารางใด ๆ ในไฟล์นั้น


ฉันจะทราบได้อย่างไรว่าพา ธ "/ data / data / ... " อยู่ที่ใดในระบบไฟล์ของฉัน
Awais Hussain

ผู้เขียนคำตอบนี้แสดงให้เห็นว่า `` Device File Explorer '' อยู่ที่ไหนซึ่งช่วยประหยัดเวลาสำหรับมือใหม่ เพราะฉะนั้น +1
Ilonpilaaja

@AwaisHussain: usecontext.getDatabasePath("your-db-name.db")
gMale

กด shift สองครั้งเพื่อค้นหาทุกที่และพิมพ์ Device File Explorer หากถูกลบออกจากมุมล่างขวาใน Android Studio ของคุณ
COYG

ขอบคุณที่ตอบฉัน
Amirhf

39

ดาวน์โหลดและติดตั้งDB Browser สำหรับ SQLite

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

เปิด Device File Explorer ผ่าน:

ดู > เครื่องมือ Windows > Device File Explorer

ใน "Device File Explorer" ไปที่:

data > data > PACKAGE_NAME > ฐานข้อมูล

โดยที่ PACKAGE_NAME เป็นชื่อแพ็กเกจของคุณ (คือ com.edgedevstudio.sample ในตัวอย่างด้านล่าง)

Device File Explorer

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

เปิด DB Browser สำหรับ SQLite และคลิก 'เปิดฐานข้อมูล' และเปิดฐานข้อมูล ป้อนคำอธิบายภาพที่นี่

ในกรณีของตัวอย่างข้างต้นคุณควรค้นหา " todolist " NOT "todolist-shm" หรือ "todolist-wal"

หากคุณไม่ส่งออกไฟล์ฐานข้อมูล 3 ไฟล์ (db_name, db_name-shm & db_name-wal โดยที่ db_name = ชื่อของฐานข้อมูล) คุณจะไม่สามารถอ่านฐานข้อมูลได้


นี่คือสิ่งที่ฉันกำลังมองหา .. สิ่งที่ต้องการ! ขอบคุณ @EdgeDev
Kannan_SJD

19

โดยส่วนตัวแล้วฉันใช้Android Debug Database

Android Debug Database เป็นไลบรารีที่มีประสิทธิภาพสำหรับการดีบักฐานข้อมูลและค่ากำหนดที่ใช้ร่วมกันในแอปพลิเคชัน Android

เริ่มต้นอย่างรวดเร็ว

เพิ่มสิ่งนี้ลงใน build.gradle ของแอปของคุณ

debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'

เพียงแค่เริ่มแอปพลิเคชันคุณจะเห็นรายการใน logcat ดังนี้:

D/DebugDB: Open http://192.168.1.104:8080 in your browser

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


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


สำหรับข้อมูลเพิ่มเติมโปรดดูที่ github repo


1
นี่เป็นวิธีที่ดีที่สุดเนื่องจากไม่จำเป็นต้องรูทเครื่อง
Sunil

1
ว้าว! ของเด็ด !! ขอบคุณค่า !!
Barakuda

10

15 เมษายน 2020 - สำหรับวิธีง่ายๆให้ทำตามขั้นตอนเหล่านี้:

  1. ดาวน์โหลดโปรแกรม SQLiteBrowser: ดาวน์โหลด SQLite สำหรับทุก OS
  2. คลิก "Device Exploler" ซึ่งอยู่ที่มุมขวาล่างของ Android Studio
  3. คุณจะเห็นไฟล์จำนวนมาก ไม่ต้องกังวล! ตามเส้นทาง: data / data / {your app package name}
  4. คลิกขวาที่ "ฐานข้อมูล" และบันทึกเป็นในคอมพิวเตอร์ของคุณ
  5. เปิด SQLiteBrowser และคลิก "เปิดฐานข้อมูล" กว่าเลือกไฟล์ที่มีชื่อเดียวกันกับชื่อฐานข้อมูลของคุณ
  6. คุณสามารถดูไฟล์และเลือกไฟล์ที่มีชื่อเดียวกันกับชื่อตารางฐานข้อมูลของคุณ
  7. ขั้นตอนสุดท้ายคุณจะเห็นตัวเลือก "เรียกดูข้อมูล" ใกล้ตัวเลือกโครงสร้างฐานข้อมูลเมื่อคุณเลือกคุณจะเห็นข้อมูลของฐานข้อมูลของคุณ

คุณสามารถดูขั้นตอนและทำตามตัวเลขในภาพด้านล่าง

คุณสามารถดูขั้นตอนในภาพ

@canerkaseler


7

ใช้Stetho

เพิ่มลงในโครงการ Android ของคุณเป็นไฟล์dependency.

โทรStetho.initializeWithDefaults(this)เข้าApplicationและดูฐานข้อมูลของคุณโดยใช้เครื่องมือตรวจสอบ Chrome ใส่ต่อไปนี้ในแถบ URL chrome://inspectโครเมี่ยมของคุณ:

โอมเพี้ยง! คุณสามารถดูRoom databaseไฟล์.


3

ฉันทำสิ่งนี้โดยทำตามขั้นตอน:

1) ดาวน์โหลดเบราว์เซอร์ db จากลิงค์ต่อไปนี้

https://sqlitebrowser.org/

2) ไปที่ Device File Explorer จาก IDE และคัดลอกไฟล์สามไฟล์ที่สร้างขึ้นเช่นป้อนคำอธิบายภาพที่นี่และเลือกทั้งสามไฟล์: your-db, your-db-shm, your-db-wal

กด ctrl + shift + s แล้ววางลงในโฟลเดอร์ เสร็จแล้ว

3) ในที่สุดก็เปิด db ของคุณด้วย DbBrowser App


ขอบคุณต้องเลือกทั้งสามไฟล์: * -db, * -db-shm, * -db-wal
xyz

2

ด้วยการเปิดตัวล่าสุดของAndroid สตูดิโอ 4.1 เกาะคานารี่ , Android สตูดิโอให้เครื่องมือใหม่ที่เรียกว่าสารวัตรฐานข้อมูล

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

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

หากคุณใช้งานRoom Persistenceจะมีสิ่งอำนวยความสะดวกในการเรียกใช้@Queryใน Android Studio คุณจะเห็นปุ่มวิ่งที่ด้านซ้ายของ@Queryคำอธิบายประกอบ

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

หากคุณใช้อยู่LiveDataมันจะแสดงถึงการเปลี่ยนแปลงเนื้อหาฐานข้อมูล

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


1
You can see your database table on the DB Browser for SQLite & room DB.

 In android studio 
1. Click on View -> Tool Windows -> Device File Explorer -> data
2. Select your project package name -> database -> select all file and save on desktop

Install **DB browser for SQLITE** 
1. sudo apt-get install sqlitebrowser //write on your terminal for install DB browser
2. install DB browser for sqlite
3. click on Open database and select file where you had saved your data
4. click on Brower Data and see your tables

This is all where i have see my android room database

1

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

https://developer.android.com/studio/preview/features#database-inspector


นี่น่าจะเป็นคำตอบอย่างเป็นทางการ
Amit Sharma

0

ฉันเพิ่งพยายามSethto โดย Facebook

Stetho เป็นสะพานแก้จุดบกพร่องที่ซับซ้อนสำหรับแอปพลิเคชัน Android เมื่อเปิดใช้งานนักพัฒนาจะสามารถเข้าถึงคุณลักษณะเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome ซึ่งเป็นส่วนหนึ่งของเบราว์เซอร์เดสก์ท็อป Chrome

คุณเพียงแค่ต้องรวมการพึ่งพาการไล่ระดับสีและการโทรใน MainApp แค่นั้นแหละ. คุณสามารถเข้าถึงเครื่องมือทั้งหมดในหน้าต่าง Chrome ได้โดยใช้chrome://inspect/รวมฐานข้อมูล sqlite ของคุณ

ต่อไปนี้เป็นภาพหน้าจอที่ตรวจสอบโดยRoom Databaseบน Emulator จนถึงตอนนี้ฉันลองใช้โปรแกรมจำลองเท่านั้น

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


0

หลังจากได้รับ DB (3 ไฟล์) จาก Device File Explorar ตามความคิดเห็นที่กล่าวไว้ข้างต้น

ฉันแนะนำโปรแกรมง่าย ๆ เช่นการใช้ "DB Browser สำหรับ SQLite" https://sqlitebrowser.org/

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