一、前言
这段时间一直在忙啊忙,公司要做机顶盒,没有人做过,无奈之下只能边研究边做,经过一个多月的时间,测试版本终于出来了。
二、简介
今天给大家介绍下使用adb命令无线调试调试安卓应用,那有些人肯定会问,无线调试有啥用啊,连着线调试挺好的。那如果线坏了那,你会说在换一个,那如果电脑usb插口坏了那,当然可以换个电脑,哈哈 ,换电脑的都是真土豪。。。。。。还有有一些android的设备只能使用公对公的usb插口,而公司没有那种数据线,这个时候,我们高大上的无线调试就派上用场了。。。。。。。
三、开启无线调试
android设备是否默认开启了端口号5555,如果开启了默认端口号:直接在androidStudio ------》Terminal中使用命令adb connect android设备ip 这时候就会显示 connected to ip:5555 ,就可以建立连接,例如(adb connect 192.168.0.123)
现在我们就连接上了安卓设备,第一个设备是tv模拟器,第二个就是我连接是设备,android机顶盒,如下图
如果想要断开连接,只需要使用adb disconnect ip地址就可以了
当然,并不是所有设备都会开启端口号的,如果没有开启adb,也有两种方法:
第一种:
- 使用数据线通过USB接口将手机与电脑连接,执行如下命令:
adb tcpip 5555
(5555是端口号,可以随意地指定)
执行完这句话之后,我们就可以断开数据线了 - 找到手机的IP地址,然后执行命令:
adb connect 192.168.0.123
第二种:没有数据线,没办法连接数据线开启adb,
在手机上下载一个android模拟器, 然后切到root权限, 执行命令打开adb服务:
setprop service.adb.tcp.port 5555
stop adbd
start adbd
然后adb就可以连接手机了
四、adb命令
上面说了android无线调试,用到了adb命令,不过只说了两个,好像还远远不够,今天就说下常用的adb命令
简介
adb全称为Android Debug Bridge,他是一个命令行工具,一般存放于sdk目录下的platform-tool文件夹里。利用adb可以实现PC和android设备的交互。合理使用adb可以大大提高效率。
常见adb 命令
-
adbconnect 192.168.0.124 链接设备
-
adbdisconnect 192.168.0.124 断开设备
-
adbkill-service 关闭adb服务
-
adb start-service 打开adb服务
-
adb devices 查看设备
-
adb install 安装软件(adb install《apk全路径文件名》这个命令将指定的apk文件安装到设备上)
-
adb uninstall 卸载软件(adb uninstall 《软件名》 adb uninstall -k《软件名》 加-k参数,)
-
adb install -r [apk 安装包所在路径(如:d:\a.apk)] 将对应路径的apk安装包强制(覆盖)安装到机顶盒
-
adb reboot 重启
-
adb get-serialno 获取序列号
-
adb devices 获取设备列表及设备状态
-
adb get-state 获取设备的状态(设备正常连接device 设备无响应offline 没有连接unknown)
-
adb logcat 打印android的系统日志
-
adb bugreport 打印dumpsys,dumpstate,logcat的输出,用于分析错误
-
adb pull 将android设备上的文件或文件夹复制到本地
-
- 例如复制Sdcard下的pull.txt文件到D盘:adb pull sdcard/pull.txt d:\
-
- 如果需要重命名为rename.txt:adb pull sdcard/pull.txt d:\rename.txt
注意权限,复制系统权限的目录下的文件,需要root,并且一般的Android机root之后并不能使用命令去复制,而需要在手机上使用类似于RE的文件浏览器,先对系统的文件系统进行挂载为可读写后,才能在手机上复制移动系统文件
- adb push推送本地文件至Android设备
如推送D盘下的push.txt至Sdcard:adbpush d:\push.txt sdcard/
sdcard后面的斜杠不能少,否则会出现下面的错误:
[xuxu:~]$ adb push push.txt sdcard failed to copy 'push.txt' to 'sdcard': Is a directory
权限问题同拉命令
- adb forward,将宿主机上的某个端口重定向到设备的某个端口adb forward tcp:1314 tcp :8888
执行该命令后所有发往宿主机1314端口的消息,数据都会转发到Android设备的8888端口上,因此可以通过远程的方式控制Android设备。
五、adb shell命令
- adb shell 进入系统目录(通过 exit 退出)
- adb shell pm list packages 列出系统应用的所有包名
- adb shell pm listpackages –s列出除了系统应用的第三方应用包名
- adb shell pm listpackages -3使用 grep来过滤
- adb shell pm listpackages | grep qq 清除应用数据与缓存
- adb shell pm clear有些时候我们测试需要清除数据与缓存,则需要用到如下命令:adb shell am start -n com.stormzhang.demo/.ui.SplashActivity 如果我们想要通过 adb 来启动应用
- adb shell am force-stop 强制停止应用
- Adb shall cat /proc/cpuinfo 获取CPU序列号
- Adb shell top查看设备cpu和内存占用情况
- Adb shell top –m 6查看占用内存前6的app
- Adb shell top –n 1刷新一次内存信息,然后返回
- Adb shell procrank查看各进程内存使用情况
- Adb shell kill [pid]杀死一个进程
- Adb shell ps 查看进程列表
- Adb shell ps –x【pid】 查看指定进程状态
- Adb shell service list查看后台services信息
- adb shell cat /sys/class/net/wlan0/address 获取 MAC 地址
- adb shell getprop ro.product.model 查看设备型号
- adb shell getprop ro.build.version.release 查看 Android 系统版本
- adb shell wm size 查看屏幕分辨率
- adb shell wm density 查看屏幕密度
- adb shell am start -n [包名]/[包名+类名] 启动指定类名的Activity
- adb shell input text **** 在已经获取焦点的EditText中输入内容
- adb shell ps 查看当前终端中的进程信息