美文网首页
adb中常用的命令

adb中常用的命令

作者: 我叫王菜鸟 | 来源:发表于2017-11-21 09:37 被阅读0次

    进程线程有关

    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

    相关文章

      网友评论

          本文标题:adb中常用的命令

          本文链接:https://www.haomeiwen.com/subject/jseivxtx.html