*#*#4636#*#* 進入手機后臺信息統(tǒng)計頁面
ADB的基本使用
adb啟動失敗
-
端口被占用
adb默認端口5037 ,有時因為裝了某個程序?qū)е麓硕丝谝恢闭加?,adb不能正常使用,無限等待。
查看占用端口的服務(wù):
C:\Users\sanbo>netstat -aon|findstr "5037" //查看占用5037端口的占用者
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 4352解決方法:
1> 任務(wù)管理器中找到占用端口的服務(wù),停止運行
2> 修改注冊表,把adb端口更改
打開注冊表 運行 regedit
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v ANDROID_ADB_SERVER_PORT /t REG_SZ /d 7305
3> 修改環(huán)境變量
在環(huán)境變量中添加ANDROID_ADB_SERVER_PORT的選項,其值可自定義,如7035保存,即可
PS:方法2>、3> 本質(zhì)沒有區(qū)別,都是修改環(huán)境變量,不過是途徑不一樣而已。
端口修改后需重啟電腦方可有效!
-
多個adb之間的沖突(Android SDK中的adb與genymotion自帶的adb)
AndroidStudio與Genymotion能連接上,但用cmd操作adb命令時出現(xiàn)如下報錯提示:
error: could not install smartsocket listener: cannot bind to 127.0.0.1:5037: 通常每個套接字地址(協(xié)議/網(wǎng)絡(luò)地址/端口)只允許使用一次。 (10048)這時只需要將genymotion的設(shè)置更改一下,將adb的路徑設(shè)置到SDK中adb路徑即可。
adb 命令
-
獲取序列號:
adb get-serialno
88MFBMA2S5FU -
查看連接計算機的設(shè)備
adb devices
-l 詳細輸出當前連接的設(shè)備信息
List of devices attached 88MFBMA2S5FU device如果存在多個設(shè)備連接,可以使用 adb -s DEVICE_ID來指定特定的設(shè)備。
adb -s <DEVICE_ID> install <**.apk> -
安裝APK:
adb install <apkfile> //比如:adb install baidu.apk
-
保留數(shù)據(jù)和緩存文件,重新安裝apk:
adb install -r <apkfile> //比如:adb install -r baidu.apk
-
安裝apk到sd卡:
adb install -s <apkfile> // 比如:adb install -s baidu.apk
-
-
啟動應(yīng)用:
adb shell am start -n <package_name>/.<activity_class_name> //比如:adb shell am start -n com.baidu.search/.MainActivity
-
卸載APK:
adb uninstall <package> //比如:adb uninstall com.baidu.search
-
卸載app但保留數(shù)據(jù)和緩存文件:
adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search
-
-
重啟設(shè)備:
adb reboot
-
重啟到bootloader,即刷機模式:
adb reboot bootloader
-
重啟到recovery,即恢復(fù)模式:
adb reboot recovery
-
-
查看log:
adb logcat
-
清除log緩存:
adb logcat -c
-
按指定優(yōu)先級輸出log
adb logcat *:W //輸出Warn優(yōu)先級以上的log
-
指定tag輸出log
adb logcat | grep "^..tag"
adb -s UWKNSK9S99999999 logcat *:W | grep "^..Watchdog\|^..ADB" adb -s UWKNSK9S99999999 logcat *:W | egrep "^..Watchdog|^..ADB"若是需要過濾多個tag,使用grep需要添加 \ 做轉(zhuǎn)義;使用egrep,則不需要轉(zhuǎn)義
-
-
終止adb服務(wù)進程:
adb kill-server
-
重啟adb服務(wù)進程:
adb start-server
-
獲取設(shè)備信息:
-
獲取設(shè)備MAC地址
adb shell cat /sys/class/net/wlan0/address
-
獲取CPU序列號
adb shell cat /proc/cpuinfo
-
獲取設(shè)備名稱:
adb shell cat /system/build.prop
-
-
查看設(shè)備cpu和內(nèi)存占用情況:
adb shell top
User 0%, System 1%, IOW 48%, IRQ 0% User 6 + Nice 0 + Sys 10 + Idle 295 + IOW 294 + IRQ 0 + SIRQ 0 = 605 PID PR CPU% S #THR VSS RSS PCY UID Name 16829 1 0% R 1 1352K 508K shell top 73 0 0% D 1 0K 0K root kswapd0 16393 0 0% S 51 672440K 61632K fg u0_a106 com.qsq.paydayloan 1060 0 0% S 102 669120K 38652K fg system system_server 213 3 0% S 14 80760K 3572K fg system /system/bin/surfaceflinger 127 0 0% S 1 0K 0K root w1_bus_master1 452 0 0% D 1 0K 0K root kworker/0:4 3 0 0% S 1 0K 0K root ksoftirqd/0 319 1 0% S 50 53180K 356K root /system/bin/thermal-engine 1193 0 0% S 3 7444K 1220K wifi /system/bin/wpa_supplicant第一組數(shù)據(jù)的含義: User 處于用戶態(tài)的運行時間,不包含優(yōu)先值為負進程 Nice 優(yōu)先值為負的進程所占用的CPU時間 Sys 處于核心態(tài)的運行時間 Idle 除IO等待時間以外的其它等待時間 IOW IO等待時間 IRQ 硬中斷時間 SIRQ 軟中斷時間 第二組數(shù)據(jù)的含義: PID 進程id PR 優(yōu)先級 CPU% 當前瞬時CPU占用率 S 進程狀態(tài):D=不可中斷的睡眠狀態(tài), R=運行, S=睡眠, T=跟蹤/停止, Z=僵尸進程 #THR 程序當前所用的線程數(shù) VSS Virtual Set Size 虛擬耗用內(nèi)存(包含共享庫占用的內(nèi)存) RSS Resident Set Size 實際使用物理內(nèi)存(包含共享庫占用的內(nèi)存) PCY 調(diào)度策略優(yōu)先級,SP_BACKGROUND/SP_FOREGROUND UID 進程所有者的用戶id Name 進程的名稱-
查看占用內(nèi)存前6的app:
adb shell top -m 6
-
刷新一次內(nèi)存信息,然后返回:
adb shell top -n 1
-
刷新間隔時間:
adb shell top -d 5 //默認5秒
-
Show threads instead of processes. 顯示線程信息而不是進程
-t
-
Column to sort by (cpu,vss,rss,thr). 按哪列排序
-s
-
Display this help screen. 顯示幫助文檔
-h
-
-
殺死一個進程:
adb shell kill [pid]
-
查看進程列表:
adb shell ps
-
查看指定進程狀態(tài):
adb shell ps -x [PID]
-
-
查看后臺services信息:
adb shell service list
-
查看當前設(shè)備的內(nèi)存(Memory)信息:
adb shell cat /proc/meminfo
MemTotal: 1973972 kB //所有可用RAM大小 MemFree: 62828 kB //LowFree與HighFree的總和,被系統(tǒng)留著未使用的內(nèi)存。 Buffers: 77548 kB //用來給文件做緩沖大小。 Cached: 934716 kB //被高速緩沖存儲器(cache memory)用的內(nèi)存的大小(等于diskcache minus SwapCache)。 SwapCached: 0 kB //被高速緩沖存儲器(cache memory)用的交換空間的大小。已經(jīng)被交換出來的內(nèi)存,仍然被存放在swapfile中,用來在需要的時候很快的被替換而不需要再次打開I/O端口。 Active: 900896 kB //在活躍使用中的緩沖或高速緩沖存儲器頁面文件的大小,除非非常必要,否則不會被移作他用。 Inactive: 752928 kB //在不經(jīng)常使用中的緩沖或高速緩沖存儲器頁面文件的大小,可能被用于其他途徑。 Active(anon): 476540 kB Inactive(anon): 167008 kB Active(file): 424356 kB Inactive(file): 585920 kB Unevictable: 1592 kB Mlocked: 24 kB SwapTotal: 524284 kB //交換空間的總大小。 SwapFree: 524284 kB //未被使用交換空間的大小。 Dirty: 0 kB //等待被寫回到磁盤的內(nèi)存大小。 Writeback: 0 kB //正在被寫回到磁盤的內(nèi)存大小。 AnonPages: 643168 kB //未映射頁的內(nèi)存大小。 Mapped: 355596 kB //設(shè)備和文件等映射的大小。 Shmem: 420 kB Slab: 88932 //內(nèi)核數(shù)據(jù)結(jié)構(gòu)緩存的大小,可以減少申請和釋放內(nèi)存帶來的消耗。 SReclaimable: 38476 kB //可收回Slab的大小。 SUnreclaim: 50456 kB //不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)。 KernelStack: 27088 kB PageTables: 33360 kB //管理內(nèi)存分頁頁面的索引表的大小。 NFS_Unstable: 0 kB //不穩(wěn)定頁表的大小。 Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1511268 kB Committed_AS: 91405828 kB VmallocTotal: 251658176 kB VmallocUsed: 124208 kB VmallocChunk: 251490032 kB -
查看IO內(nèi)存分區(qū):
adb shell cat /proc/iomem
11007000-11007fff : 11007000.I2C0 11008000-11008fff : 11008000.I2C1 11009000-11009fff : 11009000.I2C2 1100a000-1100afff : 1100a000.SPI1 1100f000-1100ffff : 1100f000.I2C3 13040000-13043fff : 13040000.MALI 40000000-42ffffff : System RAM 40080000-40e08fff : Kernel code 40e6c000-4123e31f : Kernel data 43030000-b9ffffff : System RAM bd810000-beffffff : System RAM bf200000-bf32ffff : System RAM -
將system分區(qū)重新掛載為可讀寫分區(qū):
adb remount
-
從本地復(fù)制文件到設(shè)備:
adb push <local> <remote>
-
從設(shè)備復(fù)制文件到本地:
adb pull <remote> <local>
進入adb shell 下 如下命令輸出外部存儲目錄
echo $EXTERNAL_STORAGE
-
查看wifi密碼:
adb shell cat /data/misc/wifi/*.conf
-
刪除system/avi.apk:
adb shell rm /system/avi.apk
-
文件操作
-
刪除文件夾及其下面所有文件:
adb shell rm -r <folder>
-
移動文件:
adb shell mv path/file newpath/file
-
設(shè)置文件權(quán)限:
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
-
新建文件夾:
adb shell mkdir path/foldelname
-
查看文件內(nèi)容:
adb shell cat <file>
-
列出目錄下的文件和文件夾,等同于dos中的dir命令:
adb shell ls
-
進入文件夾,等同于dos中的cd 命令:
adb shell cd <folder>
-
重命名文件:
adb shell rename path/oldfilename path/newfilename
-
-
查看bug報告:
adb bugreport
-
查看ADB幫助:
adb help
-
跑monkey:
adb shell monkey -v -p your.package.name 500
ADB shell
以下命令都是進入adb shell模式下操作的:
-
查看任務(wù)棧中Activity列表
dumpsys activity activities
其中Running activities:描述了當前棧中的Activity信息
dumpsys activity activities | sed -En -e '/Running activities/,/Run # 0/p'
使用此命令可以只輸出Running Activitiess