【Android】你應該知道的調試神器----adb



最近跟着一個前輩在做TV應用,因為不能通過usb連接調試,接觸到了adb,突然間覺得自己似乎發現了另外一個世界,借助adb shell命令對應用進行調試,簡直方便得不行。更重要的是,這是命令行操作啊!!!裝逼神器啊,還沒學的趕緊來試試看吧。


效果

老規矩,先上幾張截圖看看效果,這是查看xml文件數據,和sqlite數據庫數據的效果

介紹

adb,網上介紹其實很多,就是用來對安卓系統進行一些命令操作的工具。如果你的應用需要經常查看 sharePreference文件數據Sqlite 數據庫數據,以及本地的各種數據的話,那么使用adb將會非常方便。

如果你需要從電腦上發送一些文件到手機里,或者從手機獲取一些文件到電腦上(比如視頻之類的應用,需要經常把應用存在手機里的視頻文件發送到電腦),那么借助adb也可以很方便實現。

如果你想做一些TV應用的話,那么就應該要學學ADB了,學學如何通過wifi連接調試,如果pull,push文件等等了。

使用

好了,現在就來看看一些常用的命令了,adb 的命令其實很多,不用特意去記,平常要用時上網搜下,等用熟悉了,自然就把一些常用的命令給記住了。下面,稍微介紹一些我經常使用到的命令:

基本命令:ls、cd、cat、rm、cp、mkdir

這些命令是linux系統上的一些基本命令,至少要對 lscdcat這幾個命令熟悉點,才能很流暢的使用adb工具,如果你還不熟悉,建議先去了解下這幾個命令吧。

①adb shell

這個是進入手機shell操作的一個命令。通常情況下,你調試用的模擬器或者手機通過usb連接電腦后,在win上通過Ctrl + R,輸入cmd,在dos窗口內執行該命令即可進入手機的shell操作。

如果你連接當前電腦的手機不止一部時,這時就需要借助參數來進行選擇指定的設備了。如下圖:

②借助ls、cd命令進入應用數據地址:/data/data/{包名如:coder.dasu.meizi}/

該目錄下就是存放該應用的 xml數據,cache數據,file數據,以及sqlite數據庫數據了,如下:

③cat命令查看SharePreference的xml數據

xml中經常保存一些應用的配置數據,比如用戶是否首次啟動app,用戶賬戶,用戶對應用操作的一些設置啊,比如關閉消息推送等等。
這些數據在開發時,都可以通過log方式打印出來,查看效果是否正確。但有時,如果想要查看較多的xml數據時,又懶得一個個的敲代碼,或者log信息太雜,忘記以前寫的過濾條件時,這時就可以借助adb來實現了。

④神器: sqlite3 ***.db命令查看數據庫

以上介紹的一些功能其實就算不借助adb,也可以使用打印log等方式實現。但如果我們開發過程中,需要經常查看一些數據庫內的數據時,也可以使用ddms,把db文件導出來借助工具查看,但這樣總會麻煩了點,需要每次都進行導出db文件。所以,這時候,如果借助 sqlite3 這個命令,將會非常方便。

執行完 sqlite3 meizi.db 后,會進入一個sqlite命令狀態,在這里可以使用sql語言來進行查詢,也可以使用.help來查看sqlite3提供的一些快速命令.

如,執行 .table 可以查看當前數據庫所有的表,執行 .schema 可以查看創建數據庫的sql命令

上面那圖中有兩張表,我們看看USER表中有什么數據,可以使用sql命令查詢

ps:查詢結果默認是一個記錄一行的,也可以設置成list、或上圖等各種顯示方式,通過.mode .header命令來執行,這些命令都可以通過.help來查看說明。

雖然需要執行sql命令才能查詢,但其實也就select一下,並不會很復雜,而且還可以借機多接觸一下sql語言,學習一下。更重要的是,這很裝逼,有沒有O(∩_∩)O。不管在同學面前操作,還是操作給不懂這個的老板看,都會讓對方覺得你很吊的。

哈哈,反正我是喜歡上用這個工具就是了,因為最近開發負責的部分很多跟數據庫操作相關,而且還經常出現一些bug,需要經常查看數據庫內容來定位以及解決bug,所以這個用着是特別方便,相比於以前用導出db文件的方式來的話。

如果你也有調試數據庫這方面的需求,建議你也可以使用這個工具試試看。

其他功能

我使用adb工具更多的是用它來查看應用的一些數據。但其實,它還是有很多其他實用的功能的。

wifi連接調試 adb connect {ip}

如果你不想用usb連接調試,可以選擇使用adb 連接調試,命令是 adb connect {ip} ,需要在同一個局域網內。這個功能也比較實用,但首次連接時,需要另外一些配置,建議可以網上搜索下adb wifi連接手機等關鍵字看看。

屏幕截屏 screencap -p {圖片存儲地址}

這個其實直接通過手機截屏再發送到電腦就可以了,但我開發的是TV應用,在盒子上沒法截屏,所以這個命令對我來說還是較實用的。

獲取或推送文件 adb pull/push

這個也挺實用的,獲取手機指定位置的文件到電腦上,或者從電腦發送文件到手機上


如果上面有什么錯誤,歡迎指正一下。如果你還知道其他更實用的功能,也歡迎告知一下,題主也是個新手,一起好好學習學習。


QQ圖片20180316094923.jpg
最近剛開通了公眾號,想激勵自己堅持寫作下去,初期主要分享原創的Android或Android-Tv方面的小知識,感興趣的可以點一波關注,謝謝支持~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM