linux命令adb?adb命令是Linux命令吗

探索Linux下Adb的强大功能linux使用adb

ADB(Android Debug Bridge)是Android开发调试通道,可以让开发者直接安装、调试程序或者执行Shell命令。有了ADB,开发者可以在Linux系统下更方便的调试和管理Android手机。本文将探讨ADB在Linux系统下的强大功能,以期让读者能够轻松熟悉这一用来开发调试Android应用的工具。

首先,我们需要安装ADB。安装ADB的步骤非常简单,用户只需要以root用户身份使用下面的命令就能安装:

# apt-get install adb

安装完成后,我们就可以开始探索ADB的强大功能了。

一个重要的功能是使用ADB安装软件或者游戏。用户只需要运行下面的命令就能安装软件:

# adb install path_to_apk

另一个常用的功能就是使用ADB调试应用程序。用户只需要运行下面的命令就能调试应用程序:

# adb logcat

这个命令会打印出应用程序的日志,方便开发者排查问题和调试程序。

除此之外,ADB也可以执行Shell命令。使用下面的命令就可以打开应用程序:

# adb shell am start com.example.myapp

这条命令会打开“com.example.myapp”程序,方便调试。

此外,还可以使用ADB抓取手机的屏幕截图,以期查看和分析数据。拿Android手机来说,只需要使用以下命令就可以实现:

# adb shell screencap-p/sdcard/screen.png

这个命令会抓取当前的屏幕截图,并保存在/sdcard/screen.png文件下。

最后,ADB也可以用来让用户从ADB服务器查看已连接的设备:

# adb devices

通过这个命令可以查看当前已连接的Android设备列表。

总结

以上就是ADB在Linux系统下的强大功能,它可以用来安装和调试应用程序,抓取屏幕截图,以及查看已连接的设备。本文旨在让读者更好的了解ADB的功能,以轻松解决Android开发问题。

adb命令怎么用

要使用adb(Android Debug Bridge)强制打开USB调试,你可以按照以下步骤进行操作:

1.确保你已经将手机连接到计算机上,并且计算机上已经安装了ADB工具。

2.打开命令提示符(Windows)或终端(Mac/Linux)。

3.导航到ADB目录。通常情况下,ADB工具位于C:\Program Files\Android\sdk\platform-tools目录下。如果不在该目录下,你需要首先将手机连接到计算机上,然后运行adb命令来导航到正确的目录。

4.运行以下命令来强制打开USB调试:

adb tcpip 5555 adb devices

第一个命令将启动ADB并将端口5555设置为USB调试端口。第二个命令将列出已连接的设备列表,你应该能看到你的设备已经列在其中。

5.确保你的设备已经启用USB调试。你可以在设备的开发者选项中查找这个设置。在Android设备的设置中找到“关于手机”或“关于设备”,然后在“软件信息”中找到“版本号”或“build number”。连续点击几次版本号或build number,你将进入开发者选项。在开发者选项中,找到并启用USB调试。

6.当你确定设备已经启用USB调试并且端口5555已设置后,再次运行以下命令来使用新的端口强制打开USB调试:

adb connect<你的设备IP地址>:5555

将<你的设备IP地址>替换为你的设备的实际IP地址。连接成功后,你应该能够看到你的设备出现在已连接的设备列表中。

现在,你已经成功地使用ADB强制打开了USB调试。你可以使用adb命令来与设备进行通信和调试。请注意,强制打开USB调试可能会对设备的安全性产生影响,因此请确保你了解相关风险,并在必要时采取适当的安全措施。

常用的adb命令

在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。

一.概要

1.什么是adb?

adb全称为Android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。

2.adb工作原理

不是很理解?那就来看看它的工作原理吧。

上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。

(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb

Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb

Client发来的命令。

(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到

了adb

daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。

3.adb的作用

借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

二.常用命令

这个部分主要介绍adb的使用方法和一些常用的命令。

设置adb环境:将android sdk工作目录添加到系统环境变量中,则可使用adb命令了。

1. adb devices

查看当前连接的设备(连接计算机的Android设备或者模拟器)。

2.adb install

adb install<apk文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。

几个参数:

-r强制安装

-d(真机,多个设备中只有一个真机时适用)

-e(模拟器,多个设备中只有一个模拟器时适用)

-s(指定设备,后接序列号)

adb–s 44a188f9 install–r test.apk(其中44a188f9即序列号,通过adb devices可获取)

3.adb uninstall

adb uninstall<apk包名>

adb uninstall–k<apk包名>

-k参数为卸载软件时保留配置和缓存文件

4.adb reboot

重启android设备

5.adb shell

通过adb shell命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。

如果只想执行一条shell命令,就可以采用:adb shell [shell_command]

在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。

6.adb shell su

前提手机已经root。获取adb shell的root权限。

使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。

7.adb shell ps/top

查看当前终端中的进程信息,如pid等。

8.adb shell am/pm

am全称为activity manager,可使用am命令模拟各种系统的行为,如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等。

如:adb shell am start<apk包名>/<activityName>:启动一个activity。

pm全称为package manager,利用pm命令可模拟android行为或查询设备上的应用等。

如:adb shell pm list packages

列出当前设备所有已安装的程序的包名。

说明:

管道符“|”:可以把标准的输入流与标准的输出流进行合并,或者把某个命令的标准输出流作为另一个命令的标准输入流。

exit退出shell。

由于grep为linux命令,运行单条adb shell时并没有进入linux

shell环境,并不能用grep等其他linux命令,只能用window cmd的命令。在这里可以用findstr来代替grep,使用方法为

findstr/grep [keyword]

更详细的内容可查看参考文献3和参考文献4。

对于常用的linux命令和常用的windows控制台命令,以后再作总结。

9.adb pull和 adb push

adb pull<设备中的文件路径><本地路径>:从模拟器或设备中复制文件到本地。

adb push<本地文件路径><设备中的路径>:将本地文件或目录复制到模拟器或设备。

这里还涉及到一个权限的问题,在后续的博文中再作介绍。

10.adb shell dumpsys

Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态。

参考下表:

11.adb shell monkey

跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android

app的稳定性。

如下为测试腾讯新闻apk的一个简单实例:

说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。

-p<apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。

--throttle<毫秒数>指定用户操作(事件)间的时延。

--ignore-crashes指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。

--ignore-timeouts当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。

第2个-s,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

-v用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。

最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。

>输出测试结果到D:\monkeylog.txt

更详细的参数可查看参考文献5。

部分测试结果如下:

对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:

1)ANR(Application Not

Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的trace.txt文件导出,用来定位分析问题。使用>adb

pull/data/anr/trace.txt d:\将trace.txt文件导出到d盘。

2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。

3)崩溃问题:通过搜索Exception关键词来定位。

4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。

 12.kill

kill用来中止一个进程。

比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill<monkey进程PID>

说明:另开启一个cmd,找到monkey的pid号,然后杀掉即可。

参考文献:

1.Android调试桥:

2.Android性能分析工具dumpsys的使用:

3.adb shell中的am pm命令:

4.adb shell启动应用程序的方法:

5.Monkey压力测试详解:

阅读剩余
THE END