adb start-server
启动adb服务,如果它没启动的话
adb kill-server
关闭服务
adb devices
查看所连接的设备以及设备所对应的序列号
adb install -r xxxx.apk
安装app,需要注意的是如果连接了两台设备,则会报错,此时可以添加-s 来处理
adb uninstall packagename
卸载app,有时候在手机上卸载App会出现数据清理不干净,导致App再也装不上了,这个时候可以敲命令来卸载
adb shell
进入shell环境
adb shell pm clear packagename
清除应用的数据,很常用吧?
adb shell am start -n packagename/packagename.activityname
启动某个应用的某个Activity(以前调试老年机,那种Launcher上没有APP的机器,全靠它啊!!!!!!!)
adb connect
连接到指定的ip,这个通常配合wifidebug
adb shell dumpsys activity top
查看栈顶Activity,可以用来获取包名,可以用来查看其它app的包名
adb shell ps
查看进程信息
adb shell pm list packages -f
查看所有已安装的应用的包名
adb shell dumpsys activity
dumpsys系列命令可以帮助我们查看各种信息
查看当前resume的是哪个activity:
adb shell dumpsys activity | grep mFocusedActivity
am的状态 Activity Manager State
adb shell dumpsys package
包信息 Package Information
adb shell dumpsys meminfo
内存使用情况Memory Usage
adb pull
从手机复制文件出来,比如把Crash日志写在SD卡上,再pull到电脑上 或者 pull ANR的trace日志
adb push
向手机发送文件,比如测试热修复补丁~
eg. adb push foo.txt /sdcard/foo.txt
adb shell cat /proc/cpuinfo
查看手机CPU,可以看到手机架构(eg.ARMv7) 和几核处理器
可以帮助我们选择so库,排查手机cpu架构相关的问题
不太常用的命令
adb shell df
获取手机磁盘空间
adb shell getprop ro.build.version.release
获取手机系统版本
adb shell dumpsys procstats
Memory Use Over Time
adb shell dumpsys gfxinfo
Graphics State
adb version
查看adb版本
adb help
进入adb帮助界面
adb reboot -p或adb shell 再reboot -p
关机,直接adb reboot 是重启
(转载自网络,侵删)
spreadtrum系统
内存查看:
使用场景:跟踪进程内存使用情况,看是否存在内存回收不了的问题,如果程序存在内存泄露问题,通过内存动态占用情况可以看出一些端倪。
1、查看系统dalvik给每一个进程分配的可用内存情况:
root@android:/ # getprop
[dalvik.vm.heapgrowthlimit]: [192m] :进程最大可分配到192m 如果哪个进程超过这个值就会发生OOM问题
[dalvik.vm.heapsize]: [256m] :单个虚拟机可分配的最大内存=256m
2、 查应用进程占用内存分布:
root@android:/ # dumpsys meminfo
查指定进程占用内存情况,比如电话进程
root@android:/ # dumpsys meminfo | grep phone
查指定几个进程占用内存情况,比如电话进程、电话本进程、信息进程
root@android:/ # dumpsys meminfo | grep -E “phone|mms|contacts”
AM调试:
1、模拟发送广播:通过命令行执行adb shell am broadcast发送广播通。这个在调试的时候常用到。
adb shell am broadcast 后面的参数有: [-a ] 、[-d ]、[-t ]…..
例如:adb shell am broadcast -a com.android.test –es test_string “this is test string” –ei test_int 100 –ez test_boolean true说明:蓝色为key,红色为alue,分别为String类型,int类型,boolean类型
2、Android AM命令行启动程序的方法
启动的方法为: # am start -n 包(package)名/包名.活动(activity)名称
启动的方法可以从每个应用的AndroidManifest.xml的文件中得到.
ADB 录制屏幕命令
android 4.4 自带一个screenrecord命令,用于录制屏幕操作,工作中经常用于录制复现问题步骤,当不想直接用其他手机录制,又不想安装录屏的APP时,用命令还是挺方便的
(1)adb shell screenrecord /sdcard/test.mp4
screenrecord后面加路径,可以自己指定,默认录制时间为180s,可加限定时间条件–time-limit N,N为录制时间,结束录制cltr + c
(2)adb shell screenrecord –size 848*480 /sdcard/test.mp4
指定录制的分辨率
(3)adb shell screenrecord –bit-rate 2000000 /sdcard/test.mp4
指定比特率,默认为4M/s
update 20180104
adb shell input 命令用法
(1)adb shell input text + 文本 在光标所在的输入框中输入文本
(2)adb shell input keyevent + keycode 模拟按键
input keyevent 3 // Home
input keyevent 4 // Back
input keyevent 19 //Up
input keyevent 20 //Down
input keyevent 21 //Left
input keyevent 22 //Right
input keyevent 23 //Select/Ok
input keyevent 24 //Volume+
input keyevent 25 // Volume-
input keyevent 82 // Menu 菜单
(3)adb input tab X Y 模拟touch事件,参数x,y为在屏幕上的像素值,即触摸的位置
(4)adb input swipe X1 Y1 X2 Y2 模拟滑动事件,参数为滑动前后两点的坐标
详细可执行adb shell input 查看帮助
C:\Users\Administrator>adb shell input
Usage: input [] […]
The sources are:
keyboard
mouse
joystick
touchnavigation
touchpad
trackball
dpad
stylus
gamepad
touchscreen
The commands and default sources are:
text (Default: touchscreen)
keyevent [–longpress] … (Default: keyboard)
tap (Default: touchscreen)
swipe [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll (Default: trackball)
关机log抓取
adb logcat -b main -b radio -b system -v time >log.txt
步骤如下:
关机完成后,回车该执行
界面出现
- waiting for device -
开机
等待问题出现,即可
如果发现中途有连接断开的现象,立马再执行一遍该指令。
adb-官方资料https://developer.android.com/studio/command-line/adb.html