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

Android shell 常用 debug 命令

目录

  • 1、查看版本
  • 2、am 命令
  • 3、pm 命令
  • 4、dumpsys 命令
  • 5、sed命令
  • 6、log定位查看APK进程号
  • 7、log定位使用场景

1、查看版本

1.1、Android串口终端执行
getprop ro.build.version.release #获取Android版本
uname -a #查看linux内核版本信息
uname -r #单独查看内核版本

1.2、linux服务器执行
lsb_release -a #查看Linux服务器 Standard Base (LSB) 系统上获取发行版本信息

1.3、Android源码的查看版本
有几种常用的方法可以实现
方法一:如果Android源码已经全编译过,可以在编译生成的build.prop文件中查看ro.build.version.release的值。这个文件通常位于out/XXX/system/build.prop路径下。
方法二:可以在源码build/core/version_defaults.mk文件中搜索PLATFORM_VERSION的值,这个值通常表示源码的版本号。

2、am 命令

调用ActivityManager
1)am start -a android.intent.action.VIEW #发送 intent 隐式action方式
2)am start -n 包名/类名 #启动Activity 显示activity方式
3)am startservice -n 包名/类名 #启动service
4)am boradcast -a “广播Action” #发送广播
5)force-stop 包名 #强行停止应用

3、pm 命令

1)pm list packages #显示所有已安装的apk包名
2)pm list packages -f #显示所有已安装的apk包名及对应的apk位置
3)pm install FileManager.apk #安装FileManager.apk
4)pm install -r FileManager.apk #强制安装,安装过的会覆盖,具体看命令结果提示
5)pm uninstall com.google.vending #卸载goole play,com.google.vending为apk的包名
6)pm dump com.google.android.gms | grep version 查看GMS版本号
7)pm enable com.mediatek.dtv.tvinput.dvbtuner #启动对应程序
8)pm clear your_package_name #清除应用数据

4、dumpsys 命令

dumpsys window #查看窗口信息。在客户端UI出问题时,可用来对比正常和异常的此打印,确定出问题的包名
其中:
1)dumpsys window animator //获取窗口动画状态,Window编号数值越大越接近用户,覆盖在其他窗口之上。可根据

console:/ # dumpsys window animator                                        
WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)Display{#0 state=ON size=1280x720 ROTATION_0}:Window #0: WindowStateAnimator{76c61dd com.droidlogic.launcher/com.droidlogic.launcher.main.MainActivity}Window #1: WindowStateAnimator{1422e87 com.android.tv.settings/com.android.tv.settings.MainSettings}其中,可在 dumpsys window windows 中根据 76c61dd、1422e87 编号查看窗口的详细内容

2)dumpsys window windows //查看各窗口显示的具体信息

5、sed命令

//sed命令截取特定字符串(例如"03-02 10:01:21.235")以及之后的内容到文件末尾,并将其保存到新文件中。 $代表文件的最后,并打印(p)这些行
sed -n '/03-02 10:01:21.235/,$ p' original_file.txt > new_file.txt
//截取特定字符串所在行之间的内容,并将这些内容保存到新文件中
sed -n '/03-04 11:52:44.227/,/03-04 11:52:44.176/p' original_file.txt > new_file.txt
//将original_file.txt文件从第二行开始到最后的内容复制到new_file.txt。
sed '1,$!d' original_file.txt > new_file.txt

6、log定位查看APK进程号

ActivityManager: Start proc //定位开机第一次唤醒的apk进程名857,如果中途被杀掉了会重新唤醒一个新的进程名

ActivityManager: Start proc 857:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}

7、log定位使用场景

1)使用ActivityTaskManager: topActivity.packageName定位开始界面
2)sed截取内容出问题前的界面到文件末尾
3)和正常log 进行对比,搜索出现问题是可能会有的特定字符串(如mute)
4)使用apk的进程号、服务的进程号过滤查看代码执行流程

相关文章:

  • 代码整洁之道学习笔记
  • React+TS前台项目实战(一)-- 项目初始化配置及开此系列的初衷
  • 【纯血鸿蒙】——自适应布局如何实现?
  • 电商平台系统||电商|跨境电商项目的搭建都需要哪些电商API接口支撑
  • AI大模型的战场正在分化:通用大模型与垂直大模型你更青睐哪一方?
  • JVM垃圾回收器介绍
  • 图文解析ASN.1中BER编码:结构类型、编码方法、编码实例
  • C语言TC中有⼏个画矩形函数?怎么使⽤?
  • C++中的观察者模式
  • rizhuti1.9-最新版-推荐文章缩略图
  • 【软件安装12】CloudCompare点云工具安装 Ubuntu18.04
  • Windows下对于Qt中带 / 的路径的处理
  • SpringBoot解决跨域的三种解决方案
  • 【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)
  • C#——值类型和引用类型的区别详情
  • [Vue CLI 3] 配置解析之 css.extract
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【React系列】如何构建React应用程序
  • Create React App 使用
  • Django 博客开发教程 8 - 博客文章详情页
  • Hibernate最全面试题
  • JS笔记四:作用域、变量(函数)提升
  • linux安装openssl、swoole等扩展的具体步骤
  • ng6--错误信息小结(持续更新)
  • ReactNative开发常用的三方模块
  • 聚簇索引和非聚簇索引
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何利用MongoDB打造TOP榜小程序
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 学习使用ExpressJS 4.0中的新Router
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #if #elif #endif
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (SpringBoot)第二章:Spring创建和使用
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (规划)24届春招和25届暑假实习路线准备规划
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core中的去虚
  • .NET的数据绑定
  • .net分布式压力测试工具(Beetle.DT)
  • .net生成的类,跨工程调用显示注释
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序
  • [Algorithm][动态规划][01背包问题][目标和][最后一块石头的重量Ⅱ]详细讲解
  • [Apio2012]dispatching 左偏树
  • [C#基础知识系列]专题十七:深入理解动态类型
  • [C++]STL之map
  • [C++]类和对象【上篇】