使用PC的adb工具通过wifi(TCP方式)调试安卓设备

  • Post author:
  • Post category:其他



Part1准备工作:


一、


PC和安卓设备(手机或平板)都连上同一个WIFI,即两者都在同一个网段;


二、


保证在


PC上可以PING通安卓设备的IP;


三、


安卓设备也可以


PING一下电脑IP,在手机上安装工具FPing,使用这个工具PING电脑。如果ping不通,先检查一下是不是关闭了所有的电脑管家、杀毒软件、WINDOWS自身的防火墙(其实这一步可以省略);


四、


台式机可以买个无线网卡,笔者使用的是小米随身


WIFI:


(1)


电脑上下载小米随身WIFI软件,将随身WIFI插入电脑USB接口,弹出以下提示,默认为WIFI热点模式:

180443_GZZ6_563250.png


(2)


我们不需要将电脑设置为WIFI热点,而是需要将其作为一个普通无线网卡,因此将其切换到网卡模式,并点击开启:


180443_0adu_563250.png

180444_YTcY_563250.png


(3)


设置好之后,使用台式机连接WIFI,安卓设备(手机或平板)也连接同样的WIFI即可;


五、


输入命令,连接安卓设备,打开


CMD输入


Tips:除了电脑的adb工具,Android的一款APP

Better Terminal

也可以实现adb的所有功能,使用Better Terminal时,需要获取手机root权限,可在Better Terminal中输入su请求打开权限,再输入以下命令调试另一台Android设备,同样是通过tcp方式调试。


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


时,会出现以下提示:

180444_KuiN_563250.png


(2)


若没有USB线,可选择在安卓设备上输入命令,或使用上文提到的adbWireless工具。在安卓设备上安装adbWireless,安装时注意,始终允许adbWireless使用root权限,点击中间的按钮,当按钮变为绿色即表示已成功连接到安卓设备

180444_tQeq_563250.png


Tips:可以勾选Auto Start和Auto connection,让安卓设备每次启动,自动打开adbWireless并且自动连接上你的电脑。

180445_Mamk_563250.png


(3)


此时再输入


adb connect 172.25.69.189


,就可以成功连接到安卓设备了

180445_kIDz_563250.png


注意:需要打开“设置->系统->开发者选项->USB调试”设备连接时,注意查看设备是否弹出“允许USB调试吗?”对话框,点击允许,才能进行接下来的操作;


如果“允许USB调试吗?”弹不出来,可以关开一次adbWireless的开关,再次输入命令


adb connect 172.25.69.189


,弹出即可出现;


Part2操纵您的安卓设备:


(4)


准备工作完成后,就可以输入adb命令,无效操纵您的安卓设备啦!


(5)


使用命令


adb install e:/agg.apk


安装安卓软件,出现以下界面即安装成功

180445_6k12_563250.png


(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 server





adb 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


m


idir


:创建目录



r


mdir


:删除目录


两个命令都支持


-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


文本文件。


cat





concatenate


的简写,类似于


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地址


转载于:https://my.oschina.net/outcat/blog/631192