使用PC的adb工具經過wifi(TCP方式)調試安卓設備

Part1準備工做:linux

1、PC和安卓設備(手機或平板)都連上同一個WIFI,即二者都在同一個網段;android

2、保證在PC上能夠PING通安卓設備的IP;shell

3、安卓設備也能夠PING一下電腦IP,在手機上安裝工具FPing,使用這個工具PING電腦。若是ping不通,先檢查一下是否是關閉了全部的電腦管家、殺毒軟件、WINDOWS自身的防火牆(其實這一步能夠省略);瀏覽器

4、臺式機能夠買個無線網卡,筆者使用的是小米隨身WIFI:緩存

(1)電腦上下載小米隨身WIFI軟件,將隨身WIFI插入電腦USB接口,彈出如下提示,默認爲WIFI熱點模式:網絡

 

(2)咱們不須要將電腦設置爲WIFI熱點,而是須要將其做爲一個普通無線網卡,所以將其切換到網卡模式,並點擊開啓:app

 

 

(3)設置好以後,使用臺式機鏈接WIFI,安卓設備(手機或平板)也鏈接一樣的WIFI便可;less

5、輸入命令,鏈接安卓設備,打開CMD輸入tcp

 

Tips:除了電腦的adb工具,Android的一款APP Better Terminal也能夠實現adb的全部功能,使用Better Terminal時,須要獲取手機root權限,可在Better Terminal中輸入su請求打開權限,再輸入如下命令調試另外一臺Android設備,一樣是經過tcp方式調試。ide

adb tcpip 5555

/*切換到無線鏈接方式,使用USB鏈接設備時輸入,拔掉USB鏈接線該命令沒做用*/

adb connect 172.25.69.189

/*鏈接安卓設備*/

adb usb

/*可經過該命令切換回usb方式,使用USB鏈接設備時輸入,拔掉USB鏈接線該命令沒做用*/

setprop service.adb.tcp.port 5555

stop adbd

start adbd

 

/*若是沒法經過usb方式鏈接,好比由於沒有驅動或沒有數據線,那麼能夠在安卓設備(手機或平板)上執行以上命令,切換到無線鏈接方式(設置adb的tcp端口爲5555,重啓Android設備上的adbd進程,讓設置生效),注意此方式須要root權限*/

setprop service.adb.tcp.port -1

stop adbd

start adbd

 

/*若是沒法經過usb方式鏈接,經過以上命令切換回usb方式(釋放tcp佔用的端口,adbd將會監聽usb)*/

Tips:有一些第三方工具,把須要在安卓設備上執行的命令作成了app,只要點一個按鈕,就能夠完成切換。好比adbWireless。此工具一樣須要root權限。

(1)未切換到無線鏈接方式,時輸入adb connect 172.25.69.189時,會出現如下提示:

 

(2)若沒有USB線,可選擇在安卓設備上輸入命令,或使用上文提到的adbWireless工具。在安卓設備上安裝adbWireless,安裝時注意,始終容許adbWireless使用root權限,點擊中間的按鈕,當按鈕變爲綠色即表示已成功鏈接到安卓設備

 

Tips:能夠勾選Auto Start和Auto connection,讓安卓設備每次啓動,自動打開adbWireless而且自動鏈接上你的電腦。

 

(3)此時再輸入adb connect 172.25.69.189,就能夠成功鏈接到安卓設備了

 

注意:須要打開「設置->系統->開發者選項->USB調試」設備鏈接時,注意查看設備是否彈出「容許USB調試嗎?」對話框,點擊容許,才能進行接下來的操做;

若是「容許USB調試嗎?」彈不出來,能夠關開一次adbWireless的開關,再次輸入命令adb connect 172.25.69.189,彈出便可出現;

Part2操縱您的安卓設備:

(4)準備工做完成後,就能夠輸入adb命令,無效操縱您的安卓設備啦!

(5)使用命令adb install e:/agg.apk安裝安卓軟件,出現如下界面即安裝成功

 

(6)使用命令adb uninstall com.agg.biangui卸載安卓軟件,出現Success即卸載成功

注意:adb uninstall 後邊的參數不該該是XXX.apk文件名,而是包名,即AndroidMainifest.xml文件中<manifest>節點下,package元素所指定的名字,com.agg.biangui即爲agg.apk的包名

(7)斷開鏈接,使用命令adb disconnect

(8)若adb服務出現異常,能夠重啓adb服務,使用adb stop serveradb start server;

 

附錄1:adb介紹

adb是什麼?:Android Debug Bridge,就是起到調試橋的做用。經過adb咱們能夠在Eclipse中方便經過DDMS來調試Android程序,說白了就是debug工具。 adb的工做方式比較特殊,採用監聽Socket TCP 5554等端口的方式讓IDE和Qemu通信,默認狀況下adb會daemon相關的網絡端口,因此當咱們運行Eclipse時adb進程就會自動運行。

adb有什麼用?:藉助adb工具,咱們能夠管理設備或手機模擬器的狀態。還能夠進行不少手機操做,如安裝軟件、系統升級、運行shell命令等等。其實簡而言說,adb就是鏈接Android手機與PC端的橋樑,可讓用戶在電腦上對手機進行全面的操做。

(1)查看設備:adb devices

這個命令是查看當前鏈接的設備, 鏈接到計算機的android設備或者模擬器將會列出顯示

(2)安裝軟件:adb install

adb install <apk文件路徑> :這個命令將指定的apk文件安裝到設備上

(3)卸載軟件

adb uninstall <軟件名>

adb uninstall -k <軟件名>

若是加 -k 參數,爲卸載軟件可是保留配置和緩存文件.

(4)進入設備或模擬器的shell:adb shell

經過上面的命令,就能夠進入設備或模擬器的shell環境中,在這個Linux Shell中,你能夠執行各類Linux的命令,另外若是隻想執行一條shell命令,能夠採用如下的方式:

adb shell [command]

如:adb shell dmesg會打印出內核的調試信息。

(5)發佈端口

能夠設置任意的端口號,作爲主機向模擬器或設備的請求端口。如:

adb forward tcp:5555 tcp:8000

(6)從電腦上發送文件到設備

adb push <本地路徑> <遠程路徑>

用push命令能夠把本機電腦上的文件或者文件夾複製到設備(手機)

(7)從設備上下載文件到電腦

adb pull <遠程路徑> <本地路徑>

用pull命令能夠把設備(手機)上的文件或者文件夾複製到本機電腦

(8)查看bug報告

adb bugreport

(9)記錄無線通信日誌

通常來講,無線通信的日誌很是多,在運行時不必去記錄,但咱們仍是能夠經過命令,設置記錄:

adb shell

logcat -b radio

(10)獲取設備的ID和序列號

adb get-product

adb get-serialno

(11)重啓手機:adb reboot

(12) 終止adb服務進程:adb kill-server

(13)啓動abd服務進程:adb start-server

(14) 以root權限重啓adb服務:adb root

附錄2:經常使用的shell命令

注:沒有在shell模式下,需加上前綴adb shell

(1)ls: 相似於dos下的dir命令

ls最經常使用的參數有三個: -a -l -F

ls –a

Linux上的文件以.開頭的文件被系統視爲隱藏文件,僅用ls命令是看不到他們的,而用ls -a除了顯示通常文件名外,連隱藏文件也會顯示出來。

ls –l

該參數顯示更詳細的文件信息。

ls –F

使用這個參數表示在文件的後面多添加表示文件類型的符號,例如*表示可執行,/表示目錄,@表示連結文件,這都是由於使用了-F這個參數。可是如今基本上全部的Linux發行版本的ls都已經內建了-F參數,也就是說,不用輸入這個參數,咱們也能看到各類分辨符號。

例:在adb下使用shell命令查看sd卡下的文件列表,顯示文件最後更改時間

adb shell su -c "ls -l /sdcard"

(2)cd: 用於切換用戶當前工做目錄

cd aaa  進入aaa目錄

cd      命令後不指定目錄,會切換到當前用戶的home 目錄

cd ~    做用同cd後不指定目錄,切換到當前用戶的home 目錄

cd -    命令後跟一個減號,則會退回到切換前的目錄

cd ..   返回到當前目錄下的上一級目錄

(3)pwd:用於顯示用戶當前工做目錄

(4)mkdir  rmdir

midir:建立目錄     

rmdir:刪除目錄

兩個命令都支持-p參數,對於mkdir命令若指定路徑的父目錄不存在則一併建立,對於rmdir命令則刪除指定路徑的全部層次目錄,若是文件夾裏有內容,則不能用rmdir命令

以下:

mkdir -p 1/2/3

rmdir -p 1/2/3 

 (5)cp:複製命令

複製一個文件到另外一目錄:cp 1.txt ../test2

複製一個文件到本目錄並更名:cp 1.txt 2.txt

複製一個文件夾a並更名爲b:cp -r a b

(6)mv:移動命令

將一個文件移動到另外一個目錄:mv 1.txt ../test1

將一個文件在本目錄更名:mv 1.txt 2.txt

將一個文件必定到另外一個目錄並更名:mv 1.txt ../test1/2.txt

(7)rm命令

rm命令用於刪除文件,與dos下的del/erase命令類似,rm命令經常使用的參數有三個:-i,-r,-f。

–i :系統在刪除文件以前會先詢問確認,用戶回車以後,文件纔會真的被刪除。須要注意,linux下刪除的文件是不能恢復的,刪除以前必定要謹慎確認。

–r:該參數支持目錄刪除,功能和rmdir命令類似。

–f:和-i參數相反,-f表示強制刪除

(8)du、df命令

du命令能夠顯示目前的目錄所佔用的磁盤空間,df命令能夠顯示目前磁盤剩餘空間。

若是du命令不加任何參數,那麼返回的是整個磁盤的使用狀況,若是後面加了目錄的話,就是這個目錄在磁盤上的使用狀況。

du -hs 指定目錄  查看指定目錄的總大小

du -hs ./* 查看當前目錄下的全部文件夾和文件的大小

這兩個命令都支持-k,-m和-h參數,-k和-m相似,都表示顯示單位,一個是k字節一個是兆字節,-h則表示human-readable,即友好可讀的顯示方式。

(9)cat命令

cat命令的功能是顯示或連結通常的ascii文本文件。catconcatenate的簡寫,相似於dos下面的type命令。用法以下:

cat file1 顯示file1文件內容

cat file1 file2 依次顯示file1,file2的內容

cat file1 file2 > file3 file1, file2的內容結合起來,再重定向(>file3文件中。

">"是右重定向符,表示將左邊命令結果當成右邊命令的輸入,注意:若是右側文件是一個已存在文件,其原有內容將會被清空,而變成左側命令輸出內容。若是但願以追加方式寫入,請改用">>"重定向符。

若是">"左邊沒有指定文件,如: cat >file1,將會等用戶輸入,輸入完畢後再按[Ctrl]+[c][Ctrl]+[d],就會將用戶的輸入內容寫入file1

(10)am命令

在Android中,除了從界面上啓動程序以外,還能夠從命令行啓動程序,使用的是命令行工具am,用法以下:

am start -n {包(package)名}/{包名}.{活動(activity)名稱}

Settings(系統設置)的啓動方法爲:

am start -n com.android.settings/.Settings

SettingsMbox(系統快速設置)的啓動方法爲:

am start -n com.mbx.settingsmbox/.SettingsMboxActivity

calendar(日曆)的啓動方法爲:

am start -n com.android.calendar/com.android.calendar.LaunchActivity

AlarmClock(鬧鐘)的啓動方法爲:

am start -n com.android.alarmclock/com.android.alarmclock.AlarmClock

Music 和 Video(音樂和視頻)的啓動方法爲:

am start -n com.android.music/com.android.music.MusicBrowserActivity

am start -n com.android.music/com.android.music.VideoBrowserActivity

am start -n com.android.music/com.android.music.MediaPlaybackActivity

Camera(照相機)的啓動方法爲:

am start -n com.android.camera/com.android.camera.Camera

Browser(瀏覽器)的啓動方法爲:

am start -n com.android.browser/com.android.browser.BrowserActivity

(11)netcfg命令

查看設備的ip地址

相關文章
相關標籤/搜索