adb 命令速查(下)

news/2024/10/18 7:51:07/

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 -ncom.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 debuggingsend a broadcast Intent: am broadcaststart 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 returningstart profiling: am profile startstop profiling: am profile stopspecifications 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.ppmy.cn/news/86568.html

相关文章

虹科HiveMQ与MQTT:构建互联汽车的新架构

前言 随着汽车的互联程度越来越高&#xff0c;汽车制造商和互联汽车平台提供商通过使用物联网技术&#xff0c;提供新服务并从车辆收集有价值的遥测数据&#xff0c;以此来增加营收。从高效的车队管理和汽车共享到预测性维护和高级驾驶员辅助系统&#xff0c;未来移动出行的可…

uniapp内使用 mescroll

前言 在使用uniapp开发项目的过程中&#xff0c;在很多场景里都需要下拉刷新和上拉加载&#xff0c;而 mescroll.js 则是一个非常精致的下拉刷新和上拉加载 js 框架。 官网地址&#xff1a;mescroll 介绍 mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件&#xff0c;时…

windows解决python安装django架构没有django-admin命令

目录 一.尝试安装与配置 1.直接pip命令安装 2.用pycharm测试 3.官网下包安装 二.解决 1.找到django安装的路径 2.配置系统变量 3.测试创建项目 3.1.执行访问页面 3.2.解决 3.3.继续测试 4.pycharm打开 一.尝试安装与配置 1.直接pip命令安装 pip install django dja…

Java 基础语法学习笔记

目录 一、Java语言概述 1.1 Java 的出现 1.2 Java的主要特性 1.3 Java语言的特点 1.4 Java语言的核心机制 1.5 Java语言的环境搭建 二、第一个Java程序 2.1 需要注意的问题 2.2 注释&#xff08;comment) 2.3 注意点&#xff1a; 2.4 Java API 的文档 2.5 第一个 Jav…

【Leetcode60天带刷】day02—— 977.有序数组的平方、209.长度最小的子数组、 59.螺旋矩阵II

题目&#xff1a;997.有序数组的平方 Leetcode原题链接&#xff1a;997.有序数组的平方——力扣 思考历程与知识点&#xff1a; 题目的意思很简单&#xff0c;就是把每个数的平方&#xff0c;按从小到大的顺序排个序&#xff0c;再输出出来。 第一想法是先每个数平方一遍&a…

关系数据库设计理论

关系数据库设计理论 目录 关系数据库设计理论是什么函数依赖完全函数依赖(Full Functional Dependency)部分函数依赖(Partial Functional Dependency)传递函数依赖(Transitive Functional Dependency) 异常插入异常(Insertion Anomaly)更新异常(Update Anomaly)删除异常(Deleti…

03 面向对象(多态,接口)

如果要求程序员必须在某个类中特定的方法中实现一个特定的功能, 应该如何实现? 使用抽象方法或者使用接口(interface) 抽象方法只能单继承,不能多继承,子类必须使用里面的抽象方法 接口可以多继承,实现类必须重写里面的方法 接口的作用? 接口是一种约定的规范,体现了规范…

设计模式-简单Demo掌握责任链模式

文章目录 1、要点2、Demo3、进阶掌握 参考文章&#xff1a; 基本原理&#xff1a;责任链模式 | 菜鸟教程 (runoob.com) 简单例子&#xff1a;五分钟学设计模式.12.责任链模式_哔哩哔哩_bilibili 阿里巴巴的应用&#xff1a;责任链模式在复杂数据处理场景中的实战 责任链模式&am…