进程线程有关
在adb shell
中
adb shell ps
eg:
capricorn:/ # ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1628 SyS_epoll_ 00004c809c S /init
root 2 0 0 0 kthreadd 0000000000 S kthreadd
root 3 2 0 0 smpboot_th 0000000000 S ksoftirqd/0
root 6 2 0 0 diag_socke 0000000000 S kworker/u8:0
...
capricorn:/ # ps | grep "system_server"
查看system_server信息
USER PID PPID VSIZE RSS WCHAN PC NAME
system 13586 13395 2658524 331360 SyS_epoll_ 7f980a2668 S system_server
可以知道PPID=13395
capricorn:/ # ps 13395
USER PID PPID VSIZE RSS WCHAN PC NAME
root 13395 1 2176320 52360 poll_sched 7f980a2788 S zygote64
可以知道副进程是zygote64,继续反推
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1628 SyS_epoll_ 00004c809c S /init
这里我们就知道init进程是zygote64的父进程
adb shell am force-stop [参数] <process>
强制停止应用(process=包名)
eg:
adb shell am force-stop com.tencent.mm
adb shell am kill [参数] <process>
停止那个单个进程
adb shell am kill-all
停止所有后台进程
adb shell dumpsys cpuinfo
查看CPU信息
adb shell dumpsys meminfo
要获取具体应用的内存信息,可加上包名adb shell dumpsys meminfo PACKAGE_NAME
adb shell top
查看设备cpu和内存占用情况
adb shell top -m 2
查看占用内存前2的app
adb shell ps -x [PID]
查看指定进程状态
adb shell kill [PID]
杀死进程
adb shell top -n 1
刷新一次内存信息,然后返回
adb shell cat /proc/meminfo
查看当前内存占用
注意区别:
wangwei@wangwei-xiaomi:~$ adb shell ps -x 1
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1592 SyS_epoll_ 00004c809c S /init (u:130, s:329)
wangwei@wangwei-xiaomi:~$ adb shell ps 1
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1592 SyS_epoll_ 00004c809c S /init
字段| 含义
--- |----|----
USER|进程的当前用户
PID|进程id
PPID|父进程id
VSIZE|进程虚拟地址空间大小
RSS|进程正在使用物理内存大小
WCHAN|内核地址
PC|当前程序指针
NAME|进程名
包有关
adb shell pm list packages [option]
-
-f
显示关联apk -
-d
只显示 disabled 的应用 -
-d
只显示 disabled 的应用 -
-e
只显示 enabled 的应用 -
-s
只显示系统应用 -
-3
只显示第三方应用 -
-i
显示应用的 installer -
-u
包含已卸载应用 -
包名
只显示含有包名的应用
eg:
#包名称为com.tencent.mm
capricorn:/ # pm list packages tencent
package:com.tencent.mm
#第三方应用
capricorn:/ # pm list packages -3
package:com.tencent.mm
package:com.xiaomi.jr
package:com.google.android.marvin.talkback
package:org.codeaurora.bluetooth
package:com.nike.plusgpschina
package:com.xiaomi.o2o
package:com.android.development
adb install <apkfile>
安装APK, adb install -r <apkfile>
允许覆盖安装
adb uninstall <package>
卸载APK
adb uninstall -k <package>
卸载APK但保留数据和缓存文件
adb shell am start -n <package_name>/<activity_class_name>
启动APK,am是ActivityManager
adb shell pm clear <packagename>
清除APK数据与缓存
四大组件相关
adb shell dumpsys activity top
查看顶部的Activity的信息
adb shell dumpsys activity top | grep ACTIVITY
adb shell dumpsys activity activities | grep packageName
查看顶部activity包名,过滤掉UI结构
adb shell dumpsys activity activities | grep intent
查看UI的堆栈
adb shell dumpsys activity activities | grep affinity
打印堆栈由于什么intent拉起来
eg:
wangwei@wangwei-xiaomi:~$ adb shell dumpsys activity activities | grep packageName
packageName=com.xiaomi.market processName=com.xiaomi.market
packageName=com.xiaomi.market processName=com.xiaomi.market
packageName=com.android.quicksearchbox processName=com.android.quicksearchbox
packageName=com.miui.home processName=com.miui.home
结构显示,由miui.home然后显示快捷搜索bar,然后进入小米应用商店,在应用商店里面由一个activity进入另一个activity
adb shell dumpsys activity services <packagename>
查看正在运行的 Services
AM命令(ActivityManager)
主要使用:am <command>
命令
intent
Intent | 说明 | Am参数 |
---|---|---|
component | 组件名称 格式:包名/类名 | -n |
action | 指定intent的执行动作,比如拨打电话组件 | -a |
data_url | 操作的数据 | -d |
category | categary是一个字符串,提供了额外的信息,有关于能够处理这个Intent对象的组件种类 | -c |
extra | 传递给Intent的额外数据,以Bundle的形式定义,就是一些键值对 | -e |
mime_type | MIME类型 | -t |
flags | 各种类型的flag,很多是用来指定Android系统如何启动activity,还有启动了activity后如何对待他 | -f |
package | 包名 | -p |
启动
Activity
adb shell am start [参数] <Intent>
启动服务
adb shell am startservice [参数] <Intent>
停止服务
adb shell am stopservice [参数] <Intent>
启动广播
adb shell am broadcast [参数] <INTENT>
文件操作
adb pull <手机文件夹或者文件> <电脑文件夹>
将手机中的文件拷贝到电脑上
adb push <local> <remote>
将文件推送到手机存储
adb shell rename path/oldfilename path/newfilename
重命名
adb shell rm -f <folder>
删除文件夹以及下面所有文件
adb shell mv path/file newpath/file
移动文件
adb shell touch .<filename>
创建一个隐藏文件
adb shell makedir <filename>
创建一个文件夹
adb shell cat <file>
查看文件内容
adb shell cat /data/misc/wifi/*.conf
查看wifi密码
adb shell getprop
读取系统配置信息
adb logcat -c
清除log缓存
小功能
adb shell input keyevent <keycode>
adb 命令代替键盘操作,不同的 keycode 能实现不同的功能
adb shell input text 123
输入文本在焦点处于某文本框时,可以通过 input 命令来输入文本。现在 123 出现在文本框中。
adb shell screencap -p /sdcard/sc.png
屏幕截图
adb shell screenrecord /sdcard/filename.mp4
录制 mp4 格式的视频保存到 /sdcard