adb命令测试常用

先确认下有没有安装adb,在cmd输入adb命令。没有就去官网下一个,然后解压文件,配置环境变量PATH即可。

安装夜神模拟器或者连接安卓手机,点击5次版本号然后打开开发者选项,打开USB开关。
然后打开cmd dom命令行:
adb connect 127.0.0.1:62001 62001是夜神的端口号

adb server version (36) doesn't match this client (41); killing...
* daemon started successfully
connected to 127.0.0.1:62001

注意:夜神模拟器安装目录bin也有nox_adb.exe,可以nox_adb.exe devices列出nox_adb连接的终端地址.

可通过 adb devices 确认已连上,再 adb logcat 查看日志
adb logcat >D:\noxlogtest.txt 然后操作手机,日志都会写道文件里,ctrl+c 结束操作

其他命令:
adb install xx.apk
adb uninstall xx.apk
adb pull /sdcard/noxlogtest.txt d:/aaa 从手机拉去数据到电脑上
adb push d:/aaa/test.txt /sdcard/ 从电脑上推送数据到手机里
注意push 和 pull不需要进入adb shell操作
adb start-server 开启服务
adb kill-server 关闭服务
注意有时候adb运行久了偶尔会sb一下,就关闭重启一下
adb reboot 重启手机

adb logcat 查看日志
将日志打印到计算机 adb logcat >文件路径/文件名+后缀(>重定向的意思)
adb logcat >/Users/zhangshan/Desktop/logcat.txt
adb logcat ->C:/log03.txt(Windows)
将日志打印到手机 adb logcat -f 文件路径/文件名+后缀
adb shell logcat >文件路径 log打印到手机中
adb shell logcat -v > /sdcard/log1.txt

adb logcat 打印日志:
adb logcat -v time *:e -v 参数 time 时间戳 -打印相关参数
adb logcat | grep 关键字 过滤相关日志
adb logcat -v time | grep “Push” 过滤单个关键字
adb logcat -v time | grep “Push|Pull” 过滤多个关键字
adb logcat -v time | grep E/AndroidRuntime 过滤异常信息

分析日志:
I 提示信息 (information)
V 所有信息 (verbose)
D 调试信息 (debug)
W 警告信息 (warning)
E 错误信息(error crash fatal except )
PID (进程ID)

03-18 17:16:22.930 E/MountService( 1805): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.storage.StorageVolume.getPath()' on a null object reference

E/MountService( 1805) E是错误信息 1805是PID

分析错误信息:
搜索 crash
Fatal Exception 开头
Force finishing 结束
正文: 方法调用栈
java.lang.RuntimeException:报错应用包名及activity
java.lang.异常类型
Caused by 错误原因
java:代码行

分析anr无响应:
搜索 ANR in 后跟包名
Reason 错误原因
根据CPU分析是不是CPU过高导致
anr信息,存在设备 /data/anr/traces.txt中,存放方法调用栈信息

=================================================================
adb shell 进入到手机的Linux环境下
用Linux命令操作
#是root 用户 ;$是普通用户
cd system 这是系统级别的应用

root@shamu:/system # cd app
root@shamu:/system/app # ls
BasicDreams
Bluetooth
Browser
CMFileManager
Camera2
CaptivePortalLogin

cd app 这是第三方级别的应用 cd data/app
cd data/data 这是不区分第三方 or 系统的应用

cat 查看文件内容
find 查找文件

vmstat 查看资源使用情况
adb shell vmstat

C:\Users\8>adb shell vmstat
procs  memory                       system          cpu
 r  b    free mapped   anon   slab    in   cs  flt  us ni sy id wa ir
 0  0  3036996  77124 359412  21304   110  203    0   0  0  0 99  1  0
 0  0  3036872  77124 359452  21304   119  239    0   0  0  0 99  0  0
 0  0  3036872  77124 359456  21304   115  219    0   0  0  0 99  0  0

adb shell ps 查看进程

C:\Users\86150>adb shell ps
USER     PID   PPID  VSIZE  RSS     WCHAN    PC        NAME
root      1     0     9260   884   00000000 0806f230 S /init
root      2     0     0      0     00000000 00000000 S kthreadd
root      3     2     0      0     00000000 00000000 S ksoftirqd/0
root      5     2     0      0     00000000 00000000 S kworker/0:0H
root      6     2     0      0     00000000 00000000 S kworker/u8:0
root      7     2     0      0     00000000 00000000 S rcu_preempt

ps | grep 进程名 过滤进程 注意:如果grep 不能用可以用findstr
adb shell ps | findstr com.cyanogenmod.filemanager

C:\Users\86150>adb shell ps | findstr com.cyanogenmod.filemanager
u0_a15    3186  1522  890496 81048 ffffffff b74b3185 S com.cyanogenmod.filemanager

adb shell pm list package 列出所有安装应用包名

aapt d badging apk路径 apk详细信息
adb shell pm clear 包名 清除应用数据
adb shell am force-stop 包名 杀死进程
adb shell am start -n 包名/activity名 启动应用到指定activity

adb shell screencap -p >/计算机路径/+文件名+后缀 屏幕截图到计算机
adb shell screencap -p /sdcard/screen.png 需要-p 指定截图输出到哪个路径,如果不带,默认输出到stdout中, 即命令行中

adb shell cat /proc/meminfo 获取内存情况
adb shell dumpsys meminfo 包名 获取单个应用内存情况
adb shell dumpsys cpuinfo 获取cpu情况

adb shell dumpsys package 包名 | grep uid 获取uid
通过uid获取流量
adb shell cat /proc/net/xt_qtaguid/stats | grep 10070

查看指定程序内存使用情况
adb shell dumpsys meminfo com.android.browser

参数含义:
dalvik : dalvik使用的内存
native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
other  : 除了dalvik和native的内存,包含C\C++非堆内存······
Pss    : 该内存指将共享内存按比例分配到使用了共享内存的进程
allocated : 已使用的内存
free      : 空闲的内存
private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
share dirty   : 共享,但有不能被换页出去的内存

查看CPU占用情况
在adb环境输入:top -m 10 -s cpu
-m 10表示显示数量为10
-s表示按指定行排序

打开APP,获取当前APP的包名/activity
adb shell dumpsys window | findstr mCurrentFocus

由包名获取apk路径
adb shell pm path com.tencent.mm

查看手机分辨率
adb shell wm size

查看app相关所有信息,包括action,codepath,version,需要的权限等等信息
adb shell dumpsys package <package_name>

获取系统版本:adb shell getprop ro.build.version.release

获取系统api版本:adb shell getprop ro.build.version.sdk

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值