Android Studio में Database Inspector एक अंतर्निहित उपकरण है जो मोबाइल एप्लिकेशन की SQLite डेटाबेस को रीयल टाइम में देखने और डिबग करने के लिए है। आधिकारिक Android Developers दस्तावेज़ीकरण (2025) के अनुसार, यह उपकरण सक्रिय डेटाबेस पर SQL क्वेरी निष्पादित करने, तालिका संरचना देखने और एप्लिकेशन को रोके बिना रिकॉर्ड संपादित करने की अनुमति देता है। यह उपकरण Room, SQLiteOpenHelper और किसी भी in-app डेटाबेस का समर्थन करता है, प्रोफाइलिंग शुरू होने पर उन्हें स्वचालित रूप से खोज लेता है।
मुख्य बिंदु
Database Inspector Android Studio का एक उपकरण है जो मोबाइल एप्लिकेशन में स्थानीय डेटाबेस का निरीक्षण और डिबग करने के लिए है। यह एप्लिकेशन द्वारा बनाए गए सभी SQLite डेटाबेस देखने की अनुमति देता है, जिसमें Room डेटाबेस, SQLiteOpenHelper और तृतीय-पक्ष लाइब्रेरी शामिल हैं। यह उपकरण Android Studio 4.1 से उपलब्ध है और इसे Android Profiler के माध्यम से या सीधे View मेनू से लॉन्च किया जा सकता है।
Database Inspector का मुख्य उद्देश्य विकास के दौरान डेटा विज़ुअलाइज़ेशन है। डेटाबेस सामग्री को लॉग में आउटपुट करने या डेटा देखने के लिए अलग स्क्रीन लिखने के बजाय, डेवलपर Database Inspector खोल सकता है और तुरंत सभी तालिकाओं, उनकी योजना और सामग्री देख सकता है। उपकरण रिलेशनल SQLite डेटाबेस और Auto-माइग्रेशन के साथ Room दोनों का समर्थन करता है।
यह उपकरण उन परिदृश्यों में अपरिहार्य है जब आपको ऑपरेशन करने के बाद डेटा भंडारण की शुद्धता सत्यापित करने की आवश्यकता होती है: उपयोगकर्ता पंजीकरण, सर्वर सिंक्रोनाइज़ेशन, सूची कैशिंग। टेस्ट UI लिखने के बजाय, डेटाबेस डंप Database Inspector के माध्यम से देखा जाता है। उपकरण Room माइग्रेशन को डिबग करने के लिए भी सक्रिय रूप से उपयोग किया जाता है — आप प्रत्येक योजना अद्यतन के बाद वास्तविक तालिका योजना देख सकते हैं।
Database Inspector Android Profiler Service के माध्यम से Android एप्लिकेशन की प्रक्रिया से जुड़ता है। यह एप्लिकेशन में सभी खुले SQLite कनेक्शनों का पता लगाता है और उन्हें साइड पैनल में प्रदर्शित करता है। API Level 26 (Android 8.0) और उससे ऊपर के साथ एप्लिकेशन की Debug बिल्ड आवश्यक है।
लॉन्च होने पर, Database Inspector डिवाइस पर एप्लिकेशन और कंप्यूटर पर IDE के बीच एक ADB टनल बनाता है। सामग्री प्रदर्शित करने के लिए SQLite WAL (Write-Ahead Logging) डेटाबेस फ़ाइलें इस टनल के माध्यम से स्ट्रीम की जाती हैं। SQL कमांड Room और SQLiteDatabase में Database Inspector के समर्थन के माध्यम से सीधे एप्लिकेशन के SQLite Engine को भेजे जाते हैं। उपकरण स्वचालित रूप से पता लगाता है कि एप्लिकेशन कब डेटाबेस खोलता है और इसे निरीक्षित सूची में जोड़ता है।
Database Inspector के सही ढंग से काम करने के लिए, आपको चाहिए: Android Studio 4.1+, API Level 26+ वाला एक डिवाइस या एमुलेटर, और एप्लिकेशन की Debug बिल्ड। Room के लिए, अतिरिक्त रूप से room-runtime लाइब्रेरी संस्करण 2.2+ आवश्यक है। यदि डेटाबेस WAL मोड के साथ बनाया गया है, जो Room 2.2+ के लिए मानक है, तो उपकरण मुख्य एप्लिकेशन को ब्लॉक किए बिना डेटा पढ़ सकता है।
// Database Inspector द्वारा समर्थित Room डेटाबेस का उदाहरण
@Database(
entities = [User::class, Order::class],
version = 2,
autoMigrations = [AutoMigration(from = 1, to = 2)]
)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
abstract fun orderDao(): OrderDao
}
Database Inspector स्थानीय डेटा के साथ काम करने के लिए कार्यों का पूरा सेट प्रदान करता है: तालिका योजना देखने से लेकर जटिल SQL क्वेरी निष्पादित करने और रिकॉर्ड संपादित करने तक।
बाएं पैनल में सभी डेटाबेस और तालिकाएं प्रदर्शित होती हैं। जब कोई तालिका चुनी जाती है, तो उसकी सामग्री कॉलम वाली तालिका में दिखाई जाती है: सभी रिकॉर्ड फ़ील्ड कॉलम के रूप में दिखाए जाते हैं, प्रत्येक पंक्ति एक अलग रिकॉर्ड है। तालिका योजना (नाम, प्रकार, बाधाएं) शीर्ष पर प्रदर्शित होती है। विदेशी कुंजियों के लिए, तालिकाओं के बीच संबंध दिखाए जाते हैं।
| डेटा प्रकार | SQLite प्रकार | Room प्रकार | उदाहरण |
|---|---|---|---|
| पूर्णांक | INTEGER | Int, Long | 42 |
| स्ट्रिंग | TEXT | String | "John" |
| दशमलव संख्या | REAL | Double, Float | 3.14 |
| बाइनरी डेटा | BLOB | ByteArray | [0x00, 0x01] |
| दिनांक/समय | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Query टैब आपको चयनित डेटाबेस के विरुद्ध सीधे मनमानी SQL कमांड निष्पादित करने की अनुमति देता है। SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN और कोई भी अन्य SQLite ऑपरेटर समर्थित हैं। परिणाम क्वेरी संपादक के नीचे सारणीबद्ध प्रारूप में प्रदर्शित होते हैं। क्वेरी इतिहास सत्र के दौरान संरक्षित रहता है।
तालिका सेल को सीधे संपादित किया जा सकता है — बस एक मान पर क्लिक करें और नया मान दर्ज करें। परिवर्तन तुरंत चल रहे एप्लिकेशन पर लागू होते हैं। यह सीमा मामलों के परीक्षण के लिए विशेष रूप से उपयोगी है: आवश्यक फ़ील्ड में null सेट करना, ID को गैर-मौजूद से बदलना, लंबी स्ट्रिंग की हैंडलिंग की जाँच करना। सभी परिवर्तन रीयल टाइम में किए जाते हैं।
Database Inspector का Room के साथ गहरा एकीकरण है, जो इस लाइब्रेरी के साथ एप्लिकेशन विकसित करते समय इसे अपरिहार्य बनाता है। मानक कार्यक्षमता के अलावा, निरीक्षक Room-विशिष्ट क्षमताएं प्रदान करता है।
Room डेटाबेस के लिए, Database Inspector प्रत्येक DAO विधि के लिए जनरेटेड SQL क्वेरी दिखाता है। यह सत्यापित करने की अनुमति देता है कि Room सही SQL जनरेट करता है, विशेष रूप से JOIN, @Relation और @Transaction के साथ जटिल क्वेरी के लिए। यदि Room एक अकुशल क्वेरी निष्पादित करता है (जैसे, एक JOIN के बजाय N+1 क्वेरी), तो यह Database Inspector क्वेरी लॉग में तुरंत दिखाई देता है।
AutoMigration या मैन्युअल माइग्रेशन के साथ Room योजना को अद्यतन करते समय, Database Inspector माइग्रेशन के बाद वास्तविक तालिका संरचना दिखाता है। एप्लिकेशन लॉन्च करने के बाद बस निरीक्षक खोलें और जाँचें कि सभी कॉलम, इंडेक्स और विदेशी कुंजियाँ सही ढंग से बनाई गई हैं। यदि माइग्रेशन त्रुटि के साथ विफल हुआ, तो डेटाबेस नहीं खुलेगा — उपकरण अंतिम उपलब्ध संस्करण दिखाएगा।
Room @Relation और @Embedded के माध्यम से कई तालिकाओं से डेटा संयोजित करने की अनुमति देता है। Database Inspector संबंधित तालिका डेटा को एक साथ प्रदर्शित करके संबंधों की शुद्धता को दृश्य रूप से सत्यापित करने में मदद करता है। प्रत्येक विदेशी कुंजी के लिए, आप एक क्लिक से संबंधित तालिका पर जा सकते हैं।
// Database Inspector के माध्यम से जाँच के लिए Relation के साथ Entity
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String
)
data class UserWithOrders(
@Embedded val user: User,
@Relation(parentColumn = "id", entityColumn = "user_id")
val orders: List<Order>
)
Database Inspector विशिष्ट विकास कार्यों को हल करता है जो स्थानीय डेटा भंडारण के साथ काम करते समय उत्पन्न होते हैं। दैनिक कार्य में उपकरण के सबसे सामान्य उपयोग के मामलों को देखें।
अक्सर, एप्लिकेशन API प्रतिक्रियाओं को स्थानीय डेटाबेस में कैश करता है। Database Inspector आपको कैशिंग की शुद्धता सत्यापित करने की अनुमति देता है: सिंक्रोनाइज़ेशन के बाद, आप कैश तालिका में वास्तविक रिकॉर्ड देख सकते हैं। यदि डेटा प्रकट नहीं होता — समस्या सेव कोड में है। यदि डुप्लिकेट दिखाई देते हैं — समस्या upsert तर्क में है।
जब कोई DAO विधि डेटा सहेजती नहीं है लेकिन अपवाद नहीं फेंकती है, तो Database Inspector तालिका की वास्तविक स्थिति दिखाता है। सामान्य कारण: Primary Key विरोध (OnConflictStrategy सेटिंग), कॉलम में गलत डेटा प्रकार, NOT NULL बाधा उल्लंघन, या Foreign Key उल्लंघन। निरीक्षक आपको ऑपरेशन से पहले और बाद में डेटाबेस परिवर्तन सेट देखने की अनुमति देता है। DAO कॉल से पहले और बाद में डेटा स्नैपशॉट की तुलना करना लेन-देन संबंधी त्रुटियों को डिबग करने और जटिल लेखन संचालन के दौरान एप्लिकेशन व्यावसायिक तर्क की शुद्धता सत्यापित करने के सबसे प्रभावी तरीकों में से एक है।
तालिका योजना बदलते समय — कॉलम जोड़ना, फ़ील्ड का नाम बदलना, तालिकाओं को विभाजित करना — Database Inspector माइग्रेशन परिणाम सत्यापित करने में मदद करता है। बस नए डेटाबेस संस्करण के साथ एप्लिकेशन लॉन्च करें और सत्यापित करें कि सभी डेटा नई संरचना में सही ढंग से स्थानांतरित हो गया है। यदि माइग्रेशन के बाद डेटा गायब है, तो आप इसे पुनर्गठन से पहले सहेजे गए डंप से पुनर्स्थापित कर सकते हैं। यह परिदृश्य SQLiteOpenHelper से Room पर माइग्रेट करते समय या एप्लिकेशन के नए संस्करण में मौजूदा तालिकाओं की संरचना बदलते समय विशेष रूप से प्रासंगिक है।
Database Inspector का उपयोग SQL क्वेरी प्रदर्शन का मूल्यांकन करने के लिए भी किया जा सकता है। Query टैब के माध्यम से SELECT निष्पादित करके और प्रतिक्रिया समय मापकर, आप उन क्वेरी की पहचान कर सकते हैं जिनमें इंडेक्स की कमी है। Room स्वचालित रूप से Logcat में SLOW SQL टैग के साथ धीमी क्वेरी लॉग करता है, और Database Inspector आपको निष्पादन योजना विश्लेषण के लिए तुरंत EXPLAIN QUERY PLAN निष्पादित करने की अनुमति देता है।
अक्सर पूछे जाने वाले प्रश्न
सुनिश्चित करें कि एप्लिकेशन Debug मोड में चल रहा है और डिवाइस का API Level 26 या उच्चतर है। यदि डेटाबेस किसी अलग प्रक्रिया में या SQLCipher (एन्क्रिप्शन) का उपयोग करके बनाया गया है, तो Database Inspector इसका पता नहीं लगा सकता। SQLCipher के लिए, बिना एन्क्रिप्शन के एक सहायक डिबग डेटाबेस का उपयोग करें।
हाँ, डेटा संपादन सीधे तालिका कोशिकाओं में संभव है। किसी मान पर डबल-क्लिक करने से इसे बदला जा सकता है। परिवर्तन तुरंत चल रहे एप्लिकेशन के डेटाबेस पर लागू होते हैं। नए रिकॉर्ड जोड़ने के लिए, Query टैब के माध्यम से INSERT SQL क्वेरी का उपयोग करें।
नहीं, Database Inspector Realm का समर्थन नहीं करता क्योंकि Realm SQLite का उपयोग नहीं करता। Realm को डिबग करने के लिए, Realm Object Server, Realm Studio या इन-ऐप लॉगिंग का उपयोग करें। MongoDB Realm SDK के लिए, Realm Studio उपकरण macOS, Windows और Linux के लिए उपलब्ध है।
Database Inspector आपको पूरे डेटाबेस को निर्यात करने की अनुमति देता है। सूची में डेटाबेस नाम पर राइट-क्लिक करें और Export Database चुनें। .db फ़ाइल आपके कंप्यूटर पर सहेजी जाएगी। इसे देखने के लिए, किसी भी SQLite ब्राउज़र का उपयोग करें, जैसे DB Browser for SQLite।
Google के अनुसार, ओवरहेड न्यूनतम है — Database Inspector लेखन को अवरुद्ध किए बिना WAL डेटाबेस फ़ाइलों को पढ़ता है। कस्टम SQL क्वेरी निष्पादित करना अस्थायी रूप से डेटाबेस को लोड कर सकता है, लेकिन यह डेवलपर द्वारा नियंत्रित होता है। प्रोडक्शन बिल्ड के लिए उपकरण स्वचालित रूप से अक्षम हो जाता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें