常见的adb 和 mankey 命令

常见的adb 和 mankey 命令,第1张

一、常用adb命令

1、adb devices:查看已连接的设备

2、adb version:查看adb的版本序列号

3、adb -s <设备名字>:指定某设备做什么(设备名字用1的方法可以查看)

4、adb install <安装包apk>:安装应用(写清楚apk的完整路径)adb -s <设备名字> install <安装包apk>:指定设备安装应用

5、adb shell:通过远程shell命令来控制模拟器/设备

6、exit:退出shell远程连接,回到原路径。(Ctrl+d,退出shell,回到默认路径)

7、adb pull <设备端路径> <pc端路径>:将指定的文件从设备/模拟器上拷贝到pc端(后面的pc端路径可以不指定,默认存储在当前路径下)。例: adb pull /sdcard/logtxt c:/monkey

8、adb push <pc端路径> <设备端路径>:将指定的文件从pc端拷贝到设备/模拟器上

9、adb shell pm list packages:列出电脑端所有apk的包名

10、adb logcat:查看pc端的日志输出。adb shell界面只需输入logcat,查看设备端日志输出(退出Ctrl+c)

二、Monkey命令扩展

1、最简单的monkey执行语句:(adb shell)monkey –p comjianjiexuanna –v 500 (对comjianjiexuanna 这个程序包单独进行一次500次的monkey测试)

名词解释:-p:用于约束限制,用此参数指定一个或多个包。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。指定多个包:monkey -p –p -p -v 500-v:用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

日志级别 Level 0

例 monkey –p comjianjiexuanna –v 500说明:缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

例 monkey –p comjianjiexuanna –v -v 500说明:提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

例 monkey –p comjianjiexuanna –v -v -v 500

说明:最详细的日志,包括了测试中选中/未选中的Activity信息

2、延时及固定序列(adb shell)monkey -s 100 -p comjianjiexuanna – -throttle 1000 -v 500 (每次执行一次有效的事件后休眠1000毫秒)(adb shell)monkey -p comjianjiexuanna – -throttle 1000 – -randomize-throttle -v 500 (每次执行一次有效事件后随机延时0-200毫秒)名词解释:-s:用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。出现问题下次可以重复同样的系列进行排错。–throttle:固定延时,用于指定用户 *** 作(即事件)间的时延,单位是毫秒;–randomize-throttle:随机延时,用于指定用户 *** 作(即事件)间的时延,单位是毫秒。

3、保存monkey运行结果1)保存在PC中adb shell monkey –p comjianjiexuanna –v 500 > d:\monkey\logtxt 2)保存在手机中手机端进入shell模式:adb shell monkey –p comjianjiexuanna –v 500 > /mnt/sdcard/monkey/logtxt

adb --help ----查看帮助手册

adb devices ----检测连接到电脑的安卓设备

adb logcat > 本地电脑路径 \xxtxt ----打印log信息到本地电脑的某个文件

adb pull 手机路径 本地电脑路径 ----从手机拉取文件放到电脑上

adb push 本地电脑路径 手机路径 -----把本地电脑的文件推到手机上

adb shell ----登录手机设备的shell,可以使用Linux命令 *** 作手机系统的文件 安卓手机的内核是Linux

adb install xxxapk ----获取apk的安装包所在地址

adb uninstall 应用包名 ----卸载应用程序

adb shell dumpsys activity | find "mFocusedActivity" ----查看前台应用activity名,即查看当前打开的应用的当前页面,activity可以理解成页面

adb connect/disconnect ----通过WiF远程连接手机进行调试

adb kill-server ----终止adb服务

adb start-server ----启动adb服务 通常在adb遇到问题的时候 和adb kill-server一起使用

adb shell pm list packages ----列出所有包名,参数如下

-f 列出所有apk路径和包名

-s 列出系统apk路径和包名

-3 列出用户apk路径和包名

连接多台设备时,需要对指定设备运行adb命令:adb -s 设备序列号 具体命令 (设备序列号即adb devices得到的那串数字)

安卓调试桥(Android Debug Bridge),是Android SDK中的一个调试工具, 使用adb可以直接 *** 作管理Android模拟器或Andriod真机设备,在开发测试过程中,起到调试的作用。

adbexe的存放路径:Android-SDKplatform-tools

adb help //查看帮助

adb version //查看adb版本号

adb devices //查看设备

adb connect IP:port //连接设备

adb disconnect //断开连接的所有设备

adb disconnect IP:port //断开连接指定设备

adb root //获取root权限

adb remount //重新挂载文件系统(默认只读,执行命令后可写)

adb install Package //安装APK

adb install -r Package //强制覆盖安装

adb install -t Package //允许降级覆盖安装

adb install -d Package //允许测试包

adb uninstall PackageName //卸载APK

adb uninstall -k (keep) PackageName //保留用户数据卸载

adb pull //将设备文件文件发送到PC

adb push //将PC文件发送到设备

adb logcat -c //清空日志

adb logcat -v threadtime >D:111log //抓日志并输出保存D:111log

adb shell screencap /sdcard/screenpng //屏幕截图(并存放sdcard目录,命名screenpng)

adb shell screenrecord /sdcard/demomp4 //录制屏幕(Android44以上可用)

adb shell dumpsys activity activities //查看activity信息

adb shell dumpsys activity |findstr mResumedActivity //获取当前activity信息

adb shell dumpsys window windows | findstr “Current” //查看当前app窗口activity

adb shell //进入设备内部

cd //切换目录

pwd //查看当前路径

ping //查看网络连接

rm //删除目录下的所有文件

cp -r /path/filename /NewPath //拷贝文件

busybox find / -name FileName //查找文件

tcpdump -i any -p -s 0 -w /data/data/1111pcap //抓取网络包

pm uninstall PackageName //卸载APK

pm path PackageName //查看APK存放位置

pm clear PackageName //清除APK缓存

dumpsys package omandroidxxx //查看APK的具体信息

dumpsys package omandroidxxx | grep version //查看APK版本

dumpsys package comtencentmm | findstr versionName //查看APK版本

am start PackageName //拉起APK

am start -n comandroidxxx/WelcomeActivity //直接拉起APK的指定WelcomeActivity

am start -a androidintentactionVIEW -d >

@echo off

setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir /a-d/b "hello()apk"') do set /a num=+1

adb install hello(!num!)apk

pause

请自行测试一下。

你是想用代码实现吗你可以启动多个线程,在线程里面进行安装,这样可以同时多个手机安装;也可以写方法,在方法里面进行安装,这样是顺序安装;主要方法是:调用 adb install + apk的绝对路径名;如果有多部手机,调用adb -s + 手机编号(如果不知道怎么获取,请继续回复)+ install + apk绝对路径;在代码里执行:RuntimegetRuntime()exec( "adb -s " + devName + " install " + apkAddress);private void installApkToMobile(String devName, String apkAddress) { Process process = null; String buff = ""; try { process = RuntimegetRuntime()exec( "adb -s " + devName + " install " + apkAddress); BufferedReader br = new BufferedReader(new InputStreamReader(processgetInputStream(), "utf-8")); while ((buff = brreadLine()) != null) { print(buff); if (buffcontains("INSTALL_FAILED_ALREADY_EXISTS")) { print(devName + "已安装"); } } brclose(); } catch (IOException e) { eprintStackTrace(); } } 我现在也是在做这样的东西,欢迎继续讨论,相互学习。

Android 调试桥 (adb)  ,可与设备进行通信。adb 命令可用于执行各种设备 *** 作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

客户端: 用于发送命令。客户端在开发机器上运行。可以通过发出 adb 命令从命令行终端调用客户端。(可以通过它对Android应用进行安装、卸载、调试)

PC上的手机助手基本都是通过adb命令去完成的。有时候装了这类手机助手的话,它自带的adb程序可能会与Android SDK下的adb程序产生冲突,5037端口被占用,导致adb命令无法连接到设备。Windows下通过netstat -ano|findstr "5037"

守护程序 (adbd): 用于在设备上运行命令。守护程序在每个设备上作为后台进程运行

执行adb shell ps | grep adbd, 可以找到该后台进程,Windows使用findstr替代grep

adb nodaemon server

服务器(Service): 用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行

adb服务启动后,Windows可以在任务管理中找到adbexe; linux ps -ef | gref adb 可以查看service

一般都是通过这样子的格式 adb [-d|-e|-s <设备序列号>] <子命令>

通常只有一台设备就忽略 [-d|-e|-s ] 这一部分

这里介绍一些常用的命令:

获取设备列表及设备状态

获取设备的状态

注意:设备的状态有 3 钟,device , offline , unknown

device:设备正常连接

offline:连接出现异常,设备无响应

unknown:没有连接设备

 结束 adb 服务

 启动 adb 服务

注意:通常两个命令一起用,有时候我们开启server会失败,这是因为我们装了的手机助手,豌豆荚或者其他软件自带有自己的adb,导致端口冲突开启失败。一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用 kill-server,然后运行 start-server 进行重启服务。

打印 Android 的系统日志

 打印 dumpsys、dumpstate、logcat 的输出,也是用于分析错误输出比较多

打印日志后重定向到一个文件中

 安装应用,覆盖安装是使用 -r 选项

注意:有些adb版本无法支持安装中文的apk

查看手机应用包名

查看应用对应的apk文件在手机上的安装位置则可以在上面的命令后加-f参数

卸载应用,后面跟的参数是应用的包名,请区别于 apk 文件名

'-k' means keep the data and cache directories , -k 选项,卸载时保存数据和缓存目录

 将 Android 设备上的文件或者文件夹复制到本地

adb pull /sdcard/testtxt C:\Users\Administrator\Desktop\log

推送本地文件至 Android 设备

获取连接到的手机的序列号

获取设备的连接状态

等待设备连接成功

该命令将会阻塞一直到默认连接的那部机器状态变为device,也就是连接成功。

其实adb shell命令就是调用的是Android设备中的system/bin目录下的命令。

Android的内核本身就是Linux,所以Android本身也支持Linux命令,但是因为是手机系统,所以进行了一定的删减,部分命令不支持,而不支持的部分,我们可以通过安装busybox这个软件进行。

如何在手机中执行Shell命令?

  每次都加上adb shell来进行命令的发送与执行

 先通过adb shell进入手机Shell执行状态,然后直接输入Linux命令。

使一个apk处于禁用状态,相当于卸载了:

其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 comUCMobile/mainUCMobile

eg:adb shell su disable comUCMobile/mainUCMobile

同时我们在手机上发现,UC浏览器的图标不见了

让一个apk从禁用状态恢复过来

其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 comUCMobile/mainUCMobileeg:

adb shell su enable comUCMobile/mainUCMobile

同时我们从手机上发现,UC浏览器的图标又出现了。

查看一个apk所在的路径

adb shell pm path comUCMobile

查看手机中装的所有的包

屏幕开始录像并且储存到/sdcard中,同时名字为demomp4

录屏设置时长10s,命名为demomp4

注意:现在仅支持一部分手机录屏,不支持的手机会出现以下提示

解决方法:

安装了scrcpy之后,只需要输入如下命令,即可录取指定设备的屏幕

scrcpy -s device --render-expired-frames -Nr /demopm4

--render-expired-frames:尽可能最大帧率

-N:不在PC端展示

-r:录制mp4/mkv文件

关闭设备请求,开启设备

设备关机以及重启

pm(package manager)可以获取一些安装到Android设备上的app的信息

pm list packages 用法:list packages [ options] filter

获取所有的应用的包名

列出系统应用

列出第三方应用

查看它们的关联文件

adb shell pm list package -f

查看软件包的安装来源

pm dump 包名 很多dump信息

安装应用

apk如果在电脑用 adb install 

如果在Android设备上用 adb shell pm install

卸载应用,同adb uninstall ,后跟包名

清除应用数据

am(activity manager,字面意思就跟activity有关,大家都知道Android的界面都是由一个个activity显示的)

启动一个Activity

获取到package和launch_activity

AndroidSDK中aapt工具,检索命令结果,可以获取到package和launch_activity

这里涉及到一个点,如何找到程序的入口,首先你要知道是哪个activity才能启动;

启动华为系统相机

打开音乐播放器

播放指定音乐:

先停止目标应用,再启动

等待应用完成启动

启动网页(androidintentactionVIEW具体参考Android官网)

结束应用

input

模拟输入,向获得焦点的EditText控件输入内容

返回主界面

发送一个点击 *** 作的指令,参数是<x> <y>坐标

从左往右滑动屏幕, /从 100 100 经历300毫秒滑动到 200 200

长按 *** 作,在 100 100 位置长按 1000毫秒

以上就是关于常见的adb 和 mankey 命令全部的内容,包括:常见的adb 和 mankey 命令、adb测试常用命令、ADB常用命令大全等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9559511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存