當前位置:
首頁 > 科技 > Android 開發者們,如何使用 Python 來擴展 adb 命令?

Android 開發者們,如何使用 Python 來擴展 adb 命令?

生死看淡,不服就干!

緣起

作為一個標準的「工程師」,在控制台使用命令才是我們最終的歸宿,看起來才更像大牛,當然,這都是題外話。

在進行 Android 開發時,adb 是我們最常使用的命令之一。

當你正在調試代碼邏輯時,產品同學過來說:「你把你剛發出來的那個提測的 APK 給我裝一下唄。」雖然有一萬隻草尼瑪從心中奔騰而過,但還是會屈服於產品的「美貌」,給他安裝提測包。接下來,會做什麼事情呢:

將產品同學的手機通過 USB 連接(有時候,你還需要手動去打開 USB 調試);

找到要安裝的 APK 文件;

使用 adb 命令安裝上面步驟中找到的那個 APK。

就在這個時候,你電腦上同時插著多台設備,輸入的命令在執行就直接報錯了:

超出了 adb 所支持的設備數,所以,你的步驟變得更非常地複雜:

adb devices 列出你當前的設備列表,然後拷貝你要安裝的設備Device Id;

使用 adb -s deviceId install .... 來進行 APK 安裝。

這個步驟重複超過 10 次,你還在重複,請仔細閱讀下文,本文將教會你如何解放自己的雙手,讓你有更多的時間做更多的需求,開不開心[手動壞笑]。

需求分析

上面問題的痛點是:我在執行命令時,不得不去手動拿到「Device Id」,並且手動設置上去。

類似案例分析:在使用 Android Studio Debug 運行 App 的時候,會讓你先選擇你要安裝到的設備,然後才會進行編譯、安裝、啟動頁面。

所以,需要優化「Device Id」的獲取方式。我們可以使用腳本來獲取當前連接在電腦上的設備,並且給出一個輸入的入口,讓用戶選擇要執行命令的設備。

代碼實現

在這裡,筆者使用 Python 來實現自動獲取「Device Id」的功能。

寫好腳本,世界會更加美好。

獲取設備列表

Android SDK 中提供的 adb 工具給我們提供了很多功能,獲取設備的命令如下:

所以,只需要使用 Python 執行這條 Shell 腳本,並解析腳本輸出結果,就可以拿到設備列表。代碼邏輯如下:

如上,就可以拿到當前連接在 USB 的設備列表。

讓用戶選擇設備

從上面拿到了設備列表,讓用戶輸入一個給定的 index,然後去取 index 所對應的 Device Id。

在這裡,為了有更好的輸出結果,我們需要處理 KeyboardInterrupt , SystemExit 的異常事件,遇到這種異常的時候,就直接終止。當然,我們還需要處理用戶輸入的字元,防止輸入非法字元,引起異常。

執行結果如下圖:

拼裝命令並執行在上面,已經拿到用戶要安裝的 APK 的 Device Id, 下面我們根據用戶的輸入命令來生成我們自己的命令。

拿到生成的新命令,然後執行。

優化顯示設備名稱

在前面獲取到的 Device Id 列表,直接展示出來給用戶選擇,其實不太友好,誰會記得自己手機的 Device Id 呢。是吧。所以我們需要在進行一波操作,將 Device Id 轉換成用戶可以識別的設備名稱。

通過 adb 命令去拿到設備的 manufacturer 與 model 信息。

立竿見影的效果。

總結

Talk is cheap, show me the code.

有很多功能,我們可以一遍一遍的去寫手動執行,但是稍加處理,使用少量腳本就可以處理這些問題。追求效率,釋放雙手。

本文為作者投稿,版權歸作者所有。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

任志強點名劉強東;餓了么和口碑合併;特斯拉超賓士|極客頭條
中國的區塊鏈技術,究竟發展到哪裡了?

TAG:CSDN |