<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Android Studio Database Inspector 使用

          共 3621字,需瀏覽 8分鐘

           ·

          2021-03-16 18:12

          ????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????

          作者丨Henry扶蘇

          來(lái)源丨Henry扶蘇


          今天在逛技術(shù)網(wǎng)站的時(shí)候,看到了一個(gè)好東西,Database Inspector 第一眼看上去感覺(jué)沒(méi)有用過(guò),老樣子趕緊百度一下,發(fā)現(xiàn)基本沒(méi)有這方面的文章,看來(lái)這個(gè)應(yīng)該是在內(nèi)測(cè)還未推出的工具,首先說(shuō)一下 Database Inspector 是干什么的?其實(shí)要解決的問(wèn)題就是我們?cè)谡{(diào)試數(shù)據(jù)庫(kù)的時(shí)候,使它可以想編輯 Excel 一樣的簡(jiǎn)單,直接修改直接生效,這有什么好處呢?不用我們?cè)谝稽c(diǎn)一點(diǎn)的去 Debug 數(shù)據(jù)了,這個(gè)看來(lái)還是非常有用的。

          本來(lái)想找一些資料來(lái)整理一下,但無(wú)意間看到一個(gè) Google 的大佬工程師已經(jīng)分享了一篇教程,所以參考了一下然后簡(jiǎn)單的進(jìn)行了翻譯,廢話不多說(shuō),一下就是具體使用方法,感興趣的伙伴們可以看一下。以下是正文:

          創(chuàng)建和管理本地?cái)?shù)據(jù)庫(kù)是大多數(shù)移動(dòng)應(yīng)用程序的核心組件。但是,無(wú)論直接使用 SQLite 還是通過(guò) Room 持久性庫(kù)使用,Android 開(kāi)發(fā)人員一直在尋求一種更好的方法來(lái)檢查和調(diào)試正在運(yùn)行的應(yīng)用程序中的數(shù)據(jù)庫(kù)。

          最新版本的 Android Studio 4.1(當(dāng)前在Canary中可用)附帶了一個(gè)名為 Database Inspector 的新工具, 該工具可幫助您檢查,查詢(xún)和修改正在運(yùn)行的應(yīng)用程序中的數(shù)據(jù)庫(kù)。

          使用 Database Inspector,修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)并不比編輯電子表格難。如果您正在使用 Room 并觀察查詢(xún)結(jié)果,更改將立即反映在您的 App 中!

          在本文中,我們將結(jié)合使用 Database Inspector 和 Sunflower App 來(lái)測(cè)試一些極端情況。Sunflower 是一個(gè)園藝 App,用于說(shuō)明 Android Jetpack 的 Android 開(kāi)發(fā)最佳實(shí)踐。在閱讀本文時(shí),我建議您克隆這個(gè) Github 倉(cāng)庫(kù)。

          首先

          Sunflower App 的 UI 包含兩個(gè)選項(xiàng)卡。要將一些植物添加到我的花園中,我們看一下 "Plant List" 選項(xiàng)卡,其中列出了我的花園中可用的植物。在右上角有一個(gè)過(guò)濾器按鈕。當(dāng)我按下此按鈕時(shí),將顯示以下植物列表:

          顯然,此按鈕可根據(jù)某些條件過(guò)濾植物。但是,讓我們想象一下,我對(duì)這個(gè)項(xiàng)目不是很熟悉,我想通過(guò)使用數(shù)據(jù)庫(kù)檢查器來(lái)了解過(guò)濾的工作方式。

          在 Android Studio 中打開(kāi)數(shù)據(jù)庫(kù)檢查器,我需要從菜單欄中選擇 View > Tool Windows > Database Inspector

          上一步動(dòng)作會(huì)啟動(dòng)數(shù)據(jù)庫(kù)檢查器。

          現(xiàn)在,我需要在運(yùn)行 API 級(jí)別 26 或更高級(jí)別的設(shè)備上運(yùn)行應(yīng)用程序,然后從下拉菜單中選擇應(yīng)用程序進(jìn)程。

          選擇要檢查的應(yīng)用程序過(guò)程后,數(shù)據(jù)庫(kù)模式將顯示在下面的面板中。要查看 Sunflower 數(shù)據(jù)庫(kù)表,我需要擴(kuò)展 …/ databases / sunflower-db schema。

          讓我們回到該 App,看看過(guò)濾后的植物列表。名單包括 AvocadoGrapeOrange 和 Tomato。如果我可以按植物名稱(chēng)對(duì)植物表進(jìn)行排序,那么找到 Avocado 就不難了。讓我們看看數(shù)據(jù)庫(kù)檢查器是否可以做到這一點(diǎn)!

          首先,我雙擊 plants 表以顯示其數(shù)據(jù)。數(shù)據(jù)顯示的默認(rèn)頁(yè)面大小為 50,但是您可以在較短的結(jié)果列表之間減少此數(shù)字和頁(yè)面。單擊 name 列可將 plant 表按條目名稱(chēng)排序。果然,Avocado 不在列表的最下方,我在表的第二行中找到它。

          查詢(xún)數(shù)據(jù)庫(kù)

          查看 Avocado 的數(shù)據(jù)條目,growZoneNumber 最有可能是應(yīng)用程序用于過(guò)濾的屬性。為了驗(yàn)證這一點(diǎn),讓我們?cè)?span style="box-sizing: border-box;font-weight: bolder;">growZoneNumber上運(yùn)行查詢(xún)對(duì)于 Avocado而言 為 9 。實(shí)際上,該查詢(xún)已經(jīng)存在于 PlantDao.kt 中,我可以直接從 Room 的 @Query 批注中運(yùn)行查詢(xún)。每個(gè) @Query 注釋的行號(hào)旁邊都有一個(gè)小運(yùn)行圖標(biāo)。

          當(dāng)我單擊查詢(xún) getPlantsWithGrowZoneNumber() 的運(yùn)行圖標(biāo)并選擇正確的數(shù)據(jù)庫(kù)時(shí),將出現(xiàn)一個(gè)彈出窗口,詢(xún)問(wèn)我:growZoneNumber 得值。

          我可以輸入值 9 并單擊 “Run” 以查看查詢(xún)結(jié)果。

          另外,我可以鍵入自己的查詢(xún)并在工具窗口中運(yùn)行它。這給了我更多的可選擇性,因?yàn)槲也粌H限于在 DAO 接口中定義的查詢(xún)。要運(yùn)行自己的查詢(xún),請(qǐng)單擊 “Run SQL”,然后從右側(cè)新打開(kāi)的選項(xiàng)卡中選擇 plants 數(shù)據(jù)庫(kù)。

          接下來(lái),我在數(shù)據(jù)庫(kù)選擇下拉列表旁邊的框中輸入以下查詢(xún),然后點(diǎn)擊Run

          " Select * from plants where growZoneNumber = 9 "

          這里!我們具有與打開(kāi)過(guò)濾器時(shí)完全相同的植物列表。

          修改和調(diào)試數(shù)據(jù)庫(kù)

          數(shù)據(jù)庫(kù)檢查器允許您在應(yīng)用程序在設(shè)備上運(yùn)行時(shí)修改應(yīng)用程序數(shù)據(jù)庫(kù)中的值,從而輕松調(diào)試應(yīng)用程序。

          首先,我要測(cè)試應(yīng)用程序用戶(hù)界面中是否有很長(zhǎng)的植物名稱(chēng)。我將使用 Database Inspector 直接在數(shù)據(jù)庫(kù)上編輯值,而不是更改數(shù)據(jù)源并使用新數(shù)據(jù)刷新數(shù)據(jù)庫(kù)。

          現(xiàn)在該單元格是可編輯的,我將名稱(chēng)從 Apple 更改為一種非常特殊的 Apple 類(lèi)型,然后按 Enter。如果您遵循此步驟,則可以在應(yīng)用程序用戶(hù)界面中鍵入任何您想要測(cè)試的長(zhǎng)度的內(nèi)容。

          現(xiàn)在,讓我們回到該 App。請(qǐng)注意,我們沒(méi)有做任何事情,該應(yīng)用程序?qū)@示更新的數(shù)據(jù)!如果您的應(yīng)用程序使用 Room 并觀察到查詢(xún)結(jié)果(using LiveData / Flow),則無(wú)需觸發(fā)數(shù)據(jù)庫(kù)查詢(xún)即可刷新數(shù)據(jù)。否則,根據(jù)您的應(yīng)用觸發(fā)查詢(xún)的方式,您可能需要重新啟動(dòng)該應(yīng)用或僅再次導(dǎo)航到相關(guān)的活動(dòng)/片段。為了充分發(fā)揮 Database Inspector 的潛能,這可能是遷移您的應(yīng)用程序以使用 LiveData 或 Flow 的好借口。

          回顧我們的應(yīng)用程序,看似名片視圖并非旨在處理如此長(zhǎng)的植物名稱(chēng)。稍后將解決此問(wèn)題,但讓我們繼續(xù)下一個(gè)測(cè)試。

          每個(gè)植物都有不同的澆水間隔,我想看看何時(shí)澆水到期。為此,我需要在花園里添加一些植物。但是首先,我在數(shù)據(jù)庫(kù)檢查器中選中了 Live updates 復(fù)選框。當(dāng) Live updates 檢查,數(shù)據(jù)庫(kù)檢查自動(dòng)顯示任何改變你的應(yīng)用程序,使得它的數(shù)據(jù)庫(kù)。

          我回到 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ù)庫(kù)并更改 last_watering_day。我再次回到 Database Inspector,然后雙擊 garden_plantings。該 last_watering_date 是表的最后一欄。我將兩個(gè)記錄的值更改為較小的值,以反映今天的某個(gè)日期之前的某個(gè)時(shí)間。

          好的,看來(lái)我的時(shí)間倒退了一點(diǎn),但這對(duì)于我的測(cè)試起了作用。應(yīng)用界面似乎可以很好地顯示截止日期。為了未來(lái)的發(fā)展,我們建議在澆水日過(guò)后為用戶(hù)添加警告。

          繼續(xù)嘗試新的數(shù)據(jù)庫(kù)檢查器!如果您遇到任何問(wèn)題,請(qǐng)不要忘記提交錯(cuò)誤!

          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來(lái),可以說(shuō)是程序員面試必備!所有資料都整理到網(wǎng)盤(pán)了,歡迎下載!

          點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點(diǎn)這里好文分享給更多人↓↓

          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久伊人AV| 天堂网av2014 | 黄色大片免费观看完整版在线视频播放 | 欧美性大香蕉 | 成人在线中文免费视频 |