android adb shell常用脚本分析

合集下载

adb shell相关操作

adb shell相关操作

adb shell相关操作
adb shell是Android Debug Bridge (ADB) 工具的一部分,它允许开发人员通过命令行界面与Android设备进行交互。

以下是一些常见的adb shell相关操作:
1. 进入设备的shell环境:
```
adb shell
```
这将打开一个类似于终端的命令行界面,您可以在其中执行设备上的命令。

2. 运行设备上的命令:
在adb shell中,您可以运行任何适用于设备的命令。

例如,您可以运行以下命令来查看设备的文件列表:
```
ls
```
或者您可以运行以下命令以root权限运行命令:
```
su
```
3. 复制文件到设备:
```
adb push <本地文件路径> <设备目标路径>
```
这将把本地文件复制到设备上的指定路径。

4. 从设备复制文件到本地:
```
adb pull <设备路径> <本地目标路径>
```
这将从设备上指定路径复制文件到本地目标路径。

5. 安装应用程序:
```
adb install <应用程序路径>
```
这将安装位于本地路径上的应用程序到设备上。

6. 卸载应用程序:
```
adb uninstall <应用程序包名>
```
这将卸载设备上指定包名的应用程序。

这些是使用adb shell进行一些常见操作的示例。

通过使用adb shell,您可以与设备进行交互,并运行各种命令来进行开发和调试。

adb shell bugreport 使用

adb shell bugreport 使用

adb shell bugreport 使用摘要:1.ADB shell bugreport 简介2.使用ADB shell bugreport 的步骤3.ADB shell bugreport 的作用和优势4.结束语正文:1.ADB shell bugreport 简介ADB(Android Debug Bridge)是一种用于管理Android 设备的工具,可以通过命令行或脚本进行操作。

其中,ADB shell bugreport 是一个用于收集Android 设备崩溃日志的工具,可以帮助开发者定位并修复应用程序中的错误。

2.使用ADB shell bugreport 的步骤使用ADB shell bugreport 的步骤如下:1) 首先,确保你的Android 设备已经连接到电脑,并且ADB 已经正确安装和配置。

在命令行中输入“adb devices”以查看已连接的设备列表。

2) 在命令行中输入“adb she ll bugreport --install”以安装bugreport 工具。

安装完成后,你可以在Android 设备上输入“bugreport”查看相关帮助信息。

3) 在Android 设备上运行你的应用程序,触发崩溃。

当应用程序崩溃时,系统会自动收集崩溃日志。

4) 使用ADB pull 命令将崩溃日志从Android 设备上拉取到电脑。

在命令行中输入“adb pull /data/anr/traces /path/to/save/traces”以将崩溃日志保存到电脑上的指定路径。

5) 使用Android Studio 打开保存在电脑上的崩溃日志文件,分析并修复应用程序中的错误。

3.ADB shell bugreport 的作用和优势ADB shell bugreport 的主要作用是方便开发者收集和分析Android 设备上的崩溃日志,从而快速定位并修复应用程序中的错误。

其优势在于:1) 自动化:在应用程序触发崩溃时,bugreport 工具会自动收集崩溃日志,无需手动操作。

adb常用的几个命令 adbinstall

adb常用的几个命令 adbinstall

adb常用的几个命令 adbinstall ADB(Android Debug Bridge)是Android开发工具包(SDK)中的一个命令行工具,用于与Android设备进行通信和调试。

ADB常用的几个命令如下:1. adb devices:用于列出当前连接的Android设备列表。

当设备连接到计算机时,可以使用该命令来验证设备是否成功连接。

2. adb shell:用于在设备的shell环境下执行命令。

通过该命令可以获取设备的root权限,以便执行一些需要root权限的操作。

3. adb install:用于将应用程序安装到连接的Android设备上。

命令格式为“adb install <path_to_apk_file>”,其中<path_to_apk_file>为待安装的APK文件的路径。

4. adb uninstall:用于从连接的Android设备中卸载应用程序。

命令格式为“adb uninstall <package_name>”,其中<package_name>为待卸载应用程序的包名。

5. adb push:用于将文件从计算机复制到连接的Android设备中。

命令格式为“adb push <local_file> <device_path>”,其中<local_file>为计算机上的文件路径,<device_path>为目标设备中的路径。

6. adb pull:用于将文件从连接的Android设备中复制到计算机上。

命令格式为“adb pull <device_file> <local_path>”,其中<device_file>为设备上的文件路径,<local_path>为目标计算机上的路径。

7. adb logcat:用于查看设备的日志信息。

Android常用adb命令总结

Android常用adb命令总结

Android常⽤adb命令总结针对移动端 Android 的测试, adb 命令是很重要的⼀个点,必须将常⽤的 adb 命令熟记于⼼,将会为 Android 测试带来很⼤的⽅便,其中很多命令将会⽤于⾃动化测试的脚本当中。

Android Debug Bridgeadb 其实就是Android Debug Bridge, Android 调试桥的缩写,adb 是⼀个C/S架构的命令⾏⼯具,主要由 3 部分组成:运⾏在 PC 端的 Client : 可以通过它对 Android 应⽤进⾏安装、卸载及调试Eclipse 中的 ADT、SDK Tools ⽬录下的 DDMS、Monitor 等⼯具,都是同样地⽤到了 adb 的功能来与 Android 设备进⾏交互。

PC 端的⼿机助⼿,诸如 360 ⼿机助⼿、豌⾖荚、应⽤宝等,其除了安装第三⽅应⽤⽅便,其他的功能,基本上都可以通过 adb 命令去完成,这⾥建议测试⼈员尽量不要在电脑上安装这类⼿机助⼿,因为其⾃带的 adb 程序可能会与 Android SDK下的 adb 程序产⽣冲突,5037端⼝被占⽤,导致使⽤ adb 命令时⽆法连接到设备运⾏在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程运⾏在 Android 设备上的 adb 后台进程执⾏adb shell ps | grep adbd,可以找到该后台进程,windows 请使⽤findstr替代 grep[xuxu:~]$ adb shell ps | grep adbdroot 23227 1 6672 832 ffffffff 00019bb4 S /sbin/adbd这⾥注意⼀个地⽅,就是 adb 使⽤的端⼝号,5037,有必要记⼀下接下来我将 adb 命令分为三部分进⾏介绍,adb 命令、adb shell 命令、linux 命令adb 命令在开发或者测试的过程中,我们可以通过 adb 来管理多台设备,其⼀般的格式为:adb [-e | -d | -s <设备序列号>] <⼦命令>在配好环境变量的前提下,在命令窗⼝当中输⼊ adb help 或者直接输⼊ adb ,将会列出所有的选项说明及⼦命令。

androidadb实用命令小结

androidadb实用命令小结

androidadb实⽤命令⼩结adb对于Android程序员来说在⽇常的⼯作中使⽤频率很⾼,现将⾃⼰⼯作中常⽤的adb命令总结⼀下备忘,⽅便查询,也供⼤家参考。

查看应⽤内存占⽤,耗电信息,启动时间,wakelock,跑monkey的命令在之前的应⽤性能优化中起了不⼩的作⽤。

以下adb命令的测试机器为⼩⽶3,其中package_name代表包名。

基础脚本:1、启动adb服务adb start-server2、终⽌adb服务adb kill-server3、进⼊adb运⾏环境adb shell4、获取帮助⾥⾯有adb的各种命令和参数的介绍adb help5、查看adb版本adb version6、以root权限重启adbadb root7、将system分区重新挂在为可读写分区,此命令在操作系统⽬录时很重要adb remount8、重启设备,可选参数进⼊bootloader(刷机模式)或recovery(恢复模式)adb reboot [bootloader|recovery]apk相关:1、安装apkadb install test.apk -r 覆盖安装,保留数据和缓存⽂件 -d 解决低版本version问题 -s 安装apk到sd卡2、卸载apkadb uninstall -k <package_name>可选参数-k的作⽤为卸载软件但是保留配置和缓存⽂件3、查看app相关所有信息,包括action,codepath,version,需要的权限等等信息adb shell dumpsys package <package_name>4、查看app的路径adb shell pm path <package_name>查看了⼀个普通app的路径,如下,位于data/app下⾯的普通apppackage:/data/app/com.tencent.test-1/base.apk5、查看apk的版本信息adb shell dumpsys package <package_name> | grep version如果你得到的是下图的两个version版本,则为系统app,下⾯是系统app本⾝的版本,上⾯是升级之后的系统app的版本信息versionCode=8 targetSdk=22 versionName=V0.08 versionCode=6 targetSdk=22 versionName=V0.06、启动activityadb shell am start -n <package_name>/.<activity_class_name>7、获得应⽤的启动时间,可以很⽅便地获取应⽤的启动时间adb shell am start -W <package_name>/.<activity_class_name>试验结果如下:adb shell am start -W .test/com.painter.test.PainterMainActivity Starting: Intent { act=android.intent.action.MAIN cat=[UNCHER] cmp=.test/com.painter.test.PainterMainActivity } Status: ok Activity: .test/com.pa 返回的⼏个结果,以WaitTime为准,返回的是从startActivity到应⽤第⼀帧完全显⽰的时间。

adb shell dumpsys frameworks实现逻辑

adb shell dumpsys frameworks实现逻辑

adb shell dumpsys frameworks实现逻辑ADB (Android Debug Bridge) 是Android 开发工具包中的一个命令行工具,它允许开发人员与Android 设备进行通信和调试。

其中的"adb shell" 命令可以进入设备的shell 环境,而"dumpsys" 命令可以获取设备的系统信息。

这篇文章将以"adb shell dumpsys frameworks" 为主题,分步骤解释它的实现逻辑。

一、ADB ShellADB Shell 是通过Android 设备上的USB 或网络连接与设备通信的一种方式。

它提供了一个命令行界面,允许开发人员执行各种命令和操作来调试和控制设备。

使用"adb shell" 命令后,我们可以进入设备的shell 环境,这将允许我们在设备上执行命令和脚本。

二、DumpsysDumpsys 是Android 系统的一个命令,用于从系统服务和应用程序中获取调试信息。

它提供了一种查看系统状态和相关信息的方法,包括进程、资源使用情况、传感器数据等等。

通过运行"adb shell dumpsys" 命令,我们可以获取设备的系统信息,以便进行分析和调试。

三、FrameworksFrameworks 是Android 系统的核心组件之一,它提供了一组API 和服务,用于管理应用程序和系统资源。

Frameworks 负责处理应用程序的生命周期、进程间通信、资源管理、事件传递、窗口管理等任务。

"dumpsys frameworks" 命令是一种获取有关Frameworks 的调试信息的方法。

四、实现逻辑1. 连接设备:首先,需要确保Android 设备通过USB 或网络正确连接到电脑上。

使用"adb devices" 命令可以列出已连接的设备,并确认设备正常工作。

adb常用命名

adb常用命名

adb常用命名adb(Android Debug Bridge)是一种用于与Android设备进行通信和调试的命令行工具。

它提供了许多常用的命令,以帮助开发人员调试和控制Android设备。

本文将介绍一些常用的adb命令,以及它们的用途和具体操作。

一、adb devices这是最常用的adb命令之一,用于查看已连接的Android设备。

在使用adb命令之前,首先需要确保Android设备通过USB与计算机连接,并且已启用USB调试模式。

通过运行adb devices命令,可以列出所有已连接的Android设备的序列号。

二、adb install该命令用于将应用程序安装到Android设备上。

在运行该命令之前,需要将应用程序的APK文件放置在计算机上,并确保Android设备已连接。

通过运行adb install命令,可以将应用程序安装到设备上,并在安装过程中显示进度。

三、adb uninstall与adb install命令相对应,adb uninstall命令用于从Android设备中卸载应用程序。

通过指定应用程序的包名,可以将其从设备中移除。

四、adb pushadb push命令用于将文件从计算机复制到Android设备。

通过指定源文件的路径和目标路径,可以将文件复制到设备的指定位置。

这对于将测试文件、脚本或其他资源文件推送到设备上非常有用。

五、adb pull与adb push命令相反,adb pull命令用于将文件从Android设备复制到计算机。

通过指定设备上文件的路径和计算机上的目标路径,可以将文件从设备中拉取到计算机上。

六、adb logcat这是一个非常有用的命令,用于查看Android设备的日志信息。

通过运行adb logcat命令,可以实时显示设备上的系统日志、应用程序日志和调试信息。

该命令还支持过滤、格式化和保存日志信息,以便开发人员进行更详细的分析和调试。

七、adb shelladb shell命令用于在Android设备上执行命令。

adb shell sed用法

adb shell sed用法

sed(Stream Editor)是一个用于文本处理的流编辑器,常用于在命令行下对文本进行替换、删除、插入等操作。

在 Android 开发中,adb shell中的sed命令可以用于在设备上对文件或文本进行编辑。

以下是一些常见的adb shell sed的用法:
1. 替换文本:
这将在file.txt文件中将所有匹配到的old_text替换为new_text。

g表示全局替换。

2. 删除行:
这将删除包含匹配pattern_to_match的所有行。

3. 插入行:
这将在包含匹配pattern_to_match的行之前插入新行new_line_to_insert。

4. 追加行:
这将在包含匹配pattern_to_match的行之后追加新行new_line_to_append。

5. 在行首添加文本:
这将在每一行的行首添加prefix_text。

6. 在行尾添加文本:
这将在每一行的行尾添加suffix_text。

注意事项:
▪如果在adb shell中直接使用sed,需要使用单引号将sed命令包裹,以防止本地 Shell 对命令进行解释。

▪sed在 Android 设备上可能有一些轻微的差异,具体取决于设备上所使用的Shell 版本。

在较新的Android 版本中,通常会有支持常见sed功能的Shell。

▪如果要对文件进行直接编辑而不创建新文件,可以使用-i选项,但在某些Android 设备上可能需要指定备份扩展名,例如-i.bak。

请根据实际需求选择适当的sed命令和选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• am start -n com.android.settings/com.android.settings.Settings • am start -a android.intent.action.CALL -d tel:88888888
常用adb shell命令
• • • • • getprop setprop <key> <value> service list getevent input
dumpsys
• 显示系统数据信息 • 如: dumpsys wifi 显示wifi信息 dumpsys cpuinfo 显示cpu信息 dumpsys meminfo uncher2 显示launcher2的内存使用情况
创建AVD设备
• android create avd -n myandroid1.5 -t 2
• adb logcat > 文件名
将logcat信息保存在文件中
过滤日志输出
• 过滤器表达式的格式是tag:priority • adb logcat ActivityManager:I *:S • 标记是一个简短的字符串,用于标识原始 消息的来源 (例如"View" 来源于显示系统) • 优先级是下面的字符,顺序是从低到高:
Viewing Alternative Log Buffers
• Android日志系统为日志消息保持了多个循环缓 冲区,而且不是所有的消息都被发送到默认缓冲 区,要想查看这些附加的缓冲区,可以使用-b 选 项,以下是可以指定的缓冲区: • radio — 查看包含在无线/电话相关的缓冲区消息 • events — 查看事件相关的消息 • main — 查看主缓冲区 (默认缓冲区) • -b 选项的用法: • [adb] logcat [-b <buffer>]
adb 其它常用命令
• android
• • • •


启动SDK管理器 adb bugreport 查看bug报告 adb get-serialno 获取设备的序列号 adb root 获得Root权限 adb remount 将system分区从只读变成可读可 写(需要ROOT权限) android list targets 显示系统内所有的android平 台 android list avd 显示系统中所有模拟器
• • • • • • V — 明细 (最低优先级) D — 调试 I — 信息 W — 警告 E — 错误 F — 严重错误
控制日志格式
• 日志消息在标记和优先级之外还有很多元数据字 段,这些字段可以通过修改输出格式来控制输出 结果, -v选项加上下面列出的内容可以控制输出 字段,比如adb logcat -v thread • brief — 显示优先级/标记和原始进程的PID (默认 格式) • process — 仅显示进程PID • tag — 仅显示优先级/标记 • thread — 仅显示进程:线程和优先级/标记 • raw — 显示原始的日志信息,没有其他的元数据 字段
安装和卸载APK程序
• adb install <apk文件路径>
将指定的apk文件安装到设备上
• adb uninstall <软件名>
卸载设备上的指定程序
• adb uninstall -k <软件名>
卸载程序但是保留其配置和缓存文件
上传和下载文件
• 1. adb push <本地路径> <远程路径>
input text <string> input keyevent <event_code>
• top
常用adb shell命令
• • • • • ps ls df cat kill
访问数据库SQLite3
• adb shell sqlite3
pm
• • • • pm [list | path | install | uninstall] pm clear PACKAGE pm enable PACKAGE_OR_COMPONENT pm disable PACKAGE_OR_COMPONENT
名词解释
• VSS - Virtual Set Size 虚拟耗用内存(包含共 享库占用的内存) • RSS - Resident Set Size 实际使用物理内存 (包含共享库占用的内存) • PSS - Proportional Set Size 实际使用的物理内 存(比例分配共享库占用的内存) • USS - Unique Set Size 进程独自占用的物理内 存(不包含共享库占用的内存)
查看内存占用
• procrank
• 系统中各进程的内存使用快照,这里有PSS, USS,VSS,RSS。我们一般观察Uss来反映一 个Process的内存使用情况,Uss 的大小代表了只 属于本进程正在使用的内存大小,这些内存在此 Process被杀掉之后,会被完整的回收掉。
procrank
查看内存占用的脚本
adb 其它常用命令
• ddms
启动ddms • adb reboot 重启 • dmesg 打印出内核的调试信息
Shell命令
• 1.adb shell
登陆shell
启动Activities
• am start [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] [-c <CATEGORY> [-c <CATEGORY>] ...] [-e <EXTRA_KEY> <EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...] [-n <COMPONENT>] [-D] [<URI>]
ADB命令主要用途
• • • • 1.运行Android设备的shell(命令4.计算机和Android设备之间上传/下载文件
启动和关闭ADB服务
• 1. adb kill-server
关闭ADB服务
• 2. adb start-server
其中myandroid1.5表示AVD设备的名称。名称可 以任意设置,但不能和其他AVD设备冲突。2指建 立Android 1.5的AVD设备,如是1则表示Android 1.1的AVD设备,以此类推。
创建SD卡
• mksdcard -l sdcard 10MB sd.img
• 其中sdcard表示SD卡的卷标,10M表示SD卡的 大小,单位还可以是KB。但要注意,SD卡的大 小不能小于8MB,否则无法创建SD卡文件。 sd.img是SD卡的文件名。
直接选定设备来执行命令
• 当有多个设备连接时,可以用下面的命令 来直接选择执行命令的设备
adb [-d|-e|-s <serial Number>] <command> d:真机(多个设备中只有一个真机时适用) e:模拟器(多个设备中只有一个模拟器时适用) s:序列号 adb -d install helloWorld.apk adb -s emulator-5556 install helloWorld.apk
ADB概要
• Android 调试系统是一个面对客户服务系统,包 括三个组成部分: • 电脑上运行的客户端。 • 在你用于开发的机器上作为后台进程运行的服务 器。该服务器负责管理客户端与运行模拟器或设 备上的adb守护程序(daemon)之间的通信。 • 一个以后台进程的形式运行于模拟器或设备上的 守护程序(daemon)。
启动ADB服务
查看当前连接的设备
• adb devices
• 查看当前连接的设备, 连接到计算机的android设 备或者模拟器将会列表显示 输出信息格式为: [serialNumber] [state] $ adb devices List of devices attached emulator-5554 offline emulator-5556 device emulator-5558 device
删除和浏览AVD设备
• android delete avd -n myandroid1.5 • android list avds
@echo on :memory adb shell ps 302 sleep 5000 goto memory 每5秒钟让系统输出一次302进程的内存使用状况 (需要sleep.bat脚本配合)
Monkey
• Monkey可以运行在模拟器里或实际设备中。它向 系统发送伪随机的用户事件流,实现对正在开发 的应用程序进行压力测试。 • 最简单的方法就是用下面的命令来使用Monkey, 这个命令将会启动你的软件并且触发50个事件。 • monkey -p packageName -v 50 • monkey -p com.android.settings -v 50
把pc上的文件或文件夹上传到设备 如:adb push foo.txt /sdcard/foo.txt
• 2. adb pull <远程路径> <本地路径>
把设备上的文件或文件夹下载到pc 如:adb pull system/app D:\apps
Logcat
• adb logcat
在命令行中显示调试信息
Linux 环境: 新建文件memory 内容为: while true; do adb shell procreep 1 d内存占用的脚本
• Windows环境: • 新建memory.bat
相关文档
最新文档