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 命令

查看APK版本号
dumpsys package com.zeasn.launcher | grep -i version

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

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android文件架构详解 cache : 是缓存临时文件夹,据说是除了T-mobile的OTA更新外,别无用处。 红色标记的两个文件是debug模式下产生的 data : 存放用户安装的软件以及各种数据。 default.prop : 默认配置文件 dev : 设备节点文件的存放地 etc : 指向 /system/etc ,配置文件存放目录 init : 系统启动到文件系统的时候第一个运行的程序。 init.goldfish.rc : 初始化文件 init.rc : 初始化文件 proc : /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。 root : 为空 。 sbin: 只放了一个用於调试的adbd程序 sdcard: 是SD卡中的FAT32文件系统挂载的目录 sqlite_stmt_journals: 一个根目录下的tmpfs文件系统,用於存放临时文件数据。 sys : 用於挂载 sysfs文件系统。 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs中的文件属性来修改设备的属性值 system :系统中的大部分东西都在这各目录下,很重要的一个目录文件 system目录是在Android文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下,我看来是一个真正的rootfs。他在Android手机中存放在nandflash的 mtd3中,是一个yaffs2文件系统,在启动时被挂载在root的/system目录下,其中包含有: # ls -a -l /system drwxr-xr-x root 208 1970-01-01 08:00 xbin drwxr-xr-x root root 1970-01-01 08:00 modules drwxr-xr-x root root 2010-06-23 09:39 framework drwxr-xr-x root root 2010-06-23 09:39 fonts drwxr-xr-x root root 2010-06-23 09:39 etc -rw-r--r-- root root 2197 2010-06-23 09:39 build.prop drwxr-xr-x root root 2010-06-23 09:39 media drwxr-xr-x root shell 2010-06-23 09:39 bin drwxr-xr-x root root 2010-06-23 09:39 usr drwxr-xr-x root root 2010-06-23 09:39 app drwxr-xr-x root root 2010-06-23 09:39 lost+found drwxr-xr-x root root 2010-06-23 09:39 lib drwxr-xr-x root root 2010-06-23 09:39 sd -rw-r--r-- root root 1452010-06-23 09:39 init.rc # xbin :下放了很多系统管理工具,这些工具不是到toolbox的链接,每个都是可执行程序。如果你看到这些命令你会发现他们根本不常用,他们都是为系统管理员准备的,是一些系统管理和配置工具。这个文件夹的作用相当於标准Linux文件系统中的 /sbin。 modules:使用来存放内核模块(主要是fs和net)和模块配置文件的地方。 framework: 是JAVA平台的一些核心文件,属於JAVA平台系统框架文件。里面的文件都是.jar和.odex文件。 备注:什么是odex文件? odex是被优化过的JAVA程序文件,体积通常是.jar的4倍左右。执行效率比.jar高。 fonts :字体库文件的存放目录。 etc :这里存放了系统中几乎所有的配置文件,根目录下的/etc就链结於此。 build.prop :是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件。 media :里面主要是存放了系统的铃声的,分为 notifications(通知)、ui(界面)、alarms(警告)和ringtones(铃声),里面都是.ogg音频文件。 bin :是存放用户常用的工具程序的,其中大部分是到toolbox的链接(类似嵌入式Linux中的busybox)。toolbox应该是 google简化版的busybox。 usr :用户的配置文件,如键盘布局、共享、时区文件等等。您可以cat 来看看。 app :存放的是Android系统自带的JAVA应用程序。 lost+found :yaffs文件系统固有的,类似回收站的文件夹,只有是yaffs文件系统都会有。 lib :存放几乎所有的共享库(.so)文件。 sd :SD卡中的EXT2分区的挂载目录 init.rc :一个初始化脚本,用於将/system/modules和/system/xbin挂载为cramfs,避免系统被无意破坏
### 回答1: Android系统是一种基于Linux内核的操作系统,而AndroidShell命令则是在Android系统中运行的命令。下面是一些常用Android Shell命令的简要介绍: 1. adb:Android Debug Bridge的缩写,是一种用于与Android设备进行通信的命令行工具,可用于安装应用程序、传输文件、执行命令等。 2. am:Android Activity Manager的缩写,用于管理Android应用程序的活动(Activity)和服务(Service),可以启动、停止、打开、关闭等。 3. pm:Android Package Manager的缩写,用于管理Android应用程序的安装包(APK文件),可以安装、卸载、查询应用程序等。 4. wm:Android Window Manager的缩写,用于管理Android窗口和显示,可以设置屏幕分辨率、旋转屏幕、调整窗口大小等。 5. input:用于模拟用户输入,可以发送触摸事件、按键事件等。 6. su:切换到超级用户(root)权限,可以执行一些需要root权限才能进行的操作。 7. cd:切换当前目录。 8. ls:显示当前目录下的文件和目录。 9. mkdir:创建新的目录。 10. cp:复制文件或目录。 11. mv:移动文件或目录。 12. rm:删除文件或目录。 13. cat:显示文件内容。 14. ps:显示正在运行的进程列表。 15. top:实时显示系统资源使用情况。 这些只是Android Shell命令的一小部分,Android提供了更多的命令可以用于开发、调试和管理Android设备。对于想要深入了解Android Shell命令的开发者来说,可以查阅更详尽的Android开发者文档或其他相关资料。 ### 回答2: Android是一种基于Linux内核的开源操作系统,它具有强大的命令行界面及Shell命令集。以下是一些常用Android Shell命令集合: 1. adb命令Android Debug Bridge,用于与Android设备通信,例如adb shell用于进入设备的Shell环境。 2. su命令:切换到超级用户权限,用于执行需要root权限才能操作的命令。 3. pm命令:Package Manager,用于管理、安装、卸载应用程序。例如pm list packages显示已安装的包名列表。 4. am命令:Activity Manager,用于启动Activity、发送广播等操作。例如am start -n com.example.app/.MainActivity启动应用程序的主界面。 5. input命令:模拟用户输入,例如input tap模拟点击屏幕、input keyevent模拟按键事件。 6. dumpsys命令:获取系统服务的信息。例如dumpsys battery获取电池信息、dumpsys meminfo获取内存使用情况。 7. settings命令:用于访问和修改系统设置,例如settings put system screen_brightness 100设置屏幕亮度为最大值。 8. pm命令:Package Manager,用于管理、安装、卸载应用程序。例如pm install /sdcard/app.apk安装应用程序。 9. getprop和setprop命令:用于获取和设置系统属性。例如getprop ro.build.version获取系统版本号。 10. logcat命令:用于查看设备的日志信息。例如logcat -d打印设备的日志。 这些只是Android Shell命令中的一小部分,通过这些命令可以对Android设备进行各种操作和管理。具体使用时可以参考相关的文档和教程。 ### 回答3: Android shell命令是一组能在Android设备上执行的命令集合,它在设备系统级别上提供了许多功能和控制选项。以下是一些常用Android shell命令: 1. adb shell:通过adb(Android调试桥)连接到设备上的shell。 2. ls:列出目录中的文件和子目录。 3. cd:切换当前工作目录。 4. cp:复制文件或目录。 5. mv:移动文件或目录。 6. rm:删除文件或目录。 7. cat:查看文件内容。 8. echo:打印文本到终端或文件。 9. ps:显示当前运行中的进程。 10. top:显示当前系统资源使用情况和进程列表。 11. kill:终止指定的进程。 12. chmod:修改文件或目录的权限。 13. chown:修改文件或目录的所有者。 14. ifconfig:显示网络接口配置信息。 15. ping:测试网络连接和延迟。 16. netstat:显示网络连接和路由表。 17. mount:挂载文件系统。 18. umount:卸载文件系统。 19. getprop:获取设备属性信息。 20. grep:在文件或文本中搜索指定的模式。 这只是常用命令的一小部分,Android shell命令非常丰富,可以用于执行各种系统管理、文件操作、进程管理、网络配置和调试等任务。通过使用这些命令,开发者可以更好地理解和控制Android设备。请注意,使用这些命令时需要小心,以免对系统造成不可逆的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值