赞
踩
adb 环境搭建主要分为2部分,一是 jdk 环境,二是 Android SDK 环境
1.从官网下载 jdk 安装包:https://www.oracle.com/java/technologies/java-se-glance.html
-点击 download
-选择Windows→x64 Installer
2.双击 exe 安装 jdk,记录安装路径!!!一直点击"下一步",点击”关闭“,就安装结束啦:
3.配置环境变量:
说明:
i. 系统变量设定后,会对这台机器的所有用户生效 ;
ii. 用户变量设定后,只对当前用户有效;
(看自己需要来设定哇~)
新建 JAVA_HOME 变量,填写自己的 jdk 安装路径
新建 CLASSPATH 变量输入 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(直接复制,注意最前面的”."不要漏掉)
1.下载 Android SDK 官网:http://tools.android-studio.org/index.php/sdk
2.双击 exe 安装 Android SDK,一样的操作一样的重点,记录下安装路径!!!
3.安装SDK包
Android SDK Platform-tools 必选,其他看需要
4.配置环境变量:
新建ANDROID_HOME变量
值=自己的安装路径
选择 Path →编辑 →新建:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
打开 cmd 输入adb -version,确认下 adb 是不是成功安装并且配置好了
设置–关于手机–版本信息–多次点击版本号
打开USB调试
adb devices
设备串号 device表示连接成功
adb shell
备注:可以使用部分Linux命令
退出连接
exit
adb push 电脑上的文件路径 手机路径
adb pull 手机路径 电脑路径
adb install 安装包的绝对路径
查看所有包(包括系统和第三方)
adb shell pm list packages
第三方应用
adb shell pm list packages -3
查看系统的包
adb shell pm list packages -s
"关键词"查看包
adb shell pm list packages -e "keyword"
当前打开的app包名
adb shell dumpsys window | findstr mCurrentFocus
adb shell pm uninstall 包名
adb shell monkey -p 包名 1000>D:\AAlog.txt
作用:
主要测试app稳定性、健壮性
模拟用户随机操作,实现对正在开发的应用程序进行压力测试
1000只随机操作1000个事件
如果发现错误,可以使用报告最后的seed进行单一时间的重复操作,以查看这个错误是否可浮现,获取详细报告
adb shell monkey -p com.fanmao.crashtest 1000 // CRASH: com.fanmao.crashtest (pid 9796) // Short Msg: android.content.ActivityNotFoundException // Long Msg: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.app.mainactivity2 } // Build Label: samsung/dream2qltezh/dream2qltechn:7.1/N2G48H/G9550ZHU1AQEE:user/release-keys // Build Changelist: 700210421 // Build Time: 1619015543000 // android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.app.mainactivity2 } // at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1809) // at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523) // at android.app.Activity.startActivityForResult(Activity.java:4238) // at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675) // at android.app.Activity.startActivityForResult(Activity.java:4196) // at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:662) // at android.app.Activity.startActivity(Activity.java:4535) // at android.app.Activity.startActivity(Activity.java:4503) // at com.fanmao.crashtest.MainActivity$1.onClick(MainActivity.java:22) // at android.view.View.performClick(View.java:5638) // at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) // at android.view.View$PerformClick.run(View.java:22430) // at android.os.Handler.handleCallback(Handler.java:751) // at android.os.Handler.dispatchMessage(Handler.java:95) // at android.os.Looper.loop(Looper.java:154) // at android.app.ActivityThread.main(ActivityThread.java:6198) // at java.lang.reflect.Method.invoke(Native Method) // at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) // at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) // ** Monkey aborted due to error. Events injected: 70## Network stats: elapsed time=796ms (0ms mobile, 0ms wifi, 796ms not connected) ** System appears to have crashed at event 70 of 1000 using seed 1634205140279
若发现问题,针对同一seed复现问题
adb shell monkey -p 包名 -s <seedValue> --throttle 500 -v -v 500 >log 绝对路径
–throttle 500每两个实践之间的延迟500ms
-v
命令行上的每一个-v都将增加反馈信息的详细级别。 Level0(默认),除了启动、测试完成和最终结果外只提供较少的信息。
Level1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
Level2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。 500运行次数
其他参数:
–ignore-timeouts 忽略超时错误
–ignore-crashes 忽略crash
–ignore-security-exceptions 忽略许可错误
–monitor-native-crashes 指定是否监视并报告应用程序发生崩溃的本地代码
–pct-touch 20 调整操作触摸事件百分比为20%
0:触摸事件百分比,即参数--pct-touch
1:滑动事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom
3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比,即参数--pct-rotation
5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav
7:系统事件百分比,即参数--pct-syskeys
8:Activity启动事件百分比,即参数--pct-appswitch
9:键盘翻转事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent
在日志中搜索关键字:
1)搜索报告中的关键字“ANR”,看有无应用无响应的事件(Application Not Responding)
2)搜索报告中的关键字“crash”,看有无崩溃的事件
3)搜索报告中的关键字“exception”,看有无其他异常事件。(如果出现空指针, NullPointerException,需格外重视
adb logcat -b events -b radio -b main -b system -b crash -v time > log.txt
(1)“-b”:
(2)"-v time"会打印出日志的时间,如果不加就不会显示时间
(3)“log.txt”这个是打印出的log文件名,可以自由更改名称,也可以名称前输入路径,比如保存到桌面:adb logcat -b events -b radio -b main -b system -b crash -v time > C:\Users\alex\Desktop\log.txt
如果直接输入adb logcat会默认包含“-b events -b radio”。
指定app日志:
adb logcat -v time -s app包名:E>d:/1.log
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。