当前位置: 首页 > java >正文

android ams调试指令介绍

ams提供了很多调试指令,包括组件管理、状态等,分为两大类:
1).am指令,形如 am xxx
2).dump指令,形如dumpsys activity xxx
源码位于:ActivityManagerShellCommand和ActivityManagerService

大家可以通过am -hdumpsys activity -h来查看命令用法,支持的命令很多的,下面介绍一些常用的命令。

组件管理

启动activity

通过am start/am start-activity来启动activity

eg1: 通过component启动

am start -n am start -n com.android.settings/.Settings

eg2: 通过action启动

am start -a com.android.intent.action.SHOW_BRIGHTNESS_DIALOG

eg2: 通过url启动

am start -d "http://www.bing.com" [-a android.intent.action.VIEW]

eg2: 带参数

  • 通过url启动,参数加在url中,key1=value2&=key2=value2,如"https://cn.bing.com/search?q=hello"
am start -d "https://cn.bing.com/search?q=hello" -a android.intent.action.VIEW
  • 不通过url启动,参数加在后面,如string类型参数–es key=value

启动service/停止service

通过am start-service/am startservice/am start-foreground-service/来启动service和foregroundservice,一般是通过component和action来启动
eg1:启动服务

am start-service com.example.myapp/.MyService
am start-service -a "example.intent.action.MY_SERVICE"

eg2:停止服务

am stop-service com.example.myapp/.MyService
am stop-service -a "example.intent.action.MY_SERVICE"

发送broadcast

通过am broadcast来发送广播
eg1:发送广播

am broadcast -a "android.intent.action.BOOT_COMPLETED"

eg2:只给某个应用发送广播

am broadcast -a "android.intent.action.BOOT_COMPLETED" -n com.android.deskclock/.AlarmInitReceiver

进程管理

抓取进程java heap

am dumpheap <进程名>

停止进程

am force-stop <包名>
am stop-app <包名>

模拟crash

am crash <包名或进程id>

kill后台进程

am kill <包名>

系统

挂起系统

am hang

重启系统

不进行bootloader、kernerl阶段

am restart

获取当前user

am get-current-user

切换user

am switch-user <用户id>

获取系统配置

am get-config

dumpsys

查看当前activity stack

可以当前Focus的activity

dumpsys activity a

查看最近任务的activity stack

同导航栏的多任务按键

dumpsys activity r

查看应用退出的原因

dumpsys activity exit-info <包名>
http://www.xdnf.cn/news/2312.html

相关文章:

  • 【数据结构】·励志大厂版(复习+刷题):二叉树
  • 从零搭建云原生后端系统 —— 一次真实项目实践分享
  • django admin 中更新表数据 之后再将数据返回管理界面
  • python+flask+flask-sockerio,部署后sockerio通信异常
  • vue中将html2canvas转成的图片传递给后台 Python Flask 服务
  • C#中属性和字段的区别
  • 毕业设计-基于机器学习入侵检测系统
  • Java学习手册:Java开发常用的内置工具类包
  • c语言知识整理
  • ADC单通道采集实验
  • 农经权利用mdb与dbf生成公示表
  • 上位机知识篇---寻址方式
  • 通过gap看margin和padding在布局中的应用
  • 摩尔投票法详细介绍
  • void指针为何能幻化有数据类型?
  • Linux下的I/O复用技术之epoll
  • Linux:进程间通信->命名管道
  • 【WSL】wsl2出现Exec format error的解决办法
  • 矫平机终极指南:特殊材料处理、工艺链协同与全球供应链管理
  • Java 线程的六种状态与完整生命周期详解
  • YOLOv8改进新路径:Damo-YOLO与Dyhead融合的创新检测策略
  • C语言学习之调试
  • 小白自学python第三天
  • 当高级辅助驾驶遇上“安全驾校”:NVIDIA如何用技术给无人驾驶赋能?
  • Python类和对象四(十三)
  • 2025雅思口语工具Top10:AI软件真实测评
  • 在springboot项目中,如何进行excel表格的导入导出功能?
  • JavaScript基础-算数运算符
  • (四) 实战Trae 编译调试C++项目(以minidocx为例)
  • Winform(2.多线程)