Ang Database Inspector sa Android Studio — ay isang built-in na tool para sa pagtingin at pag-debug ng mga SQLite database ng mobile application sa real-time. Ayon sa opisyal na dokumentasyon ng Android Developers (2025), pinapayagan ng tool na magsagawa ng mga SQL query sa aktibong database, tingnan ang istruktura ng mga table, at mag-edit ng mga record nang hindi hihinto ang application. Ang tool ay sumusuporta sa Room, SQLiteOpenHelper, at anumang in-app database, awtomatikong nade-detect ang mga ito kapag sinimulan ang profiling.
Mga Pangunahing Punto
Database Inspector — ay isang tool ng Android Studio para sa inspeksyon at pag-debug ng mga lokal na database sa mobile application. Pinapayagan nito na tingnan ang lahat ng SQLite database na ginawa ng application, kabilang ang mga Room database, SQLiteOpenHelper, at mga third-party na library. Ang tool ay available simula sa Android Studio 4.1 at inilulunsad sa pamamagitan ng Android Profiler o direkta mula sa View menu.
Ang pangunahing gawain ng Database Inspector ay pag-visualize ng data sa proseso ng pag-develop. Sa halip na ilabas ang nilalaman ng database sa log o magsulat ng hiwalay na screen para sa pagtingin ng data, maaaring buksan ng developer ang Database Inspector at agad na makita ang lahat ng table, schema, at nilalaman nito. Sinusuportahan ng tool ang parehong relational SQLite database at Room na may Auto-migration.
Ang tool ay kailangang-kailangan sa mga sitwasyon kung kailan kailangang suriin ang kawastuhan ng pag-save ng data pagkatapos magsagawa ng operasyon: pagrehistro ng user, pag-sync sa server, pag-cache ng mga listahan. Sa halip na magsulat ng test UI, ang database dump ay tinitingnan sa pamamagitan ng Database Inspector. Ang tool ay aktibong ginagamit din para sa pag-debug ng mga migrasyon ng Room — ang kasalukuyang schema ng mga table ay makikita pagkatapos ng bawat pag-update ng schema.
Ang Database Inspector ay kumokonekta sa proseso ng Android application sa pamamagitan ng Android Profiler Service. Nade-detect nito ang lahat ng bukas na SQLite connection sa application at ipinapakita ang mga ito sa side panel. Para sa paggana, kinakailangan ang Debug build ng application na may API Level 26 (Android 8.0) at mas mataas.
Kapag inilunsad, ang Database Inspector ay gumagawa ng ADB tunnel sa pagitan ng application sa device at ng IDE sa computer. Ang mga WAL (Write-Ahead Logging) file ng SQLite database ay ini-stream sa pamamagitan ng tunnel na ito para ipakita ang nilalaman. Ang mga SQL command ay ipinapadala nang direkta sa SQLite engine ng application sa pamamagitan ng Database Inspector support sa Room at SQLiteDatabase. Awtomatikong nade-detect ng tool ang sandali kung kailan binuksan ng application ang database at idinadagdag ito sa listahan ng ini-inspeksyon.
Para sa tamang paggana ng Database Inspector kinakailangan: Android Studio 4.1+, device o emulator na may API Level 26+, Debug build ng application. Para sa Room, karagdagang kinakailangan ang room-runtime library version 2.2+. Kung ang database ay ginawa sa WAL mode, na siyang pamantayan para sa Room 2.2+, ang tool ay maaaring magbasa ng data nang hindi binablock ang pangunahing application.
// Halimbawa ng Room database na sinusuportahan ng Database Inspector
@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
}
Ang Database Inspector ay nagbibigay ng kumpletong set ng mga function para sa paggawa gamit ang lokal na data: mula sa pagtingin ng schema ng table hanggang sa pag-execute ng mga komplikadong SQL query at pag-edit ng mga record.
Sa kaliwang panel ay ipinapakita ang lahat ng mga database at table. Kapag pumili ng table, ang nilalaman nito ay bubukas sa anyo ng table na may mga column: lahat ng field ng record ay ipinapakita bilang mga column, bawat row ay isang hiwalay na record. Ang schema ng table (pangalan, uri, mga constraint) ay ipinapakita sa itaas. Para sa mga foreign key, ipinapakita ang mga ugnayan sa pagitan ng mga table.
| Uri ng Data | SQLite Uri | Room Uri | Halimbawa |
|---|---|---|---|
| Integer | INTEGER | Int, Long | 42 |
| String | TEXT | String | “John” |
| Decimal | REAL | Double, Float | 3.14 |
| Binary data | BLOB | ByteArray | [0x00, 0x01] |
| Petsa/oras | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Ang tab na Query ay nagpapahintulot na magsagawa ng mga arbitraryong SQL command nang direkta sa napiling database. Ang SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN, at anumang iba pang SQLite operator ay sinusuportahan. Ang mga resulta ay ipinapakita sa tabular form sa ilalim ng query editor. Ang kasaysayan ng query ay nai-save sa panahon ng session.
Ang mga cell ng table ay maaaring i-edit nang direkta — i-click lamang ang value at ilagay ang bago. Ang mga pagbabago ay agad na inilalapat sa tumatakbong application. Ito ay lalong kapaki-pakinabang para sa pag-test ng mga boundary case: pagtatakda ng null sa mandatoryong field, pagpapalit ng ID ng hindi umiiral, pagsuri sa pagproseso ng mahabang string. Lahat ng pagbabago ay naitala sa real-time.
Ang Database Inspector ay may malalim na integrasyon sa Room, na ginagawang kailangang-kailangan ito sa pag-develop ng mga application gamit ang library na ito. Bukod sa karaniwang functionality, ang inspector ay nagbibigay ng mga partikular na kakayahan para sa Room.
Para sa mga Room database, ang Database Inspector ay nagpapakita ng mga generated na SQL query para sa bawat DAO method. Ito ay nagpapahintulot na tiyakin na ang Room ay gumagawa ng tamang SQL, lalo na para sa mga komplikadong query na may JOIN, @Relation, at @Transaction. Kung ang Room ay nag-execute ng hindi mahusay na query (halimbawa, N+1 query sa halip na isang JOIN), ito ay agad na makikita sa query log ng Database Inspector.
Kapag nag-a-update ng schema ng Room na may AutoMigration o manual na migrasyon, ang Database Inspector ay nagpapakita ng kasalukuyang istruktura ng mga table pagkatapos ng migrasyon. Buksan lamang ang inspector pagkatapos ilunsad ang application at suriin kung ang lahat ng column, index, at foreign key ay ginawa nang tama. Kung ang migrasyon ay nabigo na may error, ang database ay hindi magbubukas — ang tool ay magpapakita ng huling available na bersyon.
Ang Room ay nagpapahintulot na pagsamahin ang data mula sa maraming table sa pamamagitan ng @Relation at @Embedded. Ang Database Inspector ay tumutulong na biswal na suriin ang kawastuhan ng mga ugnayan sa pamamagitan ng pagpapakita ng data ng mga kaugnay na table na magkatabi. Para sa bawat foreign key, maaaring mag-navigate sa kaugnay na table sa isang click.
// Entity na may Relation para sa pagsuri sa pamamagitan ng Database Inspector
@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>
)
Ang Database Inspector ay lumulutas ng mga partikular na gawain sa programming na lumilitaw kapag nagtatrabaho sa lokal na pag-iimbak ng data. Isaalang-alang natin ang mga pinakakaraniwang sitwasyon ng paggamit ng tool sa araw-araw na trabaho.
Madalas na nag-cache ang application ng mga tugon ng API sa lokal na database. Ang Database Inspector ay nagpapahintulot na matiyak ang kawastuhan ng pag-cache: pagkatapos magsagawa ng pag-sync, ang kasalukuyang mga record ay makikita sa cache table. Kung hindi lumitaw ang data — ang problema ay nasa save code. Kung lumitaw ang mga duplicate — ang problema ay nasa upsert logic.
Kapag ang DAO method ay hindi nag-save ng data ngunit hindi nagtapon ng exception, ang Database Inspector ay nagpapakita ng kasalukuyang estado ng table. Mga karaniwang dahilan: conflict ng Primary Key (setting ng OnConflictStrategy), maling uri ng data sa column, paglabag sa NOT NULL constraints o Foreign Key violation. Ang inspector ay nagpapahintulot na makita ang changeset ng database bago at pagkatapos ng operasyon. Ang paghahambing ng mga snapshot ng data bago at pagkatapos ng tawag sa DAO — isa sa mga pinaka-epektibong paraan upang i-debug ang mga error sa transaksyon at suriin ang kawastuhan ng business logic ng application sa mga komplikadong operasyon ng pagsulat.
Kapag binabago ang schema ng mga table — pagdaragdag ng mga column, pagpapalit ng pangalan ng mga field, paghahati ng mga table — tinutulungan ng Database Inspector na suriin ang resulta ng migrasyon. Ilunsad lamang ang application na may bagong bersyon ng database at tiyakin na ang lahat ng data ay nailipat nang tama sa bagong istraktura. Kung nawala ang data pagkatapos ng migrasyon, maaari itong maibalik mula sa dump na nai-save bago ang refactoring. Ang sitwasyong ito ay lalong mahalaga kapag lumilipat mula sa SQLiteOpenHelper patungo sa Room o kapag binabago ang istraktura ng mga umiiral na table sa bagong bersyon ng application.
Ang Database Inspector ay maaari ding gamitin para sa pagsusuri ng performance ng mga SQL query. Sa pamamagitan ng pag-execute ng SELECT sa pamamagitan ng Query tab at pagsukat ng oras ng tugon, ang mga query na kulang sa index ay maaaring matukoy. Awtomatikong nila-log ng Room ang mga mabagal na query sa Logcat na may markang SLOW SQL, at pinapayagan ng Database Inspector na agad na mag-execute ng EXPLAIN QUERY PLAN para sa pagsusuri ng execution plan.
Mga Madalas Itanong
Tiyakin na ang application ay tumatakbo sa Debug mode, at ang API Level ng device ay 26 o mas mataas. Kung ang database ay ginawa sa isang hiwalay na proseso o gumagamit ng SQLCipher (encryption), maaaring hindi ito ma-detect ng Database Inspector. Para sa SQLCipher, gumamit ng auxiliary debug database na walang encryption.
Oo, ang pag-edit ng data ay posible nang direkta sa mga cell ng table. I-double click ang value upang baguhin ito. Ang mga pagbabago ay agad na inilalapat sa database ng tumatakbong application. Para sa pagdaragdag ng mga bagong record, gumamit ng INSERT SQL query sa pamamagitan ng Query tab.
Hindi, ang Database Inspector ay hindi sumusuporta sa Realm, dahil ang Realm ay hindi gumagamit ng SQLite. Para sa pag-debug ng Realm, gamitin ang Realm Object Server, Realm Studio, o pagla-log sa application. Para sa MongoDB Realm SDK, available ang sariling Realm Studio tool para sa macOS, Windows, at Linux.
Pinapayagan ng Database Inspector na i-export ang database nang buo. Mag-right click sa pangalan ng database sa listahan at piliin ang Export Database. Ang .db file ay mase-save sa computer. Para sa pagtingin, gumamit ng anumang SQLite browser, halimbawa DB Browser for SQLite.
Ayon sa Google, ang overhead ay minimal — binabasa ng Database Inspector ang mga WAL file ng database nang hindi hinaharang ang pagsulat. Ang pag-execute ng custom na SQL query ay maaaring pansamantalang magpabigat sa database, ngunit ito ay kontrolado ng developer. Para sa production builds, ang tool ay awtomatikong nade-deactivate.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din