adb shell:

C:\Users\chenhong>cd ADB

C:\Users\chenhong\ADB>adb
C:\Users\chenhong\ADB>adb devices
List of devices attached
YCYNW18109016358        device

进入shell
C:\Users\chenhong\ADB>adb -s YCYNW18109016358 shell
HWFIG-H:/ $

抓取log
C:\Users\chenhong\ADB>adb -s YCYNW18109016358 logcat >logcat.txt
^C
C:\Users\chenhong\ADB>

Andriod系统日志分为两部分,底层的Linux内核日志输出到/proc/kmsg,Android的日志输出到/dev/log。
[adb] logcat [<option>] ... [<filter-spec>] ...
按级别过滤日志(优先级):
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)
按级别过滤日志则会将该级别及以上的日志输出。

比如命令:
adb logcat *:W
会将Warning、Error、Fatal和Silent日志输出。
按tag和级别过滤日志
adb logcat ActivityManager:I MyApp:D *:S

日志格式:
可以用adb logcat -v <format>选项指定日志输出格式
日志支持以下几种<format>:
brief  默认格式, <priority>/<tag>(<pid>): <message>

process格式,  <priority>(<pid>) <message>

tag格式, <priority>/<tag>: <message>

raw格式,<message>

time格式,<datetime> <priority>/<tag>(<pid>):  <message>
示例: 08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0

threadtime格式,<datetime> <pid> <tid> <priority> <tag>:  <message>
示例: 08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0

long格式, [ <datetime> <pid>:<tid> <priority>/<tag> ]
<message>
示例: [ 08-28 22:39:39.974 1785: 1832 D/HeadsetStateMachine]
           Disconnected process message: 10, size: 0
指定格式可与上面的过滤同时使用,如 adb logcat -v long ActivityManager:I *:S

清空日志
adb logcat -c

内核日志
adb shell dmesg

adb获取包名和Activity的方法:
adb shell dumpsys activity | find "mFocusedActivity"
adb logcat -d -s ActivityManager

安装apk
adb -s <Devices SN> install <apk name>
adb install [-lrtsdg] <path_to_apk>

adb install实际分三步完成:
1. push apk 文件到/data/local/tmp
2. 调用pm install 安装
3. 删除/data/local/tmp下的对应apk文件

覆盖安装
adb install -r <apk name>
卸载apk
adb uninstall <apk name>

从手机中拷贝文件到电脑:local 地址为空,则默认拷贝到电脑当前目录下
adb pull /sdcard/crime.apk 
adb pull <remote> [local]
把电脑中的文件拷贝到手机中:
adb push [local] <remote>
adb push crime.apk  /sdcard/data/data

设备上的文件路径普通权限可能无法直接写入,如果你的设备已经root过,可以先adb push  /path/on/pc /sdcard/filename,
然后adb shell 和su在adb shell 里获取root权限后,cp /sdcard/filename /path/on/device.

清楚app 数据
adb shell pm clear <apk name>
adb shell pm clear com.example.packageneme

查看APP名称,-f 显示APP 路径:
adb shell pm list packges -f

查看系统应用:
adb shell pm list packages -s

查看第三方应用:
adb shell pm list packages -3

过滤查询
adb shell pm list packages | grep mazhuang

向屏幕输入信息:
adb shell input text "insert%stext%shere"
(%s表示空格)

模拟屏幕点击事件:
adb shell input tap 500 1450
(500,1450)表示屏幕上的坐标

模拟手势滑动事件:
adb shell input swipe 100 500 100 1450 100
表示从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms

模拟长按操作,两个相同的坐标,耗时超过500ms
adb shell input swipe 100 500 100 500 500

模拟点按实体按钮:
adb shell input keyevent <keycode>
增加音量
adb shell input keyevent 24
降低音量
adb shell input keyevent 25
静音
adb shell input keyevent 164

25是在AOSP源码中的KeyEvent类里面定义的一个事件常量。该类定义了将近300个事件常量。

keycode        含义
3              HOME键
4              返回键
5              打开拨号应用
6              挂断电话
24            增加音量
25            降低音量
26            电源键
27            拍照(需要在相机应用里)
64            打开浏览器
82            菜单键
85            播放/暂停
86            停止播放
87            播放下一首
88            播放上一首
122          移动光标到行首或列表顶部
123          移动光标到行末或列表底部
126          恢复播放
127          暂停播放
164          静音
176          打开系统设置
187          切换应用
207          打开联系人
208          打开日历
209          打开音乐
210          打开计算器
220          降低屏幕亮度
221          提高屏幕亮度
223          系统休眠
224          点亮屏幕
231          打开语音助手
276          如果没有wakelock则让系统休眠

adb am(Activity Manager)命令启动一个APP、启动Activity、启动广播和服务等等:
启动Activity:
adb shell am start com.example.crime/com.example.crime.MainActivity

启动带参数的:
adb shell am start com.example.crime/com.example.crime.SecondActivity -e argus_name QiuShui

启动隐式引用:(启动谷歌浏览器打开谷歌网址)
adb shell am start -a "android.intent.action.VIEW" -d "https://www.google.com"
-a表示action
-c表示category
-d表示data_uri
-e表示额外Key-Value信息

发送广播和启动服务
adb shell am broadcast [options] <INTENT>
adb shell am broadcast -a "our.specified.action"

手机重启
adb shell am broadcast -a andriod.intent.action.BOOT_COMPLETED
只向广播BOOT_COMPLETED
adb shell am broadcast -a andriod.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReciver

系统预定义广播:
android.net.conn.CONNECTIVITY_CHANGE     网络连接发生变化
android.intent.action.SCREEN_ON                    屏幕点亮
android.intent.action.SCREEN_OFF                   屏幕熄灭
android.intent.action.BATTERY_LOW                电量低,会弹出电量低提示框
android.intent.action.BATTERY_OKAY               电量恢复了
android.intent.action.BOOT_COMPLETED         设备启动完毕
android.intent.action.DEVICE_STORAGE_LOW  存储空间过低
android.intent.action.DEVICE_STORAGE_OK     存储空间恢复
android.intent.action.PACKAGE_ADDED            安装了新的应用
android.net.wifi.STATE_CHANGE                        WiFi连接状态发生变化
android.net.wifi.WIFI_STATE_CHANGED             WiFi状态变为启用/关闭/正在启动/正在关闭/未知
android.intent.action.BATTERY_CHANGED         电池电量发生变化
android.intent.action.INPUT_METHOD_CHANGED    系统输入法发生变化
android.intent.action.ACTION_POWER_CONNECTED    外部电源连接
android.intent.action.ACTION_POWER_DISCONNECTED   外部电源连接断开
android.intent.action.DREAMING_STARTED       系统开始休眠
android.intent.action.DREAMING_STOPPED      系统停止休眠
android.intent.action.WALLPAPER_CHANGED   壁纸发生变化
android.intent.action.HEADSET_PLUG                插入耳机
android.intent.action.MEDIA_UNMOUNTED      卸载外部介质
android.intent.action.MEDIA_MOUNTED           挂载外部介质
android.intent.action.POWER_SAVE_MODE_CHANGED       省电模式开启

启动一个服务
adb shell am startservice "com.example.crime/com.example.crime.MyService"

停止Service
adb shell am stopservice [options] <INTENT>

强制停止应用
adb shell am force-stop <packagename>
停止360安全卫士的一切进程与服务
adb shell am force-stop com.qihoo360.mobilesafe

收紧内存
adb shell am send-trim-memory <pid> <level>
pid : 进程PID
level : HIDDEN、RUNNING_MODERATE、BACKGROUND、RUNNING_LOW、MODERATE、RUNNING_CRITICAL、COMPLETE
adb shell am send-trim-memory 12345 RUNNING_LOW

查看dumpsys 能提供查询信息的服务:
adb shell service list

查看设备型号:
adb shell gerprop ro.product.model

查看电池信息
adb shell dumpsys battery

查看activity 信息
adb shell dumpsys activity
adb shell dumpsys activity activities
adb shell dumpsys activity permissions
adb shell dumpsys activity processes
adb shell dumpsys activity services

查看应用详细信息:
adb shell dumpsys package <package name>

查看应用安装路径:
adb shell pm path <pachage name>

grep过滤查询
adb shell dumpsys activity activities | grep mFocusedActivity
查询进程
adb shell dumpsys activity p <packagename> | grep -i ‘ProcessRecord’ | grep -i 'PID’
查询服务
adb shell dumpsys activity s <package name> | grep -i ‘ServiceRecord’
查询内存使用情况
adb shell dumpsys meminfo <package name>

屏幕分辨率
adb shell wm size

屏幕密度
adb shell wm density
输出示例:Physical density: 420

显示屏参数
adb shell dumpsys window displays

屏幕截图
老版:adb shell screencap /sdcard/screen1.png
新版:adb exec-out screencap -p > sc.png

录制屏幕视频(Andriod 4.4以上):
adb shell screenrecord /sdcard/demo1-0623.png
(录制时可选参数:--size设置视频大小,--time-limit设置最大录制时长等)
需要停止按Ctrl+C,默认录制时间和最长录制时间都是180秒。
如果需要导出到电脑: adb pull /sdcard/filename.mp4

查看进程信息
adb shell ps

查看CPU实时使用情况:
adb shell top

查看进程UID:
1. adb shell dumpsys package <packagename> | grep userId=
2. adb shell cat /proc/<pid>/status  | grep Uid

其他常用命令:
命令                     功能
cat                     显示文件内容
cd                      切换目录
chmod               改变文件的存取模式/访问权限
df                       查看磁盘空间使用情况
grep                   过滤输出
kill                      杀死指定PID的进程
ls                        列举目录内容
mount                挂载目录的查看和管理
mv                      移动或重命名文件
ps                       查看正在运行的进程
rm                      删除文件
top                     查看进程的资源占用情况

以root权限运行adbd
adb root
adb shell

恢复为非root权限
adb unroot

android_id
adb shell settings get secure andriod_id

IMEI
adb shell dumpsys iphonesubinfo  (Android 4.4以下版本)
adb shell
su 
service call iphonesubinfo 1 (Android 5.0以上版本)

Android系统版本
adb shell getprop ro.build.version.release

IP地址
adb shell ifconfig | grep Mask
输出示例:
inet addr:10.130.245.230   Mask:255.255.255.252
inet addr:127.0.0.1 Mask:255.0.0.0

连着WiFi,查看局域网IP
adb shell ifconfig wlan0

查看网络连接信息:网络连接名称、启用状态、IP地址、MAC地址
adb shell netcfg

MAC 地址
adb shell cat /sys/class/net/wlan0/address

CPU信息
adb shell cat /proc/cpuinfo

内存信息
adb shell cat /proc/meminfo

更多硬件与系统属性
adb shell cat /system/build.prop

adb shell getprop <属性名>
属性名                                  含义
ro.build.version.sdk          SDK版本
ro.build.version.release     Android系统版本
ro.build.version.security_patch    Android安全补丁程序级别
ro.product.model              型号
ro.product.brand              品牌
ro.product.name               设备名
ro.product.board               处理器型号
ro.product.cpu.abilist        CPU支持的abi列表
persist.sys.isUsbOtgEnabled      是否支持OTG
dalvik.vm.heapsize            每个应用程序的内存上限
ro.sf.lcd_density                 屏幕密度

修改设置
主要是通过settings命令修改/data/data/com.android.providers.settings/databases/settings.db里存放的设置值
重启设备: adb reboot
修改分辨率:adb shell wm size 480x1024
恢复原分辨率: adb shell wm size reset
修改屏幕密度: adb shell wm density 160
恢复原屏幕密度: adb shell wm density reset
修改显示区域:adb shell wm overscan 0,0,0,200
恢复原显示区域: adb shell wm overscan reset
关闭USB调试模式: adb shell settings put global adb_enabled 0
恢复调试模式: 手机上手动恢复
允许/禁止访问非SDK API:
adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1
adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps

状态栏和导航栏的显示隐藏:
adb shell settings put global policy_control <key-values>
示例: adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3

重新挂载系统system分区:
adb shell
su
mount
mount   -o   remount,rw   -t   yaffs2   /dev/block/platform/msm_sdcc.1/by-name/system   /system

查看连接过的WiFi密码:
adb shell 
su
cat /data/misc/wifi/*.conf

设置系统日期和时间
adb shell
su
date -s 20160823.131500

重启手机
adb reboot

检测设备是否已root:
adb shell
su
此时命令提示符是$则表示没有root权限,是#则表示已root

使用Monkey进行压力测试
Monkey可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。
adb shell monkey -p <packagename> -v 500

开启/关闭WiFi:
adb root
adb shell svc wifi enable
adb root
adb shell svc wifi disable

刷机相关命令
重启到Recovery模式: adb reboot recovery
从Recovery重启到Android: adb reboot
重启到Fastboot模式: adb reboot bootloader
通过sideload更新系统:
1. 重启到Recovery模式:adb reboot recovery
2. 在设备的Recovery界面上操作进入Apply update-Apply for ADB
3. 通过adb上传和更新系统:adb sideload <path-to-update.zip>

安全相关命令
启用/禁用SELinux:
adb root
adb shell setenforce 1
adb root
adb shell setenforce 0

启用/禁用dm_verity
adb root
adb enable-verity
adb root
adb disable-verity

启动server默认连接端口5037:
adb -P <port> start-server

无线连接设备:(设备和电脑在同一个局域网,在端口5555监听TCP/IP连接)
adb tcpip 5555
adb connect <device-ip-address>

或安装终端模拟器,在里面依次运行命令:
su
setprop service.adb.tcp.port 5555
再连接设备IP
adb connect <device-ip-address>

断开无线连接:
adb disconnect <device-ip-address>

---------------------------------------------

几个系统课程:
Docker应用与实战_共39课时-51CTO学院
https://edu.51cto.com/course/18073.html

Docker快速入门视频课程(通俗易懂)_共23课时-51CTO学院
https://edu.51cto.com/course/14479.html

Kubernetes/K8s入门与进阶实战_共69课时-51CTO学院
https://edu.51cto.com/course/12537.html

adb shell and docker_k8s相关推荐

  1. 我的Android进阶之旅------gt;Android中通过adb shell input来模拟滑动、按键、点击事件...

    今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点.好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框, ...

  2. 删除android软件,adb shell删除Android系统下的软件

    一.删除Android系统下的软件,使用adb shell进入系统,然后使用命令重新挂载"/system"目录为读写权限,具体操作及命令如下: 1.打开dos窗口:win+R 输入 ...

  3. emmc linux.格式化参数,大家都是怎么格式化emmc芯片的?能在ADB SHELL 中操作吗?uboot 就实现了GPT分区和烧录功能...

    大家都是怎能格式化emmc芯片的,我用DM3730芯片.用的是2.3.4代码 ,kernel是2.6.37  .系统外部sd启动是可以的,我加入了emmc芯片,我在uboot下分区,在uboot下把E ...

  4. android跳转到支付宝扫码,【笔记】通过adb shell启动支付宝扫码登录

    支付宝包名 :com.eg.android.AlipayGphone 启动支付宝 adb shell am start com.eg.android.AlipayGphone/.AlipayLogin ...

  5. android adb shell 命令大全

    1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): androi ...

  6. adb shell am 命令启动activity、Service、Borascast

    adb shell am start-activity -n com.chaozh.iReader/com.zhangyue.iReader.read.ui.Activity_BookBrowser_ ...

  7. 安卓从sd引导linux,从android中的adb shell手动挂载SD卡

    我不敢相信没有人在2个月内回复你?哇-多么懈怠! 好吧无论如何我想我应该填写一些信息并提出一些问题. 1).您是否拥有root权限,或者是否从发布映像/固件中获取了系统vold?像Linux Supe ...

  8. adb和adb shell

    adb常用命令: adb devices 查看与计算机连接的所有模拟器和手机 输出格式:serialnumber state adb get-serialno 获取与计算机连接设备的serialnum ...

  9. ubuntu 使用 adb shell

    ubuntu 使用adb shell命令配置 想要在ubuntu下使用adb 命令识别新连接的手机设备需要先配置一下adb_usb.ini  文件 该文件在路径 ~/.android/ 目录下 ,若不 ...

  10. adb shell dumpsys 命令 查看内存

    android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 n ...

最新文章

  1. 使用vSphere Host Update Utility 4.0升级ESX 3到4.0版本
  2. 【软件工程】5.8 黑盒白盒测试
  3. FineUI(开源版)v6.0中FState服务器端验证的实现原理
  4. 皮尔逊相关系数 定义+python代码实现 (与王印讨论公式)
  5. 解决undefined reference to symbol ‘sem_close@@GLIBC_2.2.5‘问题
  6. Error: Can't resolve 'babel-loader'
  7. 计算机基础是高校必修课,高校计算机基础教育教学方式改革
  8. 配置csrf_django 入门第一课 配置文件
  9. 用python开启相机_使用“打开”编辑相机设置
  10. NLP---将改变您在未来的沟通方式的7种 nlp 技术 (第一部分(附原始论文))
  11. python学习浅谈(python2.x以及python3.x的区别、IDE)
  12. Linux内核学习笔记(2)-- 父进程和子进程及它们的访问方法
  13. MySQL 性能优化一
  14. Eclipse 下Struts 2.1.6+ 和spring 2.5.5 整合
  15. Photoshop学习(一)Ps基础
  16. DataTables warning:table id = TableDate: Cannot reinitialise DataTable的解决办法
  17. SSD: Single Shot MultiBox Detector 模型fine-tune和网络架构
  18. <<视觉问答>>2022:CLIP Models are Few-shot Learners: Empirical Studies on VQA and Visual Entailment
  19. 5大巨头入场瓜分3万亿市场!加密世界vs.互联网史诗战争将打响!
  20. Vue 使用 Vue-socket.io 实现即时聊天应用(实战篇 二)

热门文章

  1. 工作之外的闲暇时光(玩魔方)
  2. linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互
  3. 如何使用GOOGLE高级搜索技巧
  4. python爬取京东商品评价信息
  5. Hi3516A开发--板卡烧写
  6. Linux查看内存状态ariveble,分析996个词根在各大考纲词汇中的作用(三)
  7. matlab栅格化处理,栅格化处理方法和栅格图像处理器的制造方法
  8. win7系统64位系统怎么计算机配置,电脑装64位系统有什么要求|64位系统安装条件是什么...
  9. Kubernetes基础:Pause镜像源码解读
  10. 服务器存储光模块需要同型号吗,最全面的光模块系列分类讲解