文档章节

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

outcat
 outcat
发布于 2016/03/04 18:07
字数 3150
阅读 992
收藏 1
点赞 1
评论 0

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

 

© 著作权归作者所有

共有 人打赏支持
outcat
粉丝 10
博文 15
码字总数 15036
作品 0
武汉
Android--adb快速使用技巧

前言: 首先,我们来了解下adb是什么。 adb工具即Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者真是设备交互。在某些特殊的情况下进入不了系...

DP文剑平 ⋅ 05/22 ⋅ 0

React Native在Android当中实践(五)——常见问题

React Native在Android当中实践(一)——背景介绍 React Native在Android当中实践(二)——搭建开发环境 React Native在Android当中实践(三)——集成到Android项目当中 React Native在A...

YangZC ⋅ 05/28 ⋅ 0

BUF早餐铺 大量安卓设备调试端口暴露;以太坊再爆安全漏洞;一加 6 系统存在重大漏洞;北京检方发布《网络安全刑事司法保护白皮书》

     五月榴花妖艳烘,绿杨带雨垂垂重。五色新丝缠角粽~      各位 Buffer 早上好,今天是 6 月 13 日星期三,农历四月三十。今天份的BUF 早餐内容主要有:大量安卓设备的调试端口暴...

FreeBuf ⋅ 06/13 ⋅ 0

【转载】Android 工具-adb原理

Android 开发中, adb 是开发者经常使用的工具,是 Android 开发者必须掌握的。 Android Debug Bridge,Android 调试桥接器,简称 adb ,该工具位于 目录下,其源码位于 目录下,是用于管理模...

beijing_zbs ⋅ 2016/09/25 ⋅ 0

android socket各种通信

我已经试验成功: ps:模拟器做服务器,PC机做客户端。如果通过wifi连接的话直接访问IP就行,不用重定向。 PC访问模拟器用localhost即127.0.0.1, 模拟器 访问 模拟器用10.0.2.2 本人已成功运...

buleberry ⋅ 2014/04/01 ⋅ 0

Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇

adb 常用命令 获取连接设备号:adb devices 列出设备所有已安装的包名 (不需root权限) adb shell “pm list packages”,可以加上grep 进行筛选(windows系统使用findstr /i "xxxx" 或者 fi...

某杰 ⋅ 05/14 ⋅ 0

AndroidStudio常用DBShell命令总结

做了两年安卓开发,Androidstudio这个开发工具有一些快捷键还是挺熟练的,平常用得上的shell命令,现在我也做一下总结,总有用的: 显示系统中全部Android平台: android list targets 显示系...

大二架构师 ⋅ 05/11 ⋅ 0

adb调试工具

adb调试工具 adb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作: 1、快速更新设备或手机模拟器中的代...

lnredone ⋅ 2016/12/12 ⋅ 0

Android的常用adb命令

[Android]Android的常用adb命令 第一部分: 1. ubuntu下配置环境anroid变量: 在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#set android environment 2. 运行Eclipse,还...

mutouzhang ⋅ 2014/03/13 ⋅ 0

adb操作命令详解及大全

adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听S...

286090326 ⋅ 2017/03/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部