日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android手机用wifi连接adb调试的方法

發布時間:2025/3/8 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android手机用wifi连接adb调试的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.jianshu.com/p/dc6898380e38

0x0 前言

Android開發肯定要連接pc的adb進行調試,傳統的方法是用usb與pc進行連接,操作簡單即插即用,缺點是pc上必須得有對應手機的usb驅動程序,對于谷歌親兒子系列和三星摩托等外國品牌而言這不是什么問題,通常sdk里面就自帶了,然而想華為小米這種自帶魔改rom的國產貨就很難說了,通常需要安裝廠家自己出的usb驅動程序才能連接adb,然而一想到雷猴王的wps全家桶多么喪病我就不想在電腦上裝任何他家的東西。

當然后來有了更加先進的連接adb的方式——wifi連接。只需要敲入幾行命令開啟手機端的adb服務,pc端即可根據手機的ip地址進行adb連接,不用依賴驅動程序,所有品牌的手機都適用,唯一的前提條件是————

ROOT

我去,對Android開發者而言這也算個事?

下面就來介紹怎么使用這種連接方法。

0x1 手動輸入秘笈

首先在手機上安裝一個模擬shell的app,隨便是什么,能像linux的shell一樣執行命令行就可以。

秘笈很簡單:

su setprop service.adb.tcp.port 5555 stop adbd start adbd

第一行,和linux一樣獲取root權限,我剛才說過你的手機應該已經root了,否則這里會報錯。

第二行設置adb服務端口為5555,這是adb的默認端口。

第三行第四行,重啟adb服務。

如果執行到這里都沒有問題,那么用你覺得方便的方法獲取手機在無線網絡中的ip地址,比如最常見的192.168.0.100

到你的pc機上,打開cmd.exe或其他什么類似的東西,找到adb的存放的路徑,執行以下代碼

adb connect 192.168.0.100

如果你隨后看到

connected to 192.168.0.100

類似的字樣,說明已經連接成功了,你在Android Studio的Android Monitor窗口中應該就能看到你的手機了。

0x2 讓app自動輸入秘笈

在制作粗糙的模擬shell app里用手機觸摸屏上的軟鍵盤輸入了3次這種秘笈以后,我終于不能忍了。為什么不能一鍵讓程序自動替我們輸入這些命令呢?

于是現在我假設在某個布局文件中我們已經有了一個Button,名字叫btn_su,在某個Activity中我們加載了這個布局文件,并且綁定給一個Button對象btnSu

下面設置這個btnSu的點擊事件監聽器

btnSu.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { // TODO } });

在事件監聽器里面實現啟動adb服務的功能。

首先開啟一個具有root權限的進程:

Process localProcess = Runtime.getRuntime().exec("su");

打開該進程的輸入流

DataOutputStream os = new DataOutputStream(localProcess.getOutputStream());

向該輸入流中寫入如下字符串

os.writeBytes("setprop service.adb.tcp.port 5555\n"); os.writeBytes("stop adbd\n"); os.writeBytes("start adbd\n"); os.flush();

以上代碼相當于向一個具有root權限的shell中寫入如下命令

setprop service.adb.tcp.port 5555 stop adbd start adbd

下面為了更方便的連接電腦進行調試,順便就獲取一下手機的ip地址顯示在屏幕上:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); //判斷wifi是否開啟WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); String ip = intToIp(ipAddress);Toast.makeText(MainActivity.this, ip, Toast.LENGTH_LONG).show();

其中intToIp方法想必誰都會寫,這里就不貼出來了。

完整的監聽器onClick實現代碼如下:

@Override public void onClick(View v) { DataOutputStream os = null; try { Process localProcess = Runtime.getRuntime().exec("su"); os = new DataOutputStream(localProcess.getOutputStream()); os.writeBytes("setprop service.adb.tcp.port 5555\n"); os.writeBytes("stop adbd\n"); os.writeBytes("start adbd\n"); os.flush(); WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); //判斷wifi是否開啟 WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); String ip = intToIp(ipAddress); Toast.makeText(MainActivity.this, ip, Toast.LENGTH_LONG).show(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (os != null) { os.close(); } } catch (IOException e) { } } }

0x3 吐槽

阿里的價值觀到底是什么摸不太透,不過想來我這個玩意極大的提升操作效率豈不是對那些手敲命令行的人不公平,隱約覺得說起價值觀貌似也是分分鐘藥丸。幸好不在阿里工作,否則早就被叉出去了哈哈。




0x4 other

?也可以在手機上安裝豌豆莢app設置無線連接。

?

0x5 other2

1,? 確認本機PC 沒有任何adb 設備連接,包括模擬器和usb連接, 即 使用

“adb devices” 命令后, 列表顯示為空, 這個是為了后面敲命令容易一些

2,? 將遠程android設備接入wifi, 并查看其IP地址:設置—〉無線或網絡---〉WLAN設置—〉按menu鍵并選擇“高級”選項---〉IP 地址? 例如192.168.2.11

3,? 本機command 命令下執行 ping ?192.168.2.11, 如果ping成功,說明可以連接

4,? 執行 adb connect 192.168.2.11

如果顯示連接成功,則可繼續執行后面的操作;如果不成功,如顯示:

unable to connect to 192.168.2.11:5555

有可能是設備監聽端口的問題,則可以在手機終端執行如下命令:

su ?//獲取root權限

setprop service.adb.tcp.port?5555 ? //設置監聽的端口,端口可以自定義,如5554,5555是默認的

stop adbd ? //關閉adbd

start adbd ? //重新啟動adbd

手機終端的下載程序可以在這里下載:http://as.baidu.com/a/item?docid=437072506&f=web_alad_1

?

執行這個的前提是你手機可以root權限,如果沒有root權限仍然不能執行su

獲得root權限的方法很多,手機型號不同,獲取方法也有差別,網上很多方法,這里不再細述(對調試開發者,獲得root權限是非常必要的)

?

5, ?adb connect ip 成功以后可以執行原來usb連接時的所有命令,如adb install, adb logcat等。

?

下面附上adb的常用命令:

?

1,? 開啟adb ?服務

adb start-server

2,? 關閉adb 服務

adb kill-server

3,? 查看設備

adb devices

4,? 安裝軟件

adb install xxx.apk

5,? 卸載軟件

adb uninstall xxx.apk

6,? 進入設備或模擬器

adb shell ?devicename

如果當前只有一個設備,devicename也可以為空

7,? 從電腦上發送文件到設備

adb push? PCfilepath?devicepath

8,? 從設備上copy文件到電腦

adb pull devicepath? PCpath

9,? 查看bug報告

adb bugreport

10, 獲得設備序列ID

adb get-product

11, 查看log

adb logcat

轉載于:https://www.cnblogs.com/shengs/p/10177801.html

總結

以上是生活随笔為你收集整理的Android手机用wifi连接adb调试的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。