Android adb常用命令
The following article is from 橙留香Park Author 橙留香Park
0x01 ADB 命令(主)
查看当前应用的activity信息
adb shell dumpsys activity top
# 把系统中所有应用运行的四大组件都会打印出来
adb shell dumpsys >> info.txt
start info.txt
查看指定包名应用的详细信息
adb shell dumpsys package xxx
或进入adb shell使用下面的命令
dumpsys package xxx
# 清空应用数据
adb shell pm clear xxx
查看指定进程名或者进程id的内存信息
adb shell dumpsys meminfo xxx
查看指定包名应用的数据库存储信息(包括存储的SQL语句)
adb shell dumpsys dbinfo xxx
安装应用包apk文件
adb intall xxx.apk
adb install test.apk -r 覆盖安装,保留数据和缓存文件 -d 解决低版本version问题 -s 安装apk到sd卡
卸载应用
adb uninstall xxx.apk
adb uninstall -k <package_name>
可选参数-k的作用为卸载软件但是保留配置和缓存文件
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
删除系统应用
adb remount (重新挂载系统分区,使系统分区重新可写)
adb shell
cd system/app
rm *.apk
将设备中的文件放到本地
adb pull 目标系统中的文件路径(a.txt) 本机系统要存放取出来的路径(a.txt)
将本地文件放到设备中
adb push 本机系统中的文件路径(a.txt) 目标系统中要存放的路径(a.txt)
截屏操作
adb shell screencap -p /sdcard/test.png
adb pull /sdcard/test.png D:\img\
start D:\img\test.png
录屏操作
adb shell screenrecord /sdcard/test.mp4
输入文本内容
adb shell input text 'xxx'
设备的端口转发
adb forward [(远程端)协议:端口号] [(设备端)协议:端口号]
adb forward tcp:23946 tcp:23946
adb forward tcp:8700 jwdp:1786
查看设备中可以被调试的应用的进程号
adb jdwp
查看当前日志信息
adb logcat
用法1:adb logcat -s tag
案例: adb Logcat -s fb
用法2:adb logcat |findstr pname/pid/keyword
案例: adb Logcat |findstr cn.test.demo
或进入adb shell使用下面的命令
Logcat grep tencent
非root设备中查看指定debug模式的包名应用沙盒数据
run-as cn.test.demo
查看设备的进程信息,或者指定进程的线程信息
ps | grep 过滤内容
ps | grep cn.test.demo
ps -t 19977
清空指定包名应用的数据
pm clear grep cn.test.demo
安装设备中的apk文件
pm install /sdcard/test.apk
卸载设备中的应用
pm uninstall cn.test.demo
启动设备中的应用
am start -n [包(package)名]/[包名].[活动(activity)名称]
am start -n com.androidtest/com.androidtest.test
启动一个服务
am startservice -n [包 (package) 名]/[包名].[服务(service)名]
am startservice -n com.androidtest2/com.androidtest.test2
发送一个广播
am broadcast -a [广播动作]
查看设备的ip地址
netcfg
查看设备的端口号信息
netstat
运行Java代码(特殊场景使用,把dx命令把dex文件转化成jar包)
app_process [运行代码目录] [运行主类]
export CLASSPATH=/data/test.jar
exec /system/bin/app_process /data/cn.test.main
运行一个dex文件
dalvikvm -cp [dex文件] [运行主类]
dalvikvm -cp /data/test.dex cn. Widiankong Main
查看当前应用的CPU消耗信息
top [-n/-m/-d/-s/-t]
-m // 最多显示多少个进程
-n // 刷新次数
-d // 刷新间隔时间(默认5 秒)
-s // 按哪列排序
-t // 显示线程信息而不是进程
查看系统属性值
getprop [属性值名称]
用aapt操作apk命令(查看apk中的信息以及编辑apk程序包)
aapt dump xmltree [apk包] [需要查看的资源文件xml ]
用dexdump操作dex命令(查看dex文件的详细信息)
dexdump [ dex文件路径]
查看当前进程的内存加载情况(查看当前进程的内存映射信息,比如加载了哪些so文件,dex文件等)
cat /proc/[pid]/maps
用法:cat /proc/663/maps
查看进程的状态信息
cat /proc/[pid]/status
用法:cat /proc/663/status
查看当前应用使用的端口号信息
cat /proc/[pid]/net/tcp/tcp6/udp/udp6
用法:cat /proc/663/net/tcp/tcp6/udp/udp6
0x02 ADB 命令(次)
查看连接设备
adb devices
获取手机root权限
adb root
重新挂载系统分区,使系统分区重新可写
adb remount
进入到手机设备Shell界面中去
adb shell
abd shell -s 模拟器编号 命令
启动和关闭ADB服务
# 关闭服务
adb kill-server
# 启动服务
adb start-server
adb帮助命令
adb help
查看bug报告
adb bugreport
记录无线通讯日志
adb shell
logcat -b radio
获取设备的ID和序列号
adb get-product
adb get-serialno
访问数据库SQLite3
adb shell
sqlite3
进入系统内指定文件夹
cd system/sd/data
#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹
点亮屏幕
adb shellinput keyevent 80
查看adb版本
adb version
将system分区重新挂在为可读写分区,此命令在操作系统目录时很重要
adb remount
重启设备,可选参数进入bootloader(刷机模式)或recovery(恢复模式)
adb reboot bootloader
adb reboot recovery
杀掉某个进程,一般用于模拟某个bug复现
adb shell kill pidNumber
# 列出进程列表及其pid
adb shell ps
# 查看指定进程信息
adb shell ps -x pid
查看单个应用程序的最大内存限制
adb shell getprop | grep heapgrowthlimit
得到的结果为128M: [dalvik.vm.heapgrowthlimit]: [128m]
这就是说Dalvik Heap size的最大值超过了128M,就很可能发生OOM
查看sdk版本
adb shell getprop | grep version
查看设备型号信息
adb shell getprop | grep product
获取序列号
获取到的序列号即为adb devices列出来的序列号
adb get-serialno
查看wifi密码(需要root权限)
adb shell cat data/misc/wifi/*.conf
查看wifi_mac
adb shell cat /sys/class/net/wlan0/address
查看后台services信息
adb shell service list
ADB 录制屏幕命令
adb shell screenrecord /sdcard/test.mp4
打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
停止应用
adb shell am force-stop package
查看当前 Activity 名称
adb shell dumpsys activity | findstr “mFocusedActivity”
移动文件
adb shell mv /sdcard/1.txt /sdcard/2.text
移动同一目录下文件相当于重命名文件
更多详细命令,后面再补充
参考链接:
https://cloud.tencent.com/developer/article/1797357
https://zhuanlan.zhihu.com/p/43731848
推荐阅读
系统定制编译之Android.mk和Android.bp详解
Android ANR/Crash Log日志分析技巧总结(建议收藏)
Android高级开发中ANR/Native Crash问题的解决方法
干货|Android系统中run-as和su命令的源码解析(升降权限)
Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)
Android系统定制之Android.mk和Android.bp语法详解(精通版)