不同操作系統關鍵字:
版權聲明:本文為CSDN博主「熱愛學習的吉吉」的原創文章,
原文鏈接:https://blog.csdn.net/u010871962/article/details/78370069
操作系統 | 1 | 2 |
---|---|---|
window | finstr | ipconfig |
Linux | grep | ifconfig |
adb 掛載及過濾
獲得root權限后,獲得寫權限
adb disable-verity 第一次 adb root掛載
adb remount (重新掛載系統分區,使系統分區重新可寫,只針對system分區)。 adb shell mount -o remount, rw /[路徑] (重新掛載其他分區,使其他分區重新可寫)搜索
adb shell cat path | grep(findstr) +字串 過濾字串路徑 adb shell getprop |grep(findstr) +字串 過濾字串prop屬性所有關于日期時間的
adb shell getprop | grep date adb shell settings get global auto_timedd過濾設備進程
adb shell ps | grep telephony殺掉對應的進程
adb shell kill 2392
產品信息
查看當前產品的名稱
adb shell getprop ro.product.name查看當前系統版本
adb shell getprop ro.build.version.release查看當前產品cpu架構
adb shell getprop ro.product.cpu.abi 查看當前產品cpu架構MAC地址
adb shell cat /sys/class/net/wlano/address IMEI地址:adb shell settings get secure android_id設備得IMEI
adb shell service call iphonesubinfo 1CPU信息
adb shell cat /proc/cpuinfoCPU結構幾核
adb shell cat /proc/cpuinfo|grep architecture更多硬件與系統屬性
adb shell cat /system/build.prop查看手機RAM
adb shell cat /proc/meminfo查看屏幕密度
adb shell wm density (單位dpi)
dumpsys使用
查看分辨率
adb shell dumpsys display | findstr DisplayDeviceInfo查看電池狀況
adb shell dumpsys battery (scale代表最大電量,level代表當前電量)顯示屏參數
adb shell dumpsys window displays | |
---|---|
adb shell dumpsys activity | 查看ActvityManagerService 所有信息 |
adb shell dumpsys activity activities | 查看Activity組件信息 |
adb shell dumpsys activity services | 查看Service組件信息 |
adb shell dumpsys activity providers | 查看ContentProvider組件信息 |
adb shell dumpsys activity broadcasts | 查看BraodcastReceiver信息 |
adb shell dumpsys activity intents | 查看Intent信息 |
adb shell dumpsys activity processes | 查看進程信息 |
查看最近任務棧
adb shell dumpsys activity recents查看棧頂應用
adb shell dumpsys window | grep mCurrentFocus adb shell dumpsys activity | grep mResumedActivity // Android10.0之后查棧頂應用activity
adb shell dumpsys activity activities | grep mFocuseActivity // Android10.0之前抓應用包相關
adb shell dumpsys package 包名 //UserId、ContentProvider、權限信息、版本信息、路徑等
adb shell dumpsys package com.google.android.contacts | grep version //看聯系人應用版本號
adb shell dumpsys package com.google.android.apps.messaging | grep version //查看短信應用版本號磁盤狀態
adb shell dumpsys diskstats
自帶工具
屏幕截圖
adb shell screencap -h 幫助信息
// Android10版本
adb exec-out screencap -p >sctest.png
//舊版本可以用
adb shell screencap -p /sdcard/**.png錄制屏幕
adb shell screenrecord -help 幫助信息
adb shell screenrecord /sdcard/.mp4 adb pull /sdcard/.mp4 ./自動化Monkey
adb shell monkey -p <packagename> -v 500
adb shell wm
-
修改分辨率
adb shell wm size 480x1024
-
恢復分辨率
adb shell wm size reset:恢復分辨率
adb shell PM:
查看系統應用
adb shell pm list packages -f
adb shell pm list packages -f | grep 應用名字部分字串查看三方應用
adb shell pm list packages -3查看應用apk路徑
adb shell pm path com.xxx.camera查看權限列表
adb shell pm list permissions -g -d清除數據
adb shell pm clear 應用包名
adb shell AM:
啟動activity組件
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
adb shell am start -n 包名/包名+類名 -es "toast" "Hello,world!" //啟動activity并加Toast提示。服務
serviceadb shell am startservice -n ...
adb shell am startservice -n com.android.systemui/.SystemUIService //啟動手機虛擬按鍵廣播
adb shell am broadcast -a ...停止應用
adb shell am force-stop <packagename>收緊內存
adb shell am send-trim-memory <pid>設置本地locu.prop
adb shell setprop key value查看本地locu.prop
adb shell getprop key
抓Log命令
- adb logcat --help 選項解析
選項 | 用途 |
---|---|
-s | 設置輸出日志的標簽, 只顯示該標簽的日志; adb logcat -s "TAG" 只打印包含有TAG的日志,無此TAG不打印 |
-f | 將日志輸出到文件, 默認輸出到標準輸出流中, -f 參數執行不成功; 使用這個adb logcat > log 替換 |
-r | 按照每千字節輸出日志, 需要 -f 參數, 不過這個命令沒有執行成功; |
-n | 設置日志輸出的最大數目, 需要 -r 參數, 這個執行 感覺 跟 adb logcat 效果一樣; |
-v | 設置日志的輸出格式, 注意只能設置一項; |
-v | |
---|---|
adb logcat -v time 可以查看看日志的輸出時間 | "time"格式 : "日期 時間 優先級 / 標簽 (進程ID) : 進程名稱 : 日志信息 " |
adb logcat -v thread | "thread"格式 : " 優先級 ( 進程ID : 線程ID) 標簽 : 日志內容 " |
adb logcat -v long | "long"格式 : " [ 日期 時間 進程ID : 線程ID 優先級 / 標簽] 日志信息 " |
adb logcat -v brief | "brief"格式 : 這是默認的日志格式 " 優先級 / 標簽 (進程ID) : 日志信息 " |
adb logcat -v process | "process"格式 : " 優先級 (進程ID) : 日志信息 " |
adb logcat -v tag | "tag"格式 : " 優先級 / 標簽 : 日志信息" ,"raw"格式 : 只輸出日志信息, 不附加任何其他 信息 |
選項 | 用途 |
---|---|
-c | 清空所有的日志緩存信息; |
-d | 將緩存的日志輸出(請勿阻止); adb logcat -d -v time -b all > fifle.txt |
-t | 輸出最近的幾行日志, 輸出完退出(請勿阻止);adb logcat -t 5 可以輸出最近的5行日志 |
-g | 選項 : 查看日志緩沖區信息; |
-b | 加載一個日志緩沖區, 默認是 main, 下面詳解; |
adb logcat -b 緩沖區類型 | |
---|---|
system緩沖區 | 與系統相關的日志信息, |
radio緩沖區 | 廣播電話相關的日志信息 |
events緩沖區 | 事件相關的日志信息, |
main緩沖區 | 默認的緩沖區 |
adb logcat -b kernel
adb logcat -v time -b main -b events -b system > startlog.txt
-
抓內核日志信息:
adb shell dmesg > dmesg.txt
-
抓bugreport壓縮包(adb高版本支持 如:1.0.39)
: adb bugreport ./
-- "-B"選項 : 以二進制形式輸出日志;
過濾項格式 : <tag>[:priority] , 標簽:日志等級,
- *默認的日志過濾項是 info : " :I " ;
-- V | Verbose (明細) |
-- D | Debug (調試) |
-- I | Info (信息); |
-- W | Warn (警告); |
-- E | Error (錯誤); |
-- F | Fatal (嚴重錯誤); |
-- S | Silent(Super all output) (最高的優先級, 可能不會記載東西); |
如:
//過濾警告級別及級別以上的日志(Warn、Error、Fatal等)
adb logcat *:W
//過濾錯誤級別包含“chrome”字串的日志
adb logcat *:E | grep chrome
使用管道過濾日志
過濾字符串忽略大小寫 : adb logcat | grep -i wifi使用正則表達式匹配
adb logcat | grep "^..Activity" 就可以匹配日志中的 "V/ActivityManager" 字符串;抓取開機過程中log:
pod_debug 置1,打開ipod debug模式,這樣的話,ipo關機后,adb仍然可以處于工作的狀態
adb root
adb shell setprop ipod_debug 1-
聯合過濾打印:
adb logcat Tag1:I Tag2:D*S
PullLog:
set log_path = %date: =%%time::=%
set log_path = %log_path:/ =%
mkdir "log%log_path%"
cd "log%log_path%"
adb wait-for-devices
adb remount
adb pull /data/log/android_log/CleanLog:
adb logcat -c
adb shell rm /data/log/android_log/*
adb shell rm /data/anr/*
pause
模擬手機按鍵
HOME鍵: adb shell input keyevent 3
返回鍵 :4 ,音量+:24,,音量-:25,電源鍵:26
菜單鍵:82 ,靜音鍵:164 ,點亮屏幕:224 熄滅屏幕:223
媒體控制:播放/暫停:85,停止86,下一首:87,上一首:88 ,恢復:126 ,暫停:127
滑動解鎖
adb shell input swipe 300 1000 300 500 (起點終點坐標)
輸入文本
adb shell input text hello (出現hello文本框)-
Adb 高級:
-
Adb運行原理:
adb運行原理是PC端的adb server 與手機端的守護進程adbd建立連接,然后PC端的adb client通過adb server轉發命令,adbd收到命令后解析運行。
所以如果adbd以普通權限運行,有些通過root權限才能執行的命令無法直接用 adb xxx執行。
這是可以adb shell 然后 su root 后執行命令,也可以讓adbd 以root權限執行,這就可以隨意執行最高權限命令了。
adb disable-verity 第一次
adb root 正常輸出: restarting adbd as root
三星手機可能執行adb root無法獲取root權限,需要安裝 adb Insecure,然后adb root。
非root權限:adb unroot
-
adb 查看設備
adb [-d|-e|-s <SerialNumber>] <command>
注:僅有一個設備,可以省略 [-d|-e|-s <SerialNumber>] 這一部分,直接adb <command>
參數 含義 -d 指定當前唯一通過usb連接Android設備 -e 指定當前唯一的Android模擬器 -s <SerialNum> 指定相同序列號的設備/模擬器,<SerialNum> 通過adb devices獲取。 -
查看應用列表的基本命令格式
adb shell pm list package [-f|-d|-e|-s|-3|-i|-u|-user USER_ID] [FILTER]
參數 顯示包名列表 -f 顯示應用關聯的apk文件 -d 只顯示disable應用 -e 只顯示enable應用 -s 只顯示系統應用 -3 只顯示三方應用 -i 只顯示installed應用 -u 只顯示uninstalled應用 --user USER_ID 只顯示id用戶的空間的所有包 FILTER 只顯示 grep/findstr +字串 的應用 -
安裝apk adb install 其實分三步走: 1.push apk文件到 /data/local/tmp 2.adb shell 到調用 pm insatll 安裝 3.刪除 /data/local/tmp 下對應apk文件 所以必要時可以手動分步執行安裝過程。 adb insatll [-lrtsdg] <path_to_apk>
參數 含義 -l /mnt/asec/安裝到保護目錄 -r 允許覆蓋安裝 -t testonly="true"安裝測試 -d 降級覆蓋安裝 -g 授予所有運行權限安裝 無線連接,adb支持,無需USB線 1.連接同一個wifi 2.設備和電腦先連接USB線 3.adb tcpip 5555 4.斷開USB 5.找到設備IP地址 6.通過IP連接 adb connect <device-id-address> 7.adb devices 輸出:<devices-ip-address>:5555 devices 表示連接成功 8.斷開 adb disconnect
-
Linux的lsusb:Android usb 設備管理器lsusb 分析_Tony的專欄-CSDN博客
附:
使用adb命令結束進程的方法有兩種的相同作用與區別 1、adb shell " kill -9 <進程號> " 結束進程 2、adb shell " am force-stop " <包名> " 結束進程樹
linux下殺死進程(kill)的N種方法 https://blog.csdn.net/andy572633/article/details/7211546
kill -3 pid 和kill -9 pid https://blog.csdn.net/fan380485838/article/details/81018734
linux命令-kill pid和kill -9 pid https://blog.csdn.net/weixin_43851795/article/details/85038948?
系統穩定性問題分析,當遇到系統卡死時,我們經常要使用“kill -3 pid”來打印System_Server進程各個線程的Java調用棧, 根據線程狀態及調用棧來更進一步定位問題點,當然某個應該界面卡頓時間長時也可以通過這個命令來抓取Java調用棧進行分析。 adb shell “kill -3 pid”后文件的保存路徑為:/proc/${pid}/cwd。文件名為:antBuilderOutput.log
創建SDCard: mksdcard 1024M ~/名稱.img
-
啟動DDMS:
ddms
安裝應用程序: adb install -r 應用程序.apk
遇到問題:INSTALL_FAILED_VERIFICATION_FAILURE adb shell settings put global verifier_verify_adb_installs 0 adb shell settings put global package_verifier_enable 0 如果不能解決。這時,可以將apk放到這個目錄下:/system/app
缷載apk包: adb shell cd data/app rm apk adb uninstall apk包的主包名 adb install -r apk包
查看adb命令幫助信息: adb help
adb shell后面跟的命令主要來自: 源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
刪除系統應用: adb remount (重新掛載系統分區,使系統分區重新可寫)。 adb shell cd system/app rm *.apk
發布端口:你可以設置任意的端口號,做為主機向模擬器或設備的請求端口。如: adb forward tcp:5555 tcp:8000
復制文件: 復制一個文件或目錄到設備或模擬器上: 如:adb push test.txt /tmp/test.txt 從設備或模擬器上復制一個文件或目錄: 如:adb pull /addroid/lib/libwebcore.so .
查看bug報告: adb bugreport 記錄無線通訊日志:
一般來說,無線通訊的日志非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄: adb logcat -b radio
獲取設備的ID和序列號: adb get-product adb get-serialno
訪問數據庫SQLite3 adb shell sqlite3
版權聲明:本文為CSDN博主「熱愛學習的吉吉」的原創文章,
原文鏈接:https://blog.csdn.net/u010871962/article/details/78370069