在android 开发中,经常用adb命令和pc端设备通讯,所以总结下常用的adb命令以备使用
具体的adb命令如下:
cp -R rockdev/Image-rk3368_box/ /docs/firware/debug/
busybox stty -F /dev/ttyS0 获取波特率
busybox stty -F /dev/ttyS0 raw speed 19200 设置波特率
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED 发送广播
adb shell am broadcast -a android.intent.action.ACTION_REQUEST_SHUTDOWN 关机广播
adb shell am broadcast -a com.android.mcudata --es mcudata "002,128,173,004,000,089,050,000"
adb shell logcat -v:* >
adb install -f
adb root
adb remount
adb shell
adb shell 下的ps 查看当前进程
adb shell dumpsys window w |findstr \/ |findstr name=//查询当前app包名
adb logcat | find ""包名 查看某个app日志
adb logcat -s AndroidRuntime System.err DEBUG // 崩溃日志
查看安卓手机CPU类型armeabi,armeabi-v7a,还是arm64-v8a
adb shell getprop ro.product.cpu.abi
管理设备
注:android手机、模拟器统一称为“设备”
adb devices // 显示连接到计算机的设备
adb get-serialno // 获取设备的ID和序列号serialNumber
------------------重启----------------------------------------------
adb reboot // 重启设备
adb reboot bootloader // 重启到bootloader,即刷机模式
adb reboot recovery // 重启到recovery,即恢复模式
------------------发送命令到设备--------------------------------------
adb [-d|-e|-s <serialNumber>] <command>
-d 发送命令给usb连接的设备
-e 发送命令到模拟器设备
-s <serialNumber> 发送命令到指定设备
adb相关
adb kill-server // 终止adb服务进程
adb start-server // 重启adb服务进程
adb root // 已root权限重启adb服务
adb wait-for-device // 在模拟器/设备连接之前把命令转载在adb的命令器中
获取设备硬件信息
adb shell cat /sys/class/net/wlan0/address // 获取mac地址
adb shell cat /proc/cpuinfo // 获取cpu序列号
logcat '*:V' | grep "com.goodocom.rk" //获取某个app日志
管理设备app
aapt d badging <apkfile> // 获取apk的packagename 和 classname
------------------安装----------------------------------------------
adb install <apkfile> // 安装apk
adb install -r <apkfile> // 保留数据和缓存文件,重新安装apk,
adb install -s <apkfile> // 安装apk到sd卡
adb shell pm install -r <apkfile>
------------------卸载----------------------------------------------
adb uninstall <package> // 卸载app
adb uninstall -k <package> // 卸载app但保留数据和缓存文件
adb shell pm uninstall
------------------启动app-------------------------------------------
adb shell am start -n <package_name>/.<activity_class_name> // 启动应用
------------------查看内存占用----------------------------------------
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 /proc/meminfo // 查看当前内存占用
adb shell cat /proc/iomem // 查看IO内存分区
文件操作
//android中,sdcard代表内置存储,不同系统中tf卡的设备名可能不同,使用查看adb shell ls mnt查看所有存储设备名。
adb remount // 将system分区重新挂载为可读写分区
adb push <local> <remote> // 从本地复制文件到设备
adb pull <remote> <local> // 从设备复制文件到本地
adb shell ls // 列出目录下的文件和文件夹,等同于dos中的dir命令
adb shell cd <folder> // 进入文件夹,等同于dos中的cd 命令
adb shell rename path/oldfilename path/newfilename // 重命名文件
adb shell rm /system/avi.apk // 删除system/avi.apk
adb shell rm -r <folder> // 删除文件夹及其下面所有文件
adb shell mv path/file newpath/file // 移动文件
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf // 设置文件权限
adb shell mkdir path/foldelname // 新建文件夹
adb shell cat <file> // 查看文件内容
简记版
获取序列号:
adb get-serialno
查看连接计算机的设备:
adb devices
重启机器:
adb reboot
重启到bootloader,即刷机模式:
adb reboot bootloader
重启到recovery,即恢复模式:
adb reboot recovery
查看log:
adb logcat
终止adb服务进程:
adb kill-server
重启adb服务进程:
adb start-server
获取机器MAC地址:
adb shell cat /sys/class/net/wlan0/address
获取CPU序列号:
adb shell cat /proc/cpuinfo
安装APK:
adb install <apkfile> //比如:adb install baidu.apk
保留数据和缓存文件,重新安装apk:
adb install -r <apkfile> //比如:adb install -r baidu.apk
安装apk到sd卡:
adb install -s <apkfile> // 比如:adb install -s baidu.apk
卸载APK:
adb uninstall <package> //比如:adb uninstall com.baidu.search
卸载app但保留数据和缓存文件:
adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search
启动应用:
adb shell am start -n <package_name>/.<activity_class_name>
查看设备cpu和内存占用情况:
adb shell top
查看占用内存前6的app:
adb shell top -m 6
刷新一次内存信息,然后返回:
adb shell top -n 1
查询各进程内存使用情况:
adb shell procrank
杀死一个进程:
adb shell kill [pid]
查看进程列表:
adb shell ps
查看指定进程状态:
adb shell ps -x [PID]
查看后台services信息:
adb shell service list
查看当前内存占用:
adb shell cat /proc/meminfo
查看IO内存分区:
adb shell cat /proc/iomem
将system分区重新挂载为可读写分区:
adb remount
从本地复制文件到设备:
adb push <local> <remote>
从设备复制文件到本地:
adb pull <remote> <local>
列出目录下的文件和文件夹,等同于dos中的dir命令:
adb shell ls
进入文件夹,等同于dos中的cd 命令:
adb shell cd <folder>
重命名文件:
adb shell rename path/oldfilename path/newfilename
删除system/avi.apk:
adb shell rm /system/avi.apk
删除文件夹及其下面所有文件:
adb shell rm -r <folder>
移动文件:
adb shell mv path/file newpath/file
设置文件权限:
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
新建文件夹:
adb shell mkdir path/foldelname
查看文件内容:
adb shell cat <file>
查看wifi密码:
adb shell cat /data/misc/wifi/*.conf
清除log缓存:
adb logcat -c
查看bug报告:
adb bugreport
获取设备名称:
adb shell cat /system/build.prop
查看ADB帮助:
adb help
跑monkey:
adb shell monkey -v -p your.package.name 500
查询安装的所有app
adb shell pm list package
查询安装app的版本名称和版本号
adb shell dumpsys package PackageName | findstr versionCode
adb shell dumpsys package PackageName | findstr versionName
端口占用查询
5037为adb默认端口 查看该端口情况如下:
netstat -aon|findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6540
发现6540占用了 5037端口,继续查看6540的task,发现是wandoujia .如下所示
tasklist|findstr "6540"
wandoujia_daemon.exe 6540 Console 1 4,276 K
接下来问题就好解决了,在任务管理器kill掉wandoujia_daemon.exe ,运行android程序,ok .
打电话:
adb shell service call phone 2 s16 "10086"
adb shell am start -a android.intent.action.CALL tel:10086
挂电话:
adb shell input keyevent KEYCODE_ENDCALL
adb shell input keyevent 6
清理app 缓存数据
adb shell pm clear 包名
获取所有app的pid
adb shell ps
开启飞行模式
--执行1
adb shell settings put global airplane_mode_on 1
--执行2
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
关闭飞行模式
--执行1
adb shell settings put global airplane_mode_on 0
--执行2
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false