adb 命令速查(下)

news2024/12/23 22:16:37

ADB 关于APP安装、调试和monkey压力测试

作者:炭烤毛蛋 ,查看博主了解更多。


提示:承接上篇《adb 命令速查(中)》,本文将

文章目录

  • ADB 关于APP安装、调试和monkey压力测试
    • 7 adb 关于 apk 的相关操作
      • 7.1 安装 apk
        • 普通安装
        • 带有命令行的安装
      • 7.2 卸载 apk
        • 卸载app 但保留数据和缓存文件
      • 7.3 查看已经安装的APK
        • 查看已经安装的包名
        • 查看APK安装路径
      • 7.4 把安卓系统中的APK拖到本地
      • 7.5 启动activity
        • adb shell启动APK方法
        • am 包名+活动名启动 APP
        • 启动APP对应服务
        • 其它应用启动方法
        • am 命令详细参数
    • 8 monkey 测试
        • a)可以通过PC机CMD窗口中执行:
        • b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数}
        • c ) 在Android机或者模拟器上直接执行monkey
      • 8.1 Monkey 命令 基本参数介绍
  • 结语


7 adb 关于 apk 的相关操作

7.1 安装 apk

普通安装

adb install [option] <apkflile>
ex: adb install baidu.apk

带有命令行的安装

-l(关于forward lock)

adb install -l test.apk #forward lock application

-r 替换已存在应用,保留数据和缓存文件

adb install -r test.apk #replace existing application

-t 测试package标志

adb install -t test.apk #allow test packages

-s 将应用安装到sdcard

adb install -s test.apk #install application on sdcard

-d 忽略版本号安装apk

adb install -d test.apk #allow version code downgrade

-p 部分安装apk标志

adb install -p test.apk #partial application install

7.2 卸载 apk

adb uninstall <packageName>

adb uninstall com.baidu.search

卸载app 但保留数据和缓存文件

adb uninstall -k <packageName>

adb uninstall -k com.baidu.search

7.3 查看已经安装的APK

查看已经安装的包名

adb shell pm list packages
#根据包名查找
adb shell pm list packages | grep -i "package_name"

查看APK安装路径

adb shell pm path \[APK name\]
adb shell pm /odm/

7.4 把安卓系统中的APK拖到本地

# 没有最后参数,默认会拖到当前目录
adb pull \[APK-path\] \[saving apk path\]
 **remote couldn\'t create file: Read-only file system**

 解决方法:adb push path\\file /path (原来为 \\path)

7.5 启动activity

adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)

adb shell am start -n com.android.camera2/com.android.camera.CameraLauncher

adb shell启动APK方法

am 包名+活动名启动 APP

  • am start -n 包(package)名/包名.活动(activity)名称

  • adb shell “am start -n 包(package)名/包名.活动(activity)名称”

  1. 计算器(calculator)的启动方法为:
am start -n com.android.calculator2/com.android.calculator2.Calculator
2) **calendar(日历)的启动方法为:**
am start -n
 com.android.calendar/com.android.calendar.LaunchActivity
  1. AlarmClock(闹钟)的启动方法为:
am start -n
com.android.alarmclock/com.android.alarmclock.AlarmClock

启动APP对应服务

启动的方法可以从每个应用的AndroidManifest.xml的文件中得到

Music 和 Video(音乐和视频)的启动方法为例:

  1. 启动 Music
am start -n
com.android.music/com.android.music.MusicBrowserActivity
  1. 启动 Video
am start -n
com.android.music/com.android.music.VideoBrowserActivity
  1. 启动 Media
am start -n
com.android.music/com.android.music.MediaPlaybackActivity

其它应用启动方法

  1. Camera(照相机)的启动方法为:\
am start -n com.android.camera/com.android.camera.Camera
  1. Browser(浏览器)的启动方法为:\
am start -n com.android.browser/com.android.browser.BrowserActivity
  1. 启动浏览器 :\
am start -a android.intent.action.VIEW
-d  [[http://www.google.cn/]{.underline}](http://www.google.cn/)
  1. 拨打电话 :\
am start -a android.intent.action.CALL -d
 [[tel:10086]{.underline}](tel:10086)
  1. 启动 google map 直接定位到北京 :\
am start -a android.intent.action.VIEW geo:0,0?q=beijing

am 命令详细参数

usage: am \[subcommand\] \[options\]

start an Activity: am start \[-D\]

-D: enable debugging

send a broadcast Intent: am broadcast

start an Instrumentation: am instrument \[flags\]

-r: print raw results (otherwise decode REPORT\_KEY\_STREAMRESULT)

-e : set argument to

-p : write profiling data to

-w: wait for instrumentation to finish before returning

start profiling: am profile start

stop profiling: am profile stop

specifications include these flags:

\[-a \] \[-d \] \[-t \]

\[-c \[-c \] \...\]

\[-e\|\--es \...\]

\[\--ez \...\]

\[-e\|\--ei \...\]

\[-n \] \[-f \] \[\]

8 monkey 测试

  • 1)Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是:
    /system/framework/monkey.jar;

  • 2)Monkey.jar程序是由一个名为"monkey"的Shell脚本来启动执行,shell脚本在Android文件系统中
    的存放路径是:/system/bin/monkey;

  • 3)Monkey 命令启动方式:

a)可以通过PC机CMD窗口中执行:

adb shell monkey{+命令参数}来进行Monkey测试

b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数}

来进行Monkey 测试

c ) 在Android机或者模拟器上直接执行monkey

命令,可以在Android机上安装Android终端模拟器

monkey 参数
在这里插入图片描述

8.1 Monkey 命令 基本参数介绍

-p <允许的包名列表>

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果丌指定包,
monkey将允许系统启动设备中的所有app。

指定一个包:

adb shell monkey -p com.shjt.map 100

指定多个包:

adb shell monkey -p fishjoy.control.menu  --p com.shjt.map 
100 

-v 用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下
表所示:
Level 0 : adb shell monkey -p com.shjt.map -v 100 //
缺省值,仅提供启动提示、测试完成和最终结果等少量信息
Level 1 : adb shell monkey -p com.shjt.map -v -v 100 //
提供较为详细的日志,包括每个发送到Activity的事件信息
Level 2 : adb shell monkey -p com.shjt.map -v -v -v 100 //
最详细的日志,包括了测试中选中/未选中的Activity信息

-s(随机数种子)
用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

monkey测试1:adb shell monkey -p com.shjt.map --s 10 100 #\--throttle \<毫秒\>            

用亍指定用户操作(即事件)间的时延,单位是毫秒;如果丌指定这个参数,monkey会尽可能快的生成和发送消息。

adb shell monkey -p com.shjt.map \--throttle 3000 100

Monkey 实例用monkey 命令 对 app进行 性能测试

adb shell monkey --p com.shjt.map ---throttle 100 ---pct-touch 50 ---pct-motion 50 --v --v 1000 \>c:\\monkey.txt

结语

好工具提升工作效率。不枉博主一片辛苦,欢迎订阅博主–炭烤毛蛋 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QQGC?揭秘QQ的AI绘画大模型技术

&#x1f449;腾小云导读 2022年来&#xff0c;AIGC概念迅速出圈并快速形成产业生态&#xff0c;成为继PGC、UGC之后新的数字内容创作形式。QQ影像中心提出了自研的AI画画技术方案——QQGC&#xff0c;本文将介绍在QQGC基础大模型训练中的实践和探索&#xff0c;接着往下看吧~ …

我用AI帮我唱了首“基尼太美”,颠覆了我的认知!太牛逼了

目录 前言 AI唱"基尼太美"是什么感觉 使用so-vits-svc打造自己专属歌手 1.声音素材整理 2.训练模型 3.让AI唱歌​编辑 AI歌手背后的技术 AI歌手会成为主流吗 写到最后 大家好&#xff0c;我是大侠&#xff0c;AI领域的专业博主 前言 在5月份&#xff0c;孙…

第五篇:强化学习基础之马尔科夫决策过程

你好&#xff0c;我是zhenguo(郭震) 今天总结强化学习第五篇&#xff1a;马尔科夫决策过程 基础 马尔科夫决策过程&#xff08;MDP&#xff09;是强化学习的基础之一。下面统一称为&#xff1a;MDP MDP提供了描述序贯决策问题的数学框架。 它将决策问题建模为&#xff1a; 状态…

司空见惯 - 使用dBm表示功率的各种现实情况

前面一篇文章介绍过&#xff0c;使用dBm表示功率时&#xff0c;如何转换为mW。 那现实世界的实际情况中&#xff0c;使用dBm来表示电磁波的能量强度&#xff0c;列表如下&#xff1a; Power level Power Notes 526 dBm 3.61049 W 黑洞碰撞后的引力波辐射的功率&#xff0c…

解决缓存与数据库数据不一致的问题,这篇文章告诉你如何做!

缓存是提高应用程序性能和响应速度的关键组件之一。缓存可以帮助减少数据库查询次数&#xff0c;从而减轻服务器负担并加快页面加载速度。然而&#xff0c;缓存与数据库一致性是分布式系统中常见的问题&#xff0c;因为缓存和数据库之间可能存在数据不一致的情况。为了解决这个…

CyberLink的摄像头应用程序YouCam 10.1版本在win10系统的下载与安装配置教程

目录 前言一、YouCam安装二、使用配置总结 前言 YouCam是由CyberLink公司开发的一款实用的摄像头应用程序&#xff0c;它集成了多种实时视频特效、背景虚化、美颜、屏幕录制等功能。 通过使用该软件内置的相机特效&#xff0c;用户可以将视频聊天或自拍照片变得更加精彩和有趣…

oracle表空间、用户、表的关系和创建

目录 一、表空间 二、用户 &#xff08;1&#xff09;Oracle和mysql、sqlserver的区别 &#xff08;2&#xff09;创建用户 &#xff08;3&#xff09;给用户授权 三、表 &#xff08;1&#xff09;创建表 &#xff08;2&#xff09;用图像化软件添加表约束 1.主键约束…

TikTok正测试名为“Tako”的AI聊天机器人;武汉大学宣布推出CheeseChat

&#x1f680; 近日安徽安庆一起利用AI换脸技术的电信诈骗案件 近日安徽安庆一起利用AI换脸技术的电信诈骗案件&#xff0c;3名涉案人员被抓获并返还被骗款132万元。 此前也有多起利用AI换脸技术进行的电信诈骗案件&#xff0c;甚至还出现在明星直播带货中。 专家提示&#…

ChatGPT无限可能性:自然语言生成的奥秘

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; ChatGPT无限可能性&#xff1a;自然语言生成的奥秘 数字化时代&#xff1a;跨越语言和文化障碍 冰岛是北大西洋中部的一个岛国&#xff0c;拥有充满活力的科技产业和…

网络编程初识

如果这篇有没接触过的知识点&#xff0c;请转到网络编程先导知识_小梁今天敲代码了吗的博客-CSDN博客 目录 IPv4和IPv6的概念&#xff1a; 子网掩码 默认网关 ping命令 端口 OSI网络分层模型 TCP/IP四层模型 字节序转换函数 IP地址转换 上一篇介绍了网络编程的先导知…

chatgpt赋能python:Python动态实时轨迹绘图:让数据可视化更生动

Python 动态实时轨迹绘图&#xff1a;让数据可视化更生动 数据可视化是现代数据分析中不可或缺的一部分。在Python语言中&#xff0c;有许多工具和库可以帮助我们将数据转化为可视化的图表。然而&#xff0c;有些情况下&#xff0c;静态图表难以准确有效地展现数据的变化趋势和…

chatgpt赋能python:Python动态Import:优化你的编程体验

Python 动态 Import&#xff1a;优化你的编程体验 在 Python 中&#xff0c; Import 是一个非常常见的操作。它允许你从其他模块中引入需要的函数或者变量&#xff0c;从而避免在不同模块中重复编写代码。在大型项目中&#xff0c; Import 操作可能会变得很混乱&#xff0c;导…

Java内存管理:垃圾回收算法和内存分配的原理和优化

章节一&#xff1a;引言 在当今的软件开发领域&#xff0c;Java是一门广泛应用的编程语言。Java虚拟机&#xff08;JVM&#xff09;负责管理Java应用程序的内存&#xff0c;并通过垃圾回收算法和内存分配策略来优化内存使用。本文将详细介绍Java内存管理的原理、垃圾回收算法的…

【熬夜送书 | 第一期】Java生日快乐,不负代码不负君,面向对象面向卿

文章目录 前言一、java是什么&#xff1f;二、好书推荐《Java核心技术》《Java编程思想》Effective Java 中文版&#xff08;原书第3版&#xff09;Java语言程序设计基础篇进阶篇&#xff08;原书第12版&#xff09;Java并发编程实战软件架构实践&#xff08;原书第4版&#xf…

ThingsBoard教程(五三):规则节点解析 Kafka Node, MQTT Node

Kafka Node Since TB Version 2.0 Kafka节点将消息发送到Kafka代理。它可以接收任何类型的消息。该节点会通过Kafka生产者将记录发送到Kafka服务器。 配置 主题模式 - 可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如${deviceType}引导服务器 - 用逗号分隔的…

fork/join框架

文章目录 前言一、fork/join是什么&#xff1f;二、使用步骤总结 前言 使用Fork/Join框架首先要考虑到的是如何分割任务,分割之后,根据join 再进行任务结果的合并,也就是类似二分法的,分而治之的理念; 一、fork/join是什么&#xff1f; fork 拆分任务,将大任务拆分成小任务,拆…

Linux学习笔记---编辑器Vim

Vim是Linux中功能十分强大的文本编辑器&#xff0c;熟练地使用Vim可以让你高效地在Shell界面编写代码&#xff0c;接下来我们开始一步一步地学习Vim的使用方法: 一、文本编辑器vim的使用 1. 打开Vim 打开终端直接输入vim&#xff0c;即可打开Vim编辑器主界面 它是原始vi编辑…

简单谈谈BIO,NIO,AIO

目录 IO 概述 阻塞 IO (BIO) 基本理解 非阻塞 IO(NIO) ​核心部分 Channel Buffer Selector Channel Buffer Selector 三者关系 异步非阻塞 IO(AIO) IO 概述 IO 的操作方式通常分为几种&#xff1a;同步阻塞 BIO、同步非阻塞 NIO、异步非阻塞 AIO。 &#xff08;1…

如何检查Linux硬盘大小、类型和硬件详细信息?

在Linux系统中&#xff0c;了解硬盘的大小、类型和硬件详细信息对于系统管理和故障排除非常重要。本文将详细介绍如何使用命令行工具来检查Linux硬盘的大小、类型和硬件详细信息。 1. 检查硬盘大小 要检查Linux硬盘的大小&#xff0c;可以使用lsblk命令。该命令显示了系统中所…

chatgpt赋能python:Python取位:介绍和应用

Python取位&#xff1a;介绍和应用 Python是一种解释型&#xff0c;高级&#xff0c;通用编程语言。它在最近几年中变得越来越受欢迎&#xff0c;因为它易于学习和使用&#xff0c;并且具有很强的可读性和简洁性。在Python编程中&#xff0c;取位是一种很常见的操作。在本文中…