adb中常用的命令

進程線程有關

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

查看正在運行的 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 .

創建一個隱藏文件

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

發佈了68 篇原創文章 · 獲贊 12 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章