Adb简述
adb:adb的全称为Android Debug Bridge,就是起到调试桥的作用。借助adb工具,我们可以手机管理设备或模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
Apk:APK是Android Package的缩写,即Android安装包,APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。把android sdk编译的工程打包成一个安装程序文件,格式为apk。
Adb主要功能:
- 运行android设备的shell指令
- 管理模拟器或android设备的端口映射
- 安装和卸载apk程序
- 计算机和Android设备之间上传和下载文件
很显然:它就是一个命令行窗口,用于通过电脑与模拟器或真实设备交互。
包括:
- 电脑上运行的客户端
- 用于开发的机器上作为后台进程运行的服务器
- 后台进程形式运行于模拟器或设备上的守护程序。
Adb的指令及用法
1、关闭和启动adb服务
adb start-server
adb kill-server
2、查看设备的连接情况
adb devices
//输出
list of devices attached
emulator-5554 offline emulator-5556 device emulator-5558 device
3、安装和卸载APk
adb install <apk文件路径>//将指定的apk文件安装到设备上
adb uninstall <软件名>//卸载设备上的程序包,如com.tencent.mm
adb uninstall -k <软件名>//卸载程序但是保留其配置和缓存文件
com.tencent.moileqq//qq的包名
4、指定设备进行操作
当有多个设备连接时,可以用下面的命令来直接执行命令的设备
adb [-d|-e|-s<serial Number>]<command>
- d:真机(多个设备中只有一个真机时适用)
- e:模拟器(多个设备中只有一个模拟器时适用)
- s:序列号
例如:
adb -d install helloWorld.apk
adb -s emulator-5556 install helloWorld.apk
5、列出设备上的程序包
adb shell pm list packages
删除微信APP
adb uninstall com.tencent.mm
6、上传和下载文件
adb push <本地路径> <远程路径>
例如,把pc文件或文件夹上传到设备sdcard
adb push xxx.txt /sdcard/xxx.txt //sdcard是设备文件或目录
2、adb pull <远程路径> <本地路径>
例如,把设备sdcard下文件或文件夹下载到pc上D盘
adb pull system/app shell D\
演示步骤:
1.打开cmd,输入
adb shell//然后进入
cd data/app
2.可以看到后缀为.apk的文件
3.新打开一个cmd,输入
adb pull /data/app/com.tencent.mobileqq-1.apk D:\
4.在D盘上可以看到后缀为.apk的文件
7、日志Ligcat的操作
日志Logcat的操作(熟练掌握)
adb logcat //在命令行中显示调试信息
adb logcat > 文件名 //将logcat信息保存在文件中
控制日志格式
- 日志消息在标记和优先级之外还有很多元数据字段,这些字段可以通过修改输出格式来控制输出结果,
-v选项加上下面列出的内容可以控制输出字段,比如
adb logcat -v thread
- brief — 显示优先级/标记和原始进程的PID (默认格式)
- process — 仅显示进程PID
- tag — 仅显示优先级/标记
- thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段 - time — 显示日期,调用时间,优先级/标记,PID
- long —显示所有的元数据字段并且用空行分隔消息内容
日志等级,每一条日志记录都有一个等级的
V:所有的信息都打印
D:debug调试信息
I: Information,信息
W:warning,警告,编译器认为你可能有问题;实际上可能没问题
E:error,错误
F: fatal,致命的
S:静默的,啥也不打印到日志
#通过分析,v、s没啥用,D、I、W对我们测试人员来说用处也不大,需要过滤掉
adb logcat -v time *:W > e:\log1.txt
8、包名的获取*******
获取包名和活动页:
adb shell dumpsys window | findstr mCurrentFocus
9、其它命令
其他命令
- android 启动SDK管理器
- adb bugreport 查看bug报告
- adb get-serialno 获取设备的序列号
- adb root 获得Root权限
- adb remount 将system分区从只读变成可读可写(需要ROOT权限)
- android list targets 显示系统内所有的android平台
- android list avd 显示系统中所有模拟器
- ddms 启动ddms
- adb reboot 重启
- dmesg 打印出内核的调试信息
adb shell 挂载到Linux的空间 root:
将adb指令挂载到Android的底层Linux下
adb shell top: 获取linux下运行系统进程