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 ڈیٹا بیس اور آٹو مائیگریشن کے ساتھ 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 یا in-app لاگنگ استعمال کریں۔ 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں