1 adb开启和关闭(许多时候连接设备一直显示offline,可以试着重启adb服务,获取安装了手机助手它自身会带有一个adb会影响使用)
adb start -server // 开启adb服务
adb kill -server // 杀死adb服务
2 使用adb查看当前连接的设备
adb devices // 查看当前连接的设备,如果adb服务还没有开启,这个命令也会自动开启adb服务
adb devices
List of devices attached
712KPZK1241861 device
192.168.137.216:5555 device
3 使用adb安装和卸载
adb install [-参数] [apk_file_path]
安装apk的参数
-l:forward lock application
-r:replace existing application(常用)
-t:allow test package(常用)
-s:install application on sdcard
-d:allow version code downgrade(debuggable package only)
-g:grant all runtime permissions
常用方式:不添加任何参数,如果已经安装了应用需要再次安装**-r覆盖安装**,如果apk是onlyTest,需要-t。
卸载
adb uninstall [app_package_name]
-k #不删除程序运行所产生的数据和缓存目录(如软件的数据库文件)
4 多设备指定设备进行操作
adb devices 会返回设备标识,712KPZK1241861就是
712KPZK1241861 device
需要对特定设备操作时只需要利用-s 指定表示就行.
adb -s 712KPZK1241861 shell
5 使用adb清除APP数据
adb shell pm path 包名 查看应用的安装路径
adb shell pm clear [app_package_name],有了这个命令就不需要去手机设置里去清除应用的缓存了。
6 使用adb列出APP包名 & PM 命令
adb shell pm list packages // 列出所有APP的包名
adb shell pm list packages -s // 列出所有系统APP的包名
adb shell pm list packages -3 // 列出所有第三方APP的包名
adb shell pm list packages [name] // 过滤需要的查找的字段
abd shell pm list packages ####查看当前连接设备或者虚拟机的所有包
adb shell pm list packages -d #####只输出禁用的包。
adb shell pm list packages -e #####只输出启用的包。
adb shell pm list packages -i #####只输出包和安装信息(安装来源)。
adb shell pm list packages -u #####只输出包和未安装包信息(安装来源)。
adb shell pm list packages -f #####输出包和包相关联的文件
adb shell pm list packages -[option] “qq” #####按照要求搜索包。
7 使用adb读写文件
读取手机文件
adb pull [phone_file_path] [device_file_path]
// 将/storage/sdcard0/1.png图片复制到D盘file下
adb pull /storage/sdcard0/1.png D:\file
写入手机文件
adb push [device_file_path] [phone_file_path]
// 将D盘file下的1.png文件写入到手机的/storage/sdcard0/文件夹中
adb push d:\file\1.png /storage/sdcard0/
使用adb删除文件
adb shell rm [file_path]
adb shell rm /storage/sdcard0/1.png
其实adb shell 可以进入到 手机的linux环境中,可以访问里面有权限的文件
8 使用adb发送按键事件
adb shell input keyevent [event_code]
adb shell input keyevent 3 // 3:表示按下Home键
adb shell input keyevent 4 // 4:表示按下Back键
9 使用adb启动activity,service,broadcast等
跳转Activity
adb shell am start -a [intent_action] // action隐式意图跳转
// 使用组件名方式启动照相机功能
adb shell am start -n com.android.camera/.Camera
// 打开拨号界面
adb shell am start -a android.intent.action.CALL
//拨打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
//打开百度
adb shell am start -a android.intent.action.VIEW -d https://www.baidu.com
//利用activity的绝对路径打开activity,并传递参数(-es传递extras参数,key为aaa,具体数据为bbb)
am start -n 包名/.MainActivity -es aaa bbb
adb shell am start -a 包名/activity的全类名
adb shell am start -a com.ldx.demo/com.ldx.demo.Activity
启动Service
adb shell am startservice -a [intent_action或者路径名]
adb shell am startservice -a com.xxx.service
发送broadcast
adb shell am broadcast -a [intent_action或者路径名]
adb shell am broadcast -a com.xxx.receive
10 使用adb进行monkey测试
adb shell monkey -p [package_name] -v 500
11 杀死进程:
adb shell am force-stop 强杀进程
12 查看task和activity的命令:
adb shell dumpsys命令是用于打印出当前系统信息
adb shell dumpsys这个命令会打印所有的信息,太长不利用查看:
adb shell dumpsys activity
获取当前 Android 系统 Activity 栈中 Activity 信息
adb shell dumpsys activity top
获取当前 Android 系统 中与用户交互的 Activity 的详细信息
adb shell dumpsys meminfo [应用包名]
查看应用的内存使用情况
adb shell dumpsys package [应用报名]
获取手机里面某个 apk 的应用信息、版本信息
adb shell dumpsys activity activities
显示当前所有在运行的任务栈,并可查看栈中所有的 Activity 的列表
//查看activity(包括运行的)
adb shell dumpsys activity activities
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
Display #0 (activities from top to bottom):
Stack #4: type=standard mode=fullscreen
isSleeping=false
mBounds=Rect(0, 0 - 0, 0)
Task id #1860
mBounds=Rect(0, 0 - 0, 0)
mMinWidth=-1
mMinHeight=-1
mLastNonFullscreenBounds=null
* TaskRecord{f9009ef #1860 A=com.ldx.canvasdrawdemo U=0 StackId=4 sz=1}
userId=0 effectiveUid=u0a172 mCallingUid=u0a25 mUserSetupComplete=true mCallingPackage=com.google.android.apps.nexuslauncher
affinity=com.ldx.canvasdrawdemo
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.ldx.canvasdrawdemo/.MainActivity}
realActivity=com.ldx.canvasdrawdemo/.MainActivity
autoRemoveRecents=false isPersistable=true numFullscreen=1 activityType=1
rootWasReset=true mNeverRelinquishIdentity=true mReuseTask=false mLockTaskAuth=LOCK_TASK_AUTH_PINNABLE
Activities=[ActivityRecord{2fd3372 u0 com.ldx.canvasdrawdemo/.MainActivity t1860}]
askedCompatMode=false inRecents=true isAvailable=true
mRootProcess=ProcessRecord{1353cfc 24708:com.ldx.canvasdrawdemo/u0a172}
stackId=4
hasBeenVisible=true mResizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION
//查看内存情况
adb shell dumpsys meminfo $package_name or $pid
13 adb 无线调试(同一网络下)
adb connect ip:5555 //连接到手机(ip地址是手机连接到固定wifi,然后长按wifi查看得到的Ipv4地址)
adb connect 192.168.137.216:5555
connected to 192.168.137.216:5555
断开无线连接
adb disconnect 192.168.137.216:5555
14 获取log
//打印默认日志数据
adb logcat
//打印级别为Error的信息
adb logcat *:E
/打印时间和级别是Error的信息
adb logcat -v time *:E
/将日志保存到电脑固定的位置,C:\log.txt
adb logcat -v time >C:\log.txt
//清除日志
adb logcat -c
15 adb 截屏
adb shell screencap -p /sdcard/screenshot.png
会把截图保存到sdcard目录下。
录屏命令:录屏