先确认下有没有安装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