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的进程号、服务的进程号过滤查看代码执行流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/26348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java进阶工具: BigInteger, BigDecimal, 正则表达式 Arrays 实战指南

在Java编程的世界里,处理大数据运算、精确的财务计算、复杂的文本匹配以及高效数组操作是开发者的日常挑战。本文将深入剖析 BigInteger、BigDecimal 类的高级运算功能,揭秘正则表达式的强大与灵活性,并介绍 Arrays 类这一数组操作的利器&…

常见报错及程序框架图

程序框架图 程序流程图又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。程序框图是进行程序设…

【安装笔记-20240612-Linux-内网穿透服务之cpolar极点云】

安装笔记-系列文章目录 安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 文章目录 安装笔记-系列文章目录安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 前言一、软件介绍名称:cpolar极点云主页官方介绍 二、安装步骤测试版本:openwrt-…

java多线程临界区介绍

在Java多线程编程中,"临界区"是指一段必须互斥执行的代码区域。当多个线程访问共享资源时,为了防止数据不一致或逻辑错误,需要确保同一时刻只有一个线程可以进入临界区。Java提供了多种机制来实现这一点,例如synchroniz…

理解 GPIO 的推挽与开漏

在日常的嵌入式开发过程当中,GPIO可以说是接触最多的外设了。小到点亮一个LED灯,大到模拟总线通讯,都必不可少地需要用到GPIO资源。而对于GPIO的两大输出模式 ——推挽输出和开漏输出,你是否真正理解了呢? 首先我们看…

CPI降温仍猛砍降息预期!美联储继续按兵不动,预计今年仅降息一次

要点: 美联储继续保持利率不变,符合市场预期。 决议声明不再说降通胀缺乏进一步进展,改称取得适度的进... 要点: 美联储继续保持利率不变,符合市场预期。 决议声明不再说降通胀缺乏进一步进展,改称取得适度…

linux开发过程

Linux开发过程可以大致分为以下几个阶段: 一、需求分析阶段 与客户或利益相关者合作,明确产品的需求和目标。确定产品的功能、性能要求、用户界面设计等。 二、架构设计阶段 制定产品的整体架构设计,确定各个模块的功能和接口。包括硬件架…

【中间件】Pulsar集群安装

目录 一、Pulsar介绍 1.1 Pulsar基本介绍 1.2 Pulsar架构 Producer & Consumer Apache Zookeeper Pulsar Brokers Apache Bookkeeper 二、Zookeeper集群安装 三、Pulsar集群安装 3.1 bookie与broker配置 3.1.1 修改bookie配置文件 3.1.2 修改broker配置文件 3…

渗透测试工具NMAP

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全…

java.lang.reflect.Type是什么

Java 中的 java.lang.reflect.Type 在 Java 中,java.lang.reflect.Type 是一个接口,代表所有类型的通用超类型。它包括原始类型、参数化类型、数组类型、类型变量和基本类型。在反射机制中,Type 接口用于提供对 Java 类型系统的抽象表示&…

Vue3 自定义渲染器 API createRenderer()(七)

createRenderer() createRenderer() 是一个高级 API,它允许你创建自定义的渲染器。这个 API 主要是为了支持 Vue 的非 DOM 渲染目标,如 WebGL、Canvas、Web Workers、自定义 DOM 实现等。在实际使用中,自定义渲染器是一个复杂的任务&#xf…

debian10 arm芯片安装.net6

前往下载dotnet sdk https://download.visualstudio.microsoft.com/download/pr/46083246-216c-4d0c-905f-67f335466a23/505f9e26b85d7dd29d79a7e11da37926/dotnet-sdk-6.0.423-linux-arm.tar.gz将文件放在root目录下,如果其他自定义目录也可以下载完成后&#xff0…

pytest中一个场景测试的demo

注意点1: allure.severity 是一个装饰器,用于设置测试用例的严重性级别。 allure.severity_level.CRITICAL 是Allure提供的严重性级别之一,表示这个测试用例极为重要。allure.severity_level.BLOCKER:阻塞级别的问题&#xff0c…

【Python入门与进阶】Python拼接字符串的常用操作

在Python中,有多种方法来拼接字符串。以下是一些常用的字符串拼接操作: 1. 使用 操作符 这是最简单直接的字符串拼接方法。 str1 "Hello" str2 "World" result str1 " " str2 print(result) # 输出: Hello Worl…

Flutter-使用MethodChannel 实现与iOS交互

前言 使用 MethodChannel 在 Flutter 与原生 Android 和 iOS 之间进行通信,可以让你在 Flutter 应用中调用设备的原生功能。 基础概念 MethodChannel:Flutter 提供的通信机制,允许消息以方法调用的形式在 Flutter 与原生代码之间传递。方法…

【产品经理】ERP对接电商平台

电商ERP对接上游平台,会需要经历几个步骤环节,包括店铺设置等。 电商ERP对接上游电商平台,其主要设置为店铺设置、商品同步、库存同步,本次讲解下店铺设置应该如何进行设置,以及在设置过程中的可能出现的踩坑事项。 …

深入浅出: XML HttpRequest 入门指南

XML HttpRequest(XHR) 技术是构建动态、响应式网站的关键。这项技术使得网页能在不重新加载整个页面的情况下与服务器进行数据交互,极大地优化了用户的交互体验。 定义 XML HttpRequest XML HttpRequest 是一种浏览器与服务器进行数据交换的…

互联网和万维网都有哪些区别?

互联网(Internet)与万维网(World Wide Web,简称WWW或Web)是两个相互关联但概念上有所区别的技术框架: 1. 定义与范围: • 互联网 是一个全球性的计算机网络系统,它将世界各地的计算…

windows cmd 使用linux命令

下载安装msys2 path中添加: C:\msys64\mingw64\bin C:\msys64\usr\bin

CSS之块浮动

在盒子模型的基础上就可以对网页进行设计 不知道盒子模型的可以看前面关于盒子模型的内容 而普通的网页设计具有一定的原始规律,这个原始规律就是文档流 文档流 标签在网页二维平面内默认的一种排序方式,块级标签不管怎么设置都会占一行,而同一行不能放置两个块级标签 行级…