Android-少年,快拔掉你的數據線

數據線是個磨人的小妖精

移動端開發,特別是 Android,模擬器略卡,也比較容易吃內存,因此我幾乎都是電腦連真機調試運行,鏈接的紐帶就是一根數據線。android

數據線是沒什麼錯的,錯就錯在,它是一根能夠肉體可接觸到的實物線。不少時候擡手拿杯子不當心碰了它一下,鏈接就斷掉了, 想象一下,當寫完一個很是棒的代碼,準備運行看效果,未發現鏈接設備,這種狀況發生屢次時,心裏的語言是十分不健康的。shell

因此,想給你們分享一個實用的小技巧,來擺脫數據線這個磨人的小妖精。bash

如何擺脫小妖精

具體操做步驟很是簡單,只要三步,不過有兩個前提條件。服務器

1.電腦配置安裝了 ADB 環境。關注個人絕大部分是 Android 開發人員,這個前提條件應該很好知足,很少說了。網絡

2.手機和電腦的 IP 要保證是同一個網段內。這個只要連的是同一個局域網,通常都是在一個網段內的。tcp

Step1-鏈接電腦和手機

第一步仍須要數據線,鏈接電腦和手機,這一步確保要鏈接成功,個人確認方法是看 Android Studio 的鏈接設別列表或 adb devices 命令查看。工具

若是你沒有看到設備,在手機上檢查 開發者選項-USB 調試 是否打開。測試

Step2-設置5555端口

成功鏈接以後,第二步是設置手機設備的 WIFI 調試端口 5555,而後少年,你就能夠拔掉數據線啦,第三步已經能夠無線的條件下操做了呢。ui

在電腦上的命令行窗口,輸入下面的命令:spa

adb tcpip 5555;

複製代碼

下面是運行結果截圖,提示信息顯示已經重置了端口。

Step3-鏈接手機的IP地址

最後一步,一個鏈接命令便可,以下,可是該命令須要知道手機的 IP 地址。

adb connect  <要鏈接設備的IP地址>;

複製代碼

拿到手機的 IP 地址的方法有不少,這裏分享兩個我本身的方法。

第一種是下面這個命令,運行能夠查看到鏈接設備的 IP 地址。

adb shell  ifconfig wlan0;

複製代碼

下面紅框標準的地方,就是設備的 IP 地址。

第二種是在手機操做,打開 設置-WLAN-配置 頁面,可看到當前 IP 。

拿到設備的 IP 後,使用 adb connect 命令鏈接電腦和手機。

以上就完成了整個過程,此時再次運行 adb devices 得出如下結果。沒有經過數據線,但成功的鏈接上了電腦和手機。

不一樣就是前面設備的惟一標識 APU7N16304003941,從 ADB 生成的隨機序列號變成了 IP:port 的具體網絡地址 192.168.0.126:5555

是否是很神奇?

實現原理

其實神奇的是無線通訊,一種利用電波信號能夠在自由空間中傳播的特性進行信息交換的通訊方式。固然這不是重點,是我在抖機靈,重點在於 ADB 的工做的方式和兩種鏈接模式。

在平常的開發過程當中,一直在使用着 ADB,可是不少人對它所知很少,例如我,如今你們來一塊兒簡單複習下吧。

ADB,是 Android Debug Bridge 的縮寫,中文翻譯爲 Android 調試橋,是一個通用命令行工具。在 android_sdk/platform-tools 中能夠找到它,它能夠被用來直接操做 Android 的各類設備。例如 APK 的安裝和卸載,查看手機已安裝應用的包名和簽名信息等等。

ADB 其實分爲三個部分:

  • 客戶端 adb client :運行在 PC 上。做用是發送命令,文章前面,咱們輸入的 adb 命令,就是在 client 環境下發送的。
  • 服務器 adb server :運行在 PC 上。做用管理客戶端和後臺程序之間的通訊。
  • 後臺程序 adbd :運行在 Android 設備上。之後臺服務的形式運行 adb server 發來的命令。

下面是三者關係的簡單示意圖:

ADB 支持兩種方式和 PC 進行鏈接通訊, USB 和 TCP/IP 。數據線鏈接使用的是 USB 方式,咱們此次介紹的 WIFI 鏈接使用的是 TCP/IP 方式。

手機上的 adbd 默認使用 USB 模式,若是要使用 WIFI 鏈接,須要手動打開 5555 監聽。所以,咱們有了上面 adb tcpip 5555;的這個操做步驟。

實際上,設置 5555 端口監聽,實質上是設置 adbd 中 service.adb.tcp.port 的值。當 adbd 啓動的時候,會先檢查這個值,若是設置了,就是使用 TCP/IP 做爲鏈接方式。若是沒設置,就選擇用 USB 做爲鏈接方式。

若是設備擁有 root 權限,能夠不用數據線,在手機上經過命令行設置聽說也是能夠的。手上沒有已經 root 的設備,無法實踐。大家條件知足,有興趣能夠嘗試一下。

使用的命令以下:

// adb shell 下面執行一下命令
setprop service.adb.tcp.port 5555
ps |grep adbd
kill -9 {adbd進程號}

複製代碼

好啦,結束!小夥伴們,趕忙試下這個方法,體驗從有線變無線的感受,很是棒棒噠。

偷偷告訴你,WIFI 方式能夠鏈接多臺手機呢,不再用怕電腦上的 USB 插口不夠用了。還能夠給測試妹紙的設備鏈接上開發電腦上,隨時安裝最新的 APK,也是成功地秀了一波操做!

好啦,咱們下篇文章見。喜歡不要忘記給做者點個贊,或者分享給你的小夥伴哦!

期待與你一塊兒成長

PS:

經過評論發現,文章中有幾個地方沒有描述清楚,這裏補充幾點:

  • 不是每次鏈接的時候,都須要插數據線,理論上只是第一次須要。

    文章中說到插數據線,是爲了設置端口,容許 WI-FI 調試。因此若是WI-FI 調試使用過程當中,鏈接斷掉,只須要再次使用 connect 命令就行了。

    爲何說理論上,由於評論中「設計師吳彥祖」同窗提出 「大部分國產手機可能會出現端口不是5555的狀況; 即便你設置成5555重啓手機後也會變回去; 」 這種狀況我暫時還沒遇到,可是遇到的同窗,須要從新鏈接數據線,設置端口號。

  • 關於耗電與充電
    看到這個問題,我深有體會。由於前幾天,發現測試機居然提示電量不足!,有線狀態下,沒電就自動補充了,測試機幾乎一直是滿電狀態,忽然被提示電量不足,的確意外。關於耗電與否,沒有準確數據評估,可是我以爲咱應該不差這點電吧。

    沒電了,咱就去充唄。

  • AS 能夠設置相似功能的插件 Android Studio 能夠設置相關插件,例如:ADB WIFI/ADB WIFI Connect 等,支持設置 WIFI 調試,原理沒研究過不太清楚,有GUI頁面供操做,使用起來很方便。看你們須要,喜歡用啥,就用啥,知足需求就能夠。

相關文章
相關標籤/搜索