前言
adb(Android Debug Bridge),安卓平台调试桥,是连接Android手机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行shell命令等。
实际上,我都是边查边用的,但是最好还是记住。这样在领导面前,不用那么尴尬的当面查!
如果有更好的命令,欢迎大家指出,共同交流,共同进步
欢迎大家留言,留下你最常用的adb命令
adb实际开发中事
【如果不想看废话,可直接点击目录,adb命令总结】
最近的项目涉及到车机,Tv端,小屏(手机,pad) 端,很多,开发过程中使用了很多adb命令。
刚入手项目,你编译一个app然后运行,需要安装到车机上或者其他端上,
如果没有usb线或者设备只能wifi链接怎么办?
// 先查ip吧,查的是设备的内网地址
adb shell ifconfig 或 adb shell ifconfig wlan0
如果都不行,直接手动查询设备吧
// 连接ip,即可使用设备了,需要注意别忘了端口号
adb connect 192.168.0.1:5555
你现在已经连上了设备,那你就要装app了
// 安装apk
adb install -r -d xxxx.apk
// 卸载apk
adb uninstall xxxx.apk
如果你想查看当前设备安装的所有的包名
adb shell pm list packages
如果你只想看第三方的包名
adb shell pm list packages -3
如果你想过滤包名或者查找某个包
adb shell pm list packages | grep 【关键词】
如果你还想查这个包的安装路径
adb shell pm list packages -f 【包名】
打开app,你可能不知道当前这个页面是哪个Activity?或者是哪个fragment?
// 查看当前activity
adb shell dumpsys window | grep mCurrentFocus
adb shell dumpsys activity activities | grep ResumedActivity
// 查看当前fragment 【通过查询当前activity获得的包名/activity】
adb shell dumpsys activity 【com.xx.xx.xxx/.xx.xxxactivity】
现在你可以通过命令打开指定app的某个activity
//打开指定app的某个activity 当然前提是有权限的
adb shell am start -n com.xxxxx.client/com.xxxx.client.MainActivity
现在页面打开了,为了应对各种屏幕,我们还要获取当前的屏幕尺寸
// 获取当前屏幕的宽高,像素是px
adb shell wm size
// 获取当前像素密度
adb shell wm density
我们知道在手机上可以通过开发者模式打开布局绘制
但在车机上,我们可能无非直接使用开发者工具来查看布局绘制,开启或者关闭需要重启app
// 打开布局绘制
adb shell setprop debug.layout true
// 布局绘制
adb shell setprop debug.layout false
至此,你就开始着手开发了。
遇到问题,我们会debug,也要会抓日志分析,因为并不是所有设备你都能通过as活动Log的比如车机。
// 先清一波本地缓存
adb logcat -c
// 抓取日志,"control+c",结束抓取。
adb logcat -v time >./xxx.log
bug处理差不多了,app的性能需要分析吧
// 通过包名获取当前的进程号
adb shell ps | grep com.xxx.xxx.xxxx
分析当前端口号占用
adb shell top -p 【查询到的进程号】
分析出来的内容,就交给gpt帮你分析吧
当前也可以用指定的命令来进行查询:
// 查询内存信息
adb shell dumpsys meminfo 【包名】
// 查询cpu信息
adb shell dumpsys cpuinfo | 【包名】
看到了cpu,内存的占用情况,然后再排查一下冷启动等方面的问题吧
adb shell am start -W 【包名】
好了,以上是我最近开发用到的所有adb命令了。
另外还有appt 查看当前apk的注册文件的权限列表
aapt dump permissions 【包名】
ADB命令总结
连接设备
查找设备的内网地址:
adb shell ifconfig
adb shell ifconfig wlan0
手动查询设备IP地址
连接设备(注意端口号):
adb connect 192.168.0.1:5555
安装与卸载应用
安装APK:
adb install -r -d xxxx.apk
卸载APK:
adb uninstall xxxx.apk
查看设备安装的包名
查看当前设备安装的所有包名:
adb shell pm list packages
查看第三方的包名:
adb shell pm list packages -3
过滤包名或查找某个包:
adb shell pm list packages | grep 【包名中的关键词】
查询包的安装路径:
adb shell pm list packages -f 【包名】
查看当前页面的Activity和Fragment
查看当前Activity:
adb shell dumpsys window | grep mCurrentFocus
adb shell dumpsys activity activities | grep ResumedActivity
查看当前Fragment:
adb shell dumpsys activity【com.xxxxx.client/com.xxxx.client.MainActivity】
打开指定Activity
打开指定app的某个Activity:
adb shell am start -n 【com.xxxxx.client/com.xxxx.client.MainActivity】
获取屏幕信息
获取当前屏幕的宽高(像素为px):
adb shell wm size
获取当前像素密度:
adb shell wm density
打开和关闭布局绘制
打开布局绘制:
adb shell setprop debug.layout true
关闭布局绘制:
adb shell setprop debug.layout false
抓取日志
清除本地缓存:
adb logcat -c
抓取日志:
adb logcat -v time > ./xxx.log
性能分析
通过包名获取当前的进程号:
adb shell ps | grep 【包名】
分析当前端口号占用:
adb shell top -p 【查询到的进程号】
查询内存信息:
adb shell dumpsys meminfo 【包名】
查询CPU信息:
adb shell dumpsys cpuinfo | grep 【包名】
查询冷启动情况:
adb shell am start -W 【包名】