使用PC的adb工具通过wifi(TCP方式)调试安卓设备
Part1准备工作:
一、PC和安卓设备(手机或平板)都连上同一个WIFI,即两者都在同一个网段;
二、保证在PC上可以PING通安卓设备的IP;
三、安卓设备也可以PING一下电脑IP,在手机上安装工具FPing,使用这个工具PING电脑。如果ping不通,先检查一下是不是关闭了所有的电脑管家、杀毒软件、WINDOWS自身的防火墙(其实这一步可以省略);
四、台式机可以买个无线网卡,笔者使用的是小米随身WIFI:
(1)电脑上下载小米随身WIFI软件,将随身WIFI插入电脑USB接口,弹出以下提示,默认为WIFI热点模式:
(2)我们不需要将电脑设置为WIFI热点,而是需要将其作为一个普通无线网卡,因此将其切换到网卡模式,并点击开启:
(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时,会出现以下提示:
(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 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
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文本文件。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