不同操作系统关键字:
版权声明:本文为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