Android shell 常用 debug 命令

目录

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

相关推荐
xq51486315 分钟前
Linux系统下安装mongodb
linux·mongodb
柒七爱吃麻辣烫15 分钟前
在Linux中安装JDK并且搭建Java环境
java·linux·开发语言
孤寂大仙v1 小时前
【Linux笔记】——进程信号的产生
linux·服务器·笔记
深海蜗牛1 小时前
Jenkins linux安装
linux·jenkins
愚戏师1 小时前
Linux复习笔记(三) 网络服务配置(web)
linux·运维·笔记
JANYI20182 小时前
嵌入式MCU和Linux开发哪个好?
linux·单片机·嵌入式硬件
熊大如如2 小时前
Java NIO 文件处理接口
java·linux·nio
晚秋大魔王2 小时前
OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——nettle库
linux·开源·harmonyos
农民小飞侠2 小时前
ubuntu 24.04 error: cannot uninstall blinker 1.7.0, record file not found. hint
linux·运维·ubuntu
某不知名網友2 小时前
Linux 软硬连接详解
linux·运维·服务器