1. 程式人生 > >android adb shell 查詢程序流量情況

android adb shell 查詢程序流量情況

        本文僅僅是通過adb查詢應用的流量使用情況。當然在Android應用程式的Java程式碼中同樣可以獲得應用的流量使用情況。

1、獲得應用的Pid。

      可以通過adb shell ps獲得所有程序資訊,裡面當然包含應用的pid和包名。然後對返回資訊進行查詢(按包名查詢)。

2、獲得應用的Uid.

      Android系統的目錄檔案/proc/pid/status(注意:標紅的pid是第1步中獲得的pid,是一個大於0的數字)中包含關於uid的資訊。以pid=7328為例,通過adb shell cat /proc/7328/status可以得到以下資訊:

1|[email protected]

:/ $ cat /proc/7328/status
cat /proc/7328/status
Name:   .qihoo.secstore
State:  S (sleeping)
Tgid:   7328
Pid:    7328
PPid:   479
TracerPid:      0
Uid:    10194   10194   10194   10194
Gid:    10194   10194   10194   10194
FDSize: 128
Groups: 1015 1028 3001 3002 3003 9997 50194
VmPeak:  1828500 kB
VmSize:  1709912 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    123552 kB
VmRSS:     62932 kB
VmData:   186776 kB
VmStk:      8192 kB
VmExe:        12 kB
VmLib:     87568 kB
VmPTE:       716 kB
VmSwap:    21692 kB
Threads:        44
SigQ:   0/9853
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001a04
SigIgn: 0000000000000000
SigCgt: 00000002000094f8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
Cpus_allowed:   3f
Cpus_allowed_list:      0-5
voluntary_ctxt_switches:        5671
nonvoluntary_ctxt_switches:     4188

     解析以上資訊即可得到Uid.

3、讀取流量值。

      Android系統的目錄檔案/proc/uid_stat/uid/下一般會有兩個檔案tcp_snd和tcp_rcv。(注意:標紅的uid是第二步中獲得的Uid數值)。通過adb shell cat /proc/uid_stat/10194/tcp_snd和adb shell cat /proc/uid_stat/10194/tcp_rcv即可分別獲得上行流量和下行流量。


[email protected]:/ $ ls /proc/uid_stat/10194
ls /proc/uid_stat/10194
tcp_rcv
tcp_snd
[email protected]

:/ $

[email protected]:/ $ cat /proc/uid_stat/10194/tcp_snd
cat /proc/uid_stat/10194/tcp_snd
36006

[email protected]:/ $ cat /proc/uid_stat/10194/tcp_rcv
cat /proc/uid_stat/10194/tcp_rcv
41460

注意:

1、這裡的值的單位是Byte位元組,並且是累積量

2、有的應用是沒有tcp_snd和tcp_rcv這兩個檔案的,比如某些系統應用。

3、某些沒有流量交換的應用的可能也沒有這兩個檔案,或者這兩個檔案裡沒有資料。


相關推薦

android adb shell 查詢程序流量情況

        本文僅僅是通過adb查詢應用的流量使用情況。當然在Android應用程式的Java程式碼中同樣可以獲得應用的流量使用情況。 1、獲得應用的Pid。       可以通過adb shell ps獲得所有程序資訊,裡面當然包含應用的pid和包名。然後對返回資訊

Android adb shell啟動應用程序的方法

options enable 情況 命令行啟動 cif 不同的 www sta debug 在Android中,除了從界面上啟動程序之外,還可以從命令行啟動程序,使用的是命令行工具am.usage: am [subcommand] [options] start an

android adb shell and monkey 學習記錄

型號 orm -a reboot 觸摸事件 serial roc ear cpu Monkey環境: android SDK and JDK SDK目錄下的platform-tools和tools目錄要配置環境變量 查看版本: ADB 的安裝這裏就

[android adb shell] 怎麼解鎖圖案鎖屏(pattern lock)的手機?

所謂的防水手機由於沖洗螢幕進水而觸控失靈了,幸好adb是開啟的,還能用usb連上,然而問題來了,我加了圖案鎖屏,雖然adb shell能進,但死活操作不了啊。。。 首先,要確定觸控事件的裝置,我的手機是event2 其次,解析度肯定得搞清楚,可參考 https://blog.csd

android adb shell 模擬廣播發送和鍵值事件

1.模擬傳送廣播adb shell am broadcast -a 定義的廣播action string2.模擬上下左右 確定鍵值adb shell input keyevent  "value"va

adb shell檢視程序提示grep不是內部命令或外部命令解決辦法

1、根據包名檢視程序命令adb shell  ps|grep  com.ott.android.TMC(包名) 直接輸入會提示grep不是內部命令或外部命令解決辦法,解決辦法加上引號adb shell "ps|grep  com.ott.android.TMC(包名)" 2

android adb shell的使用

        adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴充套件資料,等)。   23、釋出埠:       你可以設定任意的埠號,做為主機向模擬器或裝置的請求埠。如:  adb fo

Android adb shell讀取手機上的QQ軟體的sqlite資料庫

一.查詢QQ軟體下建立了哪些資料庫    1.開啟adb shell    2.進入軟體安裝包下資料庫資料夾       3.查詢有哪些資料庫檔案 或者: 4.開啟webview.db 發現無法開啟,報錯誤  sqlite3: not found 二.解決  sq

Android adb shell刪除檔案和資料夾的操作

tools>adb remount  tools>adb shell  #su  #cd system/sd/data //進入系統內指定資料夾  #ls //列表顯示當前資料夾內容  #

[odroid-pc]ubuntu12.04 android adb shell error: device not found

Bus 001 Device 002: ID 8087:8008 Intel Corp. Bus 002 Device 002: ID 8087:8000 Intel Corp. Bus 003 Device 009: ID 18d1:4e12 Google Inc. Nexus One (debug) B

Android記憶體洩漏查詢和解決adb shell dumpsys meminfo packagement

1.通過adb shell dumpsys meminfo packageName來檢視記憶體使用狀況 在沒有開啟應用的情況下,該命令返回的資料是這樣的: 2.開啟這個應用的MainActivity,再通過命令檢視: 可以看到打印出來很多的資訊,而對於我們檢

Android 測試 之adb shell

一次 eve focus pad eth andro event rod RoCE 一、發送鍵盤事件: 命令格式1:adb shell input keyevent "value" 其中value以及對應的key code如下表所列: KeyEvent Value

Android M App休眠 (adb shell dumpsys usagestats)

user txt adb 活躍 出了 新的 開發者 stats android App休眠 在 Marshmallow 系統,Google 宣布了一個新的功能叫 App 休眠。App 休眠會阻止那些不 常用的 App(幾天沒有用過的 App)連接網絡或者是運行任何程序直

Android成長記(1)-----android環境搭建與adb shell 命令

整理一下學習android一步一步存下來的自己總結或是從網上摘抄的比較不錯的文件,電腦要上交了,最捨不得的就是自己積累的這麼點東西了,所以決定釋出到黎梓小站,以供大家一起學習以及自己日後忘記了也有地方可找。 1.      htt

Android Studio 模擬器 adb shell 進入 root 除錯模式

在學習《第一行程式碼》中的SQLite資料庫儲存時,操作sqlite3資料庫,執行起模擬器後,在Terminal中輸入adb shell 發現進入是$符號,輸入cd /data/data/com.example.zhuzhixiong.databasetest/

nethogs結合zabbix 監控每個程序流量使用情況

因為公司會有人時不時去拉取備份日誌或者包等,zabbix和阿里雲都會出現流量告警,但具體是哪個使用者或者哪個程序使用的流量,不知道,告警出現後,登入伺服器檢視,流量已經下來了,檢視起來比較繁瑣,所以直接弄一個程序流量告警,超過閥值,把程序號,使用者,進出流量大小都輸出出來 NetHogs是一款開源、免費的,

Android自動化測試手段之Monkey(adb shell monkey)

android monkey原始碼下載見:http://fanfq.iteye.com/blog/781694 Monkeyrunner在這裡:http://www.51testing.com/html/59/n-242759.html ================

android adb 程序埠號被佔解決方法

1、檢視adb 的程序埠號是什麼,輸入命令 adb nodaemon server 顯示埠號 2、檢視埠號對應的程序pid ,輸入命令 netstat -ano  檢視對應的埠號的程序號 3、檢視程序號對應的程序名稱或結束程序 tasklist|findstr "程序號" 或

Android成長記 1 -----android環境搭建與adb shell 命令

                整理一下學習android一步一步存下來的自己總結或是從網上摘抄的比較不錯的文件,電腦要上交了,最捨不得的就是自己積累的這麼點東西了,所以決定釋出到黎梓小站,以供大家一起學習以及自己日後忘記了也有地方可找。2.      該網址詳細介紹瞭如何安裝android4.1 SDK。a

android adb 查詢apk安裝到了哪裡,已經安裝到了哪裡

                使用pm =package manager 包管理器 可以查詢包的資訊c:\>adb shell pm -l     //最後的字元list的第一字元,就列出手機所有的包c:\>adb shell pm list features   //列出所有特徵feature