ADB全称 Android Debug Bridge,是Android SDK里自带的一个调试工具,用这个工具可以直接操作管理Android设备或模拟器。
我们主要用到的功能:
1)运行设备的shell命令
2)管理模拟器或设备的端口映射
3)计算机和设备之间上传下载文件
4)将本地apk软件安装到模拟器或Android设备上
ADB是一个客户端--服务端的程序,客户端是用来操作的计算机,服务端是Android设备。想要使用ADB,需要先打开手机中的adb调试功能。步骤:设置-开发人员选项-adb调试。(没有开发人员选项的需在设置-版本信息中,连续点击android版本或者手机生产商开发的第三方版本信息,小米手机可能需要插入sim卡才能使用此功能)。
2.常用命令
1)查看设备 adb devices 显示当前连接到计算机的所有android设备,包括模拟器
adb -s d34df9ff shell
2)安装软件 adb install <apk文件路径> 将制定的apk安装到手机上 例:adb install D://aa.apk adb install -r <apk文件路径> 强制覆盖安装,保留原先的数据根缓存文件3)卸载软件 adb uninstall <软件包名> adb uninstall -k <软件包名> 加参数-k卸载软件但保留软件产生的配置和数据缓存
这里需要注意的是安装时后边是跟的.apk文件,卸载时是软件的包名
4)登录设备 adb shelladb shell <Command命令> 加<Command命令>将是直接运行设备命令,相当于执行远程命令。
例:adb shell ls 列出当前位置所有的文件 先adb shell连接设备然后ls同样的效果
adb shell devicename 连接到指定的设备,只有一台设备 devicename可为空
5)从计算机复制文件到设备 adb push <本地计算机文件路径> <远程android手机存储文件路径>
6)从设备上下载文件到计算机 adb pull <远程android设备文件所在路径> <本地计算机文件存储路径>
7)显示帮助信息 adb help
8)连接设备 adb connect <设备ip> 实现wifi下不用usb连接设备
1.确认本机pc没有任何adb设备连接,包括usb和模拟器,即使用 adb devices 命令后列表显示为空,这个是为后边敲代码容易些
2. 将android手机接入wifi并查看ip:设置——>无线网络——>wlan设置——>高级选项——>IP地址 如192.168.2.11
3.本机command命令下执行 ping 192.168.2.11 如果ping成功,说明可以连接
4.执行adb connect 192.168.2.11
如果显示连接成功,则可继续执行后面的操作;如果不成功,如显示:
unadble to connect to 192.168.2.11:5555
有可能是设备监听端口的问题,则可以在手机终端执行如下命令:
setprop service.adb.tcp.port 5555 //设置监听的端口,端口可以自定义 如5554,5555是默认的
stop adbd //关闭adb
start adbd //重新启动adb
执行这个的前提:手机可以获取root权限
9)断开当前连接 adb kill-server
10)列出手机中所有包名:adb shell pm list packages 系统应用的包名 adb shell pm list packages -s 第三方应用的包名 adb shell pm list packages -3
11)启动应用 adb shell am start -n <应用包名>
12)关闭应用 adb shell am force-stop <应用包名>
13)杀死某个进程 adb shell
ps
kill pid
ps是查看进程命令,kill pid 是想要结束掉的进程
14)获取文件读写权限 adb remount (有些设备不能直接使用,需要先获取root权限)
15)查看屏幕分辨率 adb shell wm size
16)monkey 测试 adb shell monkey -v -p <应用包名>
17)adb logcat 此处可参考http://blog.csdn.net/liao277218962/article/details/50129009
输入命令 adb logcat -help 就会在控制台显示logcat的帮助信息,此处列几个比较实用的
(1)adb logcat -s <TAG> 显示该tag下的日志(感觉最实用)
adb logcat -s AndroidRuntime 输出当前报错日志(包含缓存日志)
(2)adb logcat -c 清空日志缓存信息
(3)adb logcat -v tag tag格式:“优先级/标签:日志信息”
-v thread "优先级(进程ID:线程ID)标签:日志内容"
-v raw 只输出日志信息,不附加其他任何信息
-v time 日期 时间 优先级/标签(进程ID):进程名称:日志信息
-v long 日期 时间 进程ID:线程ID 优先级/标签 :日志信息 输出以上提到的所有头信息
(4)adb logcat | grep <关键字> 过滤固定字符串,不管是不是标签
adb logcat | grep -i <关键字> 忽略大小写
adb logcat | grep --color=auto -i <关键字> 设置匹配字符串的颜色
18)adb shell screencap /sdcard/sc.png 手机截屏并保存到sdcard下
19)adb shell screenrecord /sdcard/demo.mp4 手机录制屏幕,最多180秒 结束 control+c 华为手机貌似没此功能
20)adb shell cat /data/misc/wifi/*.conf 查看手机保存的wifi帐号信息 需要root
21)adb shell rename path/oldname path/newname 重命名文件
22)adb shell kill pidNumber杀掉某个进程(常用于某个bug的复现)
23)adb shell dumpsys meminfo <packageName|pidNumber> 查看某个进程所占内存
经验分享
有时我们可能不喜欢ROM中自带的一些应用,想把它卸载掉。但是android系统并没有卸载ROM自带软件的功能,这个时候也可以使用adb来卸载这些软件,步骤如下:
1)先要取得手机root权限
2)下载Android_db.rar,解压到%windir/%System32下
3)手机连接数据线,在计算机上打开cmd,然后输入命令:
adb remount
adb shell
su
执行完成后,则看到:
* daemon not running。 staring it now *
* daemon started successfully *
4)接着就是Linux命令模式了,输入:
cd system/app
则发现没什么变化,然后输入ls 回车
这时候列表显示了 system/app 里面所有的文件,也就是ROM集成的一些软件了。
5)删除命令 rm 文件名称
另外,需要特别注意的是,对于那些并不了解的文件,请不要随意的删除,避免手机出现问题。