今天逛技術(shù)網(wǎng)站的時(shí)候看到了好東西。Database Inspector看起來第一眼就沒用過,快速百度了一下以前的樣子,發(fā)現(xiàn)這方面的文章很少。這似乎是內(nèi)測尚未上市的工具。首先說說Database Inspector在干什么。實(shí)際上需要解決的問題是,調(diào)試數(shù)據(jù)庫時(shí),可能想像Excel一樣簡單地編輯和直接修改。有什么好處呢?(約翰f肯尼迪,美國電視劇,數(shù)據(jù)庫名言)我們不必一點(diǎn)一點(diǎn)地去Debug數(shù)據(jù)。這似乎還是很有用的。
本來想找一些資料來整理一下,但無意間看到一個(gè) Google 的大佬工程師已經(jīng)分享了一篇教程,所以參考了一下然后簡單的進(jìn)行了翻譯,廢話不多說,一下就是具體使用方法,感興趣的伙伴們可以看一下。以下是正文:
創(chuàng)建和管理本地?cái)?shù)據(jù)庫是大多數(shù)移動(dòng)應(yīng)用程序的核心組件。但是,無論直接使用 SQLite 還是通過 Room 持久性庫使用,Android 開發(fā)人員一直在尋求一種更好的方法來檢查和調(diào)試正在運(yùn)行的應(yīng)用程序中的數(shù)據(jù)庫。
最新版本的 Android Studio 4.1(當(dāng)前在Canary中可用)附帶了一個(gè)名為 Database Inspector 的新工具, 該工具可幫助您檢查,查詢和修改正在運(yùn)行的應(yīng)用程序中的數(shù)據(jù)庫。
使用 Database Inspector,修改數(shù)據(jù)庫中的數(shù)據(jù)并不比編輯電子表格難。如果您正在使用 Room 并觀察查詢結(jié)果,更改將立即反映在您的 App 中!
在本文中,我們將結(jié)合使用 Database Inspector 和 Sunflower App 來測試一些極端情況。Sunflower 是一個(gè)園藝 App,用于說明 Android Jetpack 的 Android 開發(fā)最佳實(shí)踐。在閱讀本文時(shí),我建議您克隆這個(gè) Github 倉庫。
首先
Sunflower App 的 UI 包含兩個(gè)選項(xiàng)卡。要將一些植物添加到我的花園中,我們看一下 "Plant List" 選項(xiàng)卡,其中列出了我的花園中可用的植物。在右上角有一個(gè)過濾器按鈕。當(dāng)我按下此按鈕時(shí),將顯示以下植物列表:
顯然,此按鈕可根據(jù)某些條件過濾植物。但是,讓我們想象一下,我對(duì)這個(gè)項(xiàng)目不是很熟悉,我想通過使用數(shù)據(jù)庫檢查器來了解過濾的工作方式。
在 Android Studio 中打開數(shù)據(jù)庫檢查器,我需要從菜單欄中選擇 View > Tool Windows > Database Inspector。
上一步動(dòng)作會(huì)啟動(dòng)數(shù)據(jù)庫檢查器。
現(xiàn)在,我需要在運(yùn)行 API 級(jí)別 26 或更高級(jí)別的設(shè)備上運(yùn)行應(yīng)用程序,然后從下拉菜單中選擇應(yīng)用程序進(jìn)程。
選擇要檢查的應(yīng)用程序過程后,數(shù)據(jù)庫模式將顯示在下面的面板中。要查看 Sunflower 數(shù)據(jù)庫表,我需要擴(kuò)展 …/ databases / sunflower-db schema。
讓我們回到該 App,看看過濾后的植物列表。名單包括 Avocado,Grape,Orange 和 Tomato。如果我可以按植物名稱對(duì)植物表進(jìn)行排序,那么找到 Avocado 就不難了。讓我們看看數(shù)據(jù)庫檢查器是否可以做到這一點(diǎn)!
首先,我雙擊 plants 表以顯示其數(shù)據(jù)。數(shù)據(jù)顯示的默認(rèn)頁面大小為 50,但是您可以在較短的結(jié)果列表之間減少此數(shù)字和頁面。單擊 name 列可將 plant 表按條目名稱排序。果然,Avocado 不在列表的最下方,我在表的第二行中找到它。
查詢數(shù)據(jù)庫
查看 Avocado 的數(shù)據(jù)條目,growZoneNumber 最有可能是應(yīng)用程序用于過濾的屬性。為了驗(yàn)證這一點(diǎn),讓我們?cè)趃rowZoneNumber上運(yùn)行查詢,對(duì)于 Avocado而言 為 9 。實(shí)際上,該查詢已經(jīng)存在于 Plan 中,我可以直接從 Room 的 @Query 批注中運(yùn)行查詢。每個(gè) @Query 注釋的行號(hào)旁邊都有一個(gè)小運(yùn)行圖標(biāo)。
當(dāng)我單擊查詢 getPlantsWithGrowZoneNumber() 的運(yùn)行圖標(biāo)并選擇正確的數(shù)據(jù)庫時(shí),將出現(xiàn)一個(gè)彈出窗口,詢問我:growZoneNumber 的值。
我可以輸入值 9 并單擊 “Run” 以查看查詢結(jié)果。
另外,我可以鍵入自己的查詢并在工具窗口中運(yùn)行它。這給了我更多的可選擇性,因?yàn)槲也粌H限于在 DAO 接口中定義的查詢。要運(yùn)行自己的查詢,請(qǐng)單擊 “Run SQL”,然后從右側(cè)新打開的選項(xiàng)卡中選擇 plants 數(shù)據(jù)庫。
接下來,我在數(shù)據(jù)庫選擇下拉列表旁邊的框中輸入以下查詢,然后點(diǎn)擊Run。
" Select * from plants where growZoneNumber = 9 "
這里!我們具有與打開過濾器時(shí)完全相同的植物列表。
修改和調(diào)試數(shù)據(jù)庫
數(shù)據(jù)庫檢查器允許您在應(yīng)用程序在設(shè)備上運(yùn)行時(shí)修改應(yīng)用程序數(shù)據(jù)庫中的值,從而輕松調(diào)試應(yīng)用程序。
首先,我要測試應(yīng)用程序用戶界面中是否有很長的植物名稱。我將使用 Database Inspector 直接在數(shù)據(jù)庫上編輯值,而不是更改數(shù)據(jù)源并使用新數(shù)據(jù)刷新數(shù)據(jù)庫。
現(xiàn)在該單元格是可編輯的,我將名稱從 Apple 更改為一種非常特殊的 Apple 類型,然后按 Enter。如果您遵循此步驟,則可以在應(yīng)用程序用戶界面中鍵入任何您想要測試的長度的內(nèi)容。
現(xiàn)在,讓我們回到該 App。請(qǐng)注意,我們沒有做任何事情,該應(yīng)用程序?qū)@示更新的數(shù)據(jù)!如果您的應(yīng)用程序使用 Room 并觀察到查詢結(jié)果(using LiveData / Flow),則無需觸發(fā)數(shù)據(jù)庫查詢即可刷新數(shù)據(jù)。否則,根據(jù)您的應(yīng)用觸發(fā)查詢的方式,您可能需要重新啟動(dòng)該應(yīng)用或僅再次導(dǎo)航到相關(guān)的活動(dòng)/片段。為了充分發(fā)揮 Database Inspector 的潛能,這可能是遷移您的應(yīng)用程序以使用 LiveData 或 Flow 的好借口。
回顧我們的應(yīng)用程序,看似名片視圖并非旨在處理如此長的植物名稱。稍后將解決此問題,但讓我們繼續(xù)下一個(gè)測試。
每個(gè)植物都有不同的澆水間隔,我想看看何時(shí)澆水到期。為此,我需要在花園里添加一些植物。但是首先,我在數(shù)據(jù)庫檢查器中選中了 Live updates 復(fù)選框。當(dāng) Live updates 檢查,數(shù)據(jù)庫檢查自動(dòng)顯示任何改變你的應(yīng)用程序,使得它的數(shù)據(jù)庫。
我回到 My Garden 選項(xiàng)卡,添加一些植物,例如 Avocado 和 Eggplant。但是首先,我回到 Database Inspector,雙擊 garden_plantings 觀察表。請(qǐng)注意,在添加新植物時(shí),garden_plantings 表中的數(shù)據(jù)是如何自動(dòng)更新的。
這兩種植物的澆水間隔均為 3 天。我真的不想等待 3 天才能看到會(huì)發(fā)生什么,所以我將編輯數(shù)據(jù)庫并更改 last_watering_day。我再次回到 Database Inspector,然后雙擊 garden_plantings。該 last_watering_date 是表的最后一欄。我將兩個(gè)記錄的值更改為較小的值,以反映今天的某個(gè)日期之前的某個(gè)時(shí)間。
好的,看來我的時(shí)間倒退了一點(diǎn),但這對(duì)于我的測試起了作用。應(yīng)用界面似乎可以很好地顯示截止日期。為了未來的發(fā)展,我們建議在澆水日過后為用戶添加警告。
繼續(xù)嘗試新的數(shù)據(jù)庫檢查器!如果您遇到任何問題,請(qǐng)不要忘記提交錯(cuò)誤!
最后貼上原文鏈接
1.《怎么用apk修改軟件數(shù)據(jù)庫?我來告訴你答案Android Studio Database Inspector 使用》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。
2.《怎么用apk修改軟件數(shù)據(jù)庫?我來告訴你答案Android Studio Database Inspector 使用》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/3207381.html