Android_Monkey_测试执行策略及标准
一、Monkey命令概述
NO | 命令 | 说明 | 用法 | 解释 |
1 | -p ALLOWED_PACKAGE | 用于指定某个apk,可以使用多个-p选项,但是每个-p命令选项只能用于一个apk 如果不指定-p,Monkey就会默认进行全系统测试。 | -p com.android.contacts | 可以进行特定apk的Monkey测试 |
2 | -c MAIN_CATEGORY | 用于指定某个类,可以使用多个-c选项,但是每个-c命令选项只能用于一个类。如不指定类,Monkey就默认执行Intent.Category_LAUNCHER或者Intent.Category_MONKEY | -c intent.CATEGORY_LAUNCHER | 所有类别: * CATEGORY_DEFAULT * CATEGORY_BROWSABLE * CATEGORY_TAB * CATEGORY_ALTERNATIVE * CATEGORY_SELECTED_ALTERNATIVE * CATEGORY_LAUNCHER * CATEGORY_INFO * CATEGORY_HOME * CATEGORY_PREFERENCE * CATEGORY_TEST * CATEGORY_CAR_DOCK * CATEGORY_DESK_DOCK * CATEGORY_CAR_MODE |
3 | --ignore-crashes | 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。 | --ignore-crashes | 针对各种crash的忽略,监控,停止进程操作 |
4 | --ignore-timeouts | 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。 | --ignore-timeouts | |
5 | --ignore-security-exceptions | 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。 | --ignore-security-exceptions | |
6 | --monitor-native-crashes | 监视系统中本地代码发生的崩溃。 | --monitor-native-crashes | |
7 | --ignore-native-crashes | 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。 | --ignore-native-crashes | |
8 | --kill-process-after-error | 设置了该选项,出错的程序就会停止。 | --kill-process-after-error | |
10 | --pct-touch PERCENT | 调整触摸事件的百分比 | --pct-touch 20 | 所有的事件的百分比应该是100%,从Monkey测试报告中没有发现特定事件的影响:比如在U8800上进行100%的轨迹球事件测试,没有发现任何影响。 |
11 | --pct-motion PERCENT | 调动作事件的百分比 | --pct-motion 20 | |
12 | --pct-trackball PERCENT | 调整轨迹球事件的百分比 | --pct-trackball 10 | |
13 | --pct-syskeys PERCENT | 调整系统按键事件的百分比(home\back\call\end call\volume key) | --pct-syskeys 5 | |
14 | --pct-nav PERCENT | 调整基本导航事件的百分比 | --pct-nav 5 | |
15 | --pct-majornav PERCENT | 调整主要导航事件的百分比(ok\cancel\menu等引发图形接口的动作) | --pct-majornav 10 | |
16 | --pct-appswitch PERCENT | 调整启动活动的百分比 | --pct-appswitch 10 | |
17 | --pct-flip PERCENT | 调整点击事件的百分比 | --pct-flip 10 | |
18 | --pct-anyevent PERCENT | 调整其他类型事件的百分比(其他所有类型) | --pct-anyevent 10 | |
19 | --pkg-blacklist-file PACKAGE_BLACKLIST_FILE | apk黑名单,屏蔽掉黑名单中的apk。 | --pkg-blacklist-file /data/blacklist/blacklist.txt | 1.需要新建黑白名单文件夹和同名txt文件。 2.然后在txt文件中编辑apk列表。 |
20 | --pkg-whitelist-file PACKAGE_WHITELIST_FILE | apk白名单,只测试包含在白名单中的apk | --pkg-whitelist-file /data/whitelist/whitelist.txt | |
21 | --wait-dbg | 一旦连接了调试器,Monkey就会停止。 | --wait-dbg | 开发调试时使用 |
9 | --hprof | 用于在Monkey事件时序的前后,在/data/misc中生成5Mb左右的profiling报告。 | 在data\misc文件夹下产生一个“.hprof”的文件(heap-dump-tm1312534653-pid159.hprof) | |
22 | --dbg-no-events | 设置该选项后,Monkey会执行初始启动,进入到测试活动中而不产生任何事件。可以设置几个apk包以及其他环境,来监视应用程序所调用的包之间的转换。 | --dbg-no-events | |
25 | --port port | 为Monkey开启专用端口。之后Monkey就不会执行,此时你就可以像Monkey一样乱点,Monkey会输出你点击后的回馈信息。如果你打完命令后,模拟器没有启动你所要启动的包,需要自己启动你在-p中指定的应用. | 开启专用端口后,人可以模拟Monkey进行操作。用于开发手动重现问题。 | |
26 | -s SEED | 随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成相同的事件时序。 | -s 100 | 主要帮助开发排查错误并验证修改的代码 |
27 | -v | 每个-v都将增加反馈信息的级别。共3个级别,因此,-v -v -v可以提供最详细的设置信息。 | -v -v -v | 使用3个v命令,可以在Monkey测试报告中看最详细的设置信息 |
28 | --throttle MILLISEC | 事件之间插入的固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件。 | --throttle 3000 | 设置事件间的时间延时 |
29 | --randomize-throttle | 事件之间插入随机延时。 | --randomize-throttle | |
30 | COUNT | 执行数 | 99999 | 执行事件次数 |
二、死机log信息汇总
NO | log信息类型 | 可以解决哪些问题 | 如何获得不同的log信息 | 说明 | 如何导出该文件 |
1 | Logcat | App crash | 通过命令获得: #adb shell logcat –v time > c:\logcat-log.txt | 无 | 可以通过命令导出 |
2 | Bugreport | App crash | 获取bugreport和dumpstate: #adb shell bugreport > bugreport-yyyy-mm-dd-hh-mm-ss.txt #adb shell dumpstate > dumpstate-yyyy-mm-dd-hh-mm-ss.txt | dumpstate是一个具体对系统的各个信息进行收集的程序 bugreport则会以服务的形式来启动dumpstate,它不完成具体的收集操作,只负责将dumpstate的信息通过socket的形式进行接收并重定向出来。它存储在/mnt/sdcard/bugreports或者/data/bugreports或/HWUserData | 可以实现自动导出 |
3 | Dump log | App crash | 从qpst或者dump工具导出 | 1.利用QPST efs工具,手动创建dump目录和一个空白的debug.dbg文件在dump目录下。 2.通过QXDM将NV905设置为0(0表示进入dump,1表示重启,2或者未激活表示不做任何动作) | 只能手动导出 |
4 | ANR trace | App not responding | Trace.txt文件保存在在/data/anr中,可以通过命令导出 | 无 | 可以通过命令导出 |
5 | Dropbox | App crash、kernel | 保存在/data/system/dropbox,该目录下有4类信息对分析比较有帮助: 1.APANIC_CONSOLE@xxxxxxxxxxxxx.txt.gz 2.APANIC_THREADS@xxxxxxxxxxxxx.txt.gz 3.system_server_watchdog@xxxxxxxxxxxxx.txt 4.system_server_crash@xxxxxxxxxxxxx.txt | APANIC_CONSOLE@xxxxxxxxxxxxx.txt.gz:记录的是核心发生死机的时候的核心LOG APANIC_THREADS@xxxxxxxxxxxxx.txt.gz:核心发生死机的时候各个线程在核心中的调用stack system_server_watchdog@xxxxxxxxxxxxx.txt:记录了发生死机的时刻上系统对SystemServer中的各个线程的调用stack进行记录的一个文件 system_server_crash@xxxxxxxxxxxxx.txt:记录了发生死机的时刻上SystemServer中的具体死机的异常点 | 可以实现自动导出 |
6 | Tombstones | Native | 保存在/data/tombstones,该目录下生成一个tombstone_xx文件 | Tombstone文件是异常进程的调用栈信息,在该进程异常退出或崩溃时由android的后台进程debuggerd负责生成 | 可以实现自动导出 |
7 | Coredump | Native | 一是编译器支持:要产生coredump文件,在android编译的时候要加上调试-g选项以支持coredump文件的生成。 二是环境参数支持:可以修改<工程目录>system/core/rootdir下的init.rc文件来支持coredump文件的产生。 | 这是一种常见的linux收集进程异常信息的机制。用户态进程在中止时将产生信号,linux内核根据信号的类型来决定是否要产生coredump文件。Android上保留了这种机制,但默认是关闭的。要使进程产生coredump文件,还要满足两个条件:一是编译器支持,二是环境参数支持。 | 目前没有开发使用过该信息去处理死机问题 |
8 | Kmsg | Kernel、Native | 保存在cat/proc/kmsg来查看sysrq信息,它用来收集内核和用户态进程信息。 需要通过adb命令: 打开这个功能,运行: # echo 1 > /proc/sys/kernel/sysrq 关闭这个功能: # echo 0 > /proc/sys/kernel/sysrq | sysrq信息: 只要内核没有被完全锁住,不管内核在做什么事情,使用sysrq可以立即打印出内核的信息,当然也包括用户态进程的信息。 如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,亦可使用sysrq方式来收集信息。 | 可以实现自动导出,但是需要先开启该功能。 |
9 | Dontpanic | Kernel | 有三个文件保存在在/data/dontpanic/目录下: apanic_console:记录内核的控制台信息 apanic_threads:记录的是panic时内核寄存器、调用栈等信息 apanic_sysinfo:记录meminfo、zoneinfo、slabinfo、vmallocinfo等信息。 | apanic_sysinfo: 在apanic中打开这些文件并用printk读取到内核log_buf中,然后再利用apanic的写入flash机制将这些信息分别保存到/data/dontpanic/目录下 | apanic_sysinfo需要开发手动增加的,而非系统自动生成。 |
10 | Mondem log | mondem | 通过QPST工具连接手机打开/err文件,并导出其中的log文件 | 通过QPST获得的高通死机log err文件夹下的内容(适用于7x25/7x27平台)通过QPST可以获得err文件夹下的内容,该目录下的内容是ARM9在死机的时候记录在ARM9侧的LOG记录,通过该目录可以简单的判断一下ARM9侧的死机情况。 | 只能手动导出 |
三、参考数据
NO | 手机 | 延时(ms) | 执行时间(ms) | 执行时间(minute) | 注入事件数 | 事件执行频率:个/分钟 | Monkey停止原因 |
1 | HTC | 无延时 | 1148065 | 19 | 17205 | 899 | at com.htc.album.DisplayManager.onMenuItemSelected |
2 | 1551528 | 26 | 19401 | 750 | android.app.ActivityThread.performLaunchActivity | ||
3 | 1002859 | 17 | 14937 | 894 | at com.android.htcdialer.BaseSmartSearchList.onKeyDown | ||
4 | 2679478 | 45 | 37625 | 843 | at android.app.ActivityThread.performLaunchActivity | ||
5 | 553359 | 9 | 8229 | 892 | java.lang.RuntimeException at android.app.ActivityThread.performResumeActivity | ||
6 | 725423 | 12 | 10348 | 856 | java.lang.NullPointerException at com.htc.android.worldclock.DeskClock.dispatchKeyEvent | ||
7 | 1480935 | 25 | 18897 | 766 | java.lang.NullPointerException at com.google.android.street.StreetView.setPanoramaConfig | ||
8 | 1068266 | 18 | 12814 | 720 | ANR in com.htc.launcher (com.htc.launcher/.Launcher) | ||
9 | 2575371 | 43 | 34454 | 803 | java.lang.RuntimeException: Unable to resume activity at android.app.ActivityThread.performResumeActivity | ||
10 | 589575 | 10 | 8492 | 864 | android.view.WindowManager$BadTokenException: Unable to add window at android.view.ViewRoot.setView | ||
1 | Nexus | 无延时 | 610986 | 10 | 18906 | 1857 | java.lang.IllegalStateException: Calling RS with no Context active. |
2 | 585847 | 10 | 16862 | 1727 | ANR in com.google.android.voicesearch | ||
3 | 2384462 | 40 | 71757 | 1806 | ANR in com.google.android.apps.maps:driveabout | ||
4 | 751051 | 13 | 18085 | 1445 | ANR in com.google.android.apps.maps:driveabout | ||
5 | 1180138 | 20 | 31844 | 1619 | OutOfMemory | ||
6 | 1004487 | 17 | 25498 | 1523 | java.lang.IllegalArgumentException at com.google.android.gles_jni.EGLImpl._eglCreateWindowSurface | ||
7 | 1316022 | 22 | 32390 | 1477 | ANR in com.google.android.apps.maps | ||
8 | 2227825 | 37 | 63641 | 1714 | java.lang.IllegalArgumentException at com.google.android.gles_jni.EGLImpl._eglCreateWindowSurface | ||
9 | 1291264 | 22 | 36456 | 1694 | ANR in com.google.android.apps.maps | ||
10 | 1200919 | 20 | 35125 | 1755 | ANR in com.google.earth (com.google.earth/.EarthActivity) | ||
1 | C8800(大内存) | 无延时 | 219247 | 4 | 2958 | 809 | ANR in com.android.camera |
2 | 72382 | 1 | 1248 | 1035 | java.lang.RuntimeException: lock failed at android.hardware.Camera.lock(Native Method) | ||
1 | U8800 | 无延时 | 241502 | 4 | 3800 | 944 | java.lang.NullPointerException at com.erdo.unicom.GameMIDlet$10.onClick |
2 | 486920 | 8 | 8646 | 1065 | java.lang.RuntimeException: An error occured while executing doInBackground at android.os.AsyncTask$3.done | ||
3 | 1183262 | 20 | 19594 | 994 | SocketTimeoutException at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(Native Method) | ||
4 | 158476 | 3 | 5005 | 1895 | android.view.WindowManager$BadTokenException at android.view.ViewRoot.setView | ||
5 | 133167 | 2 | 2097 | 945 | java.lang.RuntimeException: Unable to resume activity at android.app.ActivityThread.performResumeActivity | ||
6 | 428677 | 7 | 8227 | 1151 | java.lang.NullPointerException at com.erdo.unicom.WelcomeForm.onKeyUp | ||
7 | 371265 | 6 | 6991 | 1130 | java.lang.RuntimeException: Unable to pause activity {com.android.contacts/com.android.contacts.commonext.GroupGridActivity} at android.app.ActivityThread.performPauseActivity | ||
8 | 526763 | 9 | 8633 | 983 | java.lang.NullPointerException at com.huawei.inputmethod.hwpal.PinyinIME.showCandidateWindow | ||
9 | 591910 | 10 | 8633 | 875 | android.view.WindowManager$BadTokenException | ||
10 | 270742 | 5 | 7561 | 1676 | java.lang.NullPointerException at com.erdo.unicom.WelcomeForm.onKeyUp |
相关文章:
Android_Monkey_测试执行策略及标准
一、Monkey命令概述 NO命令说明用法解释1 -p ALLOWED_PACKAGE用于指定某个apk,可以使用多个-p选项,但是每个-p命令选项只能用于一个apk 如果不指定-p,Monkey就会默认进行全系统测试。 -p com.android.contacts可以进行特定apk的Monkey测试2 …...
windows安装nginx
官网提供的下载地址:nginx: download nginx1.25.2下载地址:http://nginx.org/download/nginx-1.25.2.zip 直接运行nginx.exe会闪退,我们还得使用cmd/git bash/power shell 命令进行启动; 个人更喜欢git bash; 运行命…...
Java日期的学习篇
关于日期的学习 目录 关于日期的学习JDK8以前的APIDate Date常用APIDate的API应用 SimpleDateFormatSimpleDateFormat常用API测试 反向格式化(逆操作)测试 训练案例需求(秒杀活动)实现 Calendar需求痛点常见API应用测试 JDK8及以后的API(修改与新增)为啥学习(推荐使用)新增的AP…...
spark on hive
需要提前搭建好hive,并对hive进行配置。 1、将hive的配置文件添加到spark的目录下 cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf2、开启hive的hivemetastore服务 提前创建好启动日志存放路径 mkdir $HIVE_HOME/logStart nohup /usr/local/lib/apache-hi…...
Linux Vi编辑器基础操作指南
Linux Vi编辑器基础操作指南 Linux中的Vi是一个强大的文本编辑器,虽然它有一些陡峭的学习曲线,但一旦掌握了基本操作,它就变得非常高效。以下是Vi编辑器的一些基本用法: 打开Vi编辑器: vi 文件名退出Vi编辑器ÿ…...
WEB3 创建React前端Dapp环境并整合solidity项目,融合项目结构便捷前端拿取合约 Abi
好 各位 经过我们上文 WEB3 solidity 带着大家编写测试代码 操作订单 创建/取消/填充操作 我们自己写了一个测试订单业务的脚本 没想到运行的还挺好的 那么 今天开始 我们就可以开始操作我们前端 Dapp 的一个操作了 在整个过程中 确实是没有我们后端的操作 或者说 我们自己就…...
rust运算
不同类型不能放在一起运算。如果非要计算,必须先强转成一个类型再运算。 一 、数字运算 (一)算术运算 a 10且b 5 名称运算符范例加ab的结果为15减-a-b的结果为5乘*a*b的结果为50除/a / b的结果为2求余%a % b的结果为0 Rust语言不支持自增…...
游戏引擎,脚本管理模块
编辑器中删除脚本,然后立即恢复删除的脚本关系正常编辑器中删除脚本,关掉编辑器,然后只恢复脚本,不恢复meta,然后再打开编辑器关系丢失编辑器中删除脚本,关掉编辑器,然后恢复脚本且恢复meta,然后再打开编辑…...
2023年7月工作经历三
年龄危机 传言:程序员干不过37岁,架构师干不过45岁,总监干不过55岁。我已经43岁了。当总监需要机遇;首下犯错,会扣领导工资;有的公司总监还需要出资。为了方便以后当总监,我还在超音速带过小团…...
1801_codesys产品主样本了解
全部学习汇总: GreyZhang/g_codesys: some codesys learning notes (github.com) 有些技术、学术的成长,氛围也是很重要的。我觉得工业控制,德国做得算是世界上很突出的。而这个巴伐利亚,更是突出中的佼佼者了。从这里的介绍看&am…...
flink的计时器
背景 在flink中,我们经常使用ontimer计时器实现很多逻辑的功能,常见的比如某个传感器温度增加连续超过1分钟的告警输出等,本文就来简单记录下计时器的作用 计时器 ontimer的定义 public void onTimer(long timestamp, OnTimerContext ctx…...
@SpringBootApplication剖析
一、前言 在SpringBoot项目中启动类必须加一个注解SpringBootApplication,今天我们来剖析SpringBootApplication这个注解到底做了些什么。 二、SpringBootApplication简单分析 进入SpringBootApplication源代码如下: 可以看出SpringBootApplication是…...
浅谈wor2vec,RNN,LSTM,Transfermer之间的关系
浅谈wor2vec,RNN,LSTM,Transfermer之间的关系 今天博主谈一谈wor2vec,RNN,LSTM,Transfermer这些方法之间的关系。 首先,我先做一个定位,其实Transfermer是RNN,LSTM&…...
【11】c++设计模式——>单例模式
单例模式是什么 在一个项目中,全局范围内,某个类的实例有且仅有一个(只能new一次),通过这个唯一的实例向其他模块提供数据的全局访问,这种模式就叫单例模式。单例模式的典型应用就是任务队列。 为什么要使…...
深度学习-卷积神经网络-AlexNET
文章目录 前言1.不同卷积神经网络模型的精度2.不同神经网络概述3.卷积神经网络-单通道4.卷积神经网络-多通道5.池化层6.全连接层7.网络架构8.Relu激活函数9.双GPU10.单GPU模型 1.LeNet-52.AlexNet1.架构2.局部响应归一化(VGG中取消了)3.重叠/不重叠池化4…...
人机关系不是物理关系也不是数理关系
人机关系是一种复杂的社会技术系统,涉及到人类和机器、环境之间的相互作用和影响。它不仅限于物理接触和数理规律,同时还包括了思维、情感、意愿等方面的交流和互动。在人机关系中,人类作为使用者和机器作为工具(将来可能会上升到…...
<html dir=ltr>是什么意思?
<html dirltr>的意思是: 文字默认从左到右排列 说明: HTML--超级文本标记语言 dir 属性 -- (文字的)排列方式属性 取值: ltr -- 代表左到右的排列方式 rtl -- 代表右到左的排列方式 默认值:ltr 示例: ltr左到右的对…...
工厂模式:简化对象创建的设计思想 (设计模式 四)
引言 在软件开发中,我们经常需要创建各种对象实例来满足不同的需求。通常情况下,我们会使用new关键字直接实例化对象,但这种方法存在一些问题,比如对象的创建逻辑分散在代码中,难以维护和扩展,同时也违反了…...
【2023最新】微信小程序中微信授权登录功能和退出登录功能实现讲解
文章目录 一、讲解视频二、小程序前端代码三、后端Java代码四、备注 一、讲解视频 教学视频地址: 视频地址 二、小程序前端代码 // pages/profile/profile.js import api from "../../utils/api"; import { myRequest } from "../../utils/reques…...
复习 --- C++运算符重载
.5 运算符重载 运算符重载概念:对已有的运算符重新进行定义,赋予其另外一种功能,以适应不同的数据类型 4.5.1 加号运算符重载 作用:实现两个自定义数据类型相加的运算 1 #include<iostream>2 using namespace std;3 /…...
复习 --- select并发服务器
selectIO多路复用并发服务器,是通过轮询检测文件描述符来实现并发 将内核要检测文件描述符放入集合中,调用select函数,通知内核区检测文件描述符集合中的文件描述符是否准备就绪,即对应的空间中是否有数据 对准备就绪的文件描述…...
程序三高的方法
程序三高的方法 目录概述需求: 设计思路实现思路分析1.1)高并发 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,c…...
全志ARM926 Melis2.0系统的开发指引⑦
全志ARM926 Melis2.0系统的开发指引⑦ 编写目的11. 调屏11.1. 调屏步骤简介11.1.1. 判断屏接口。11.1.2. 确定硬件连接。11.1.3. 配置显示部分 sys_config.fex11.1.3.1. 配置屏相关 IO 11.1.4. Lcd_panel_cfg.c 初始化文件中配置屏参数11.1.4.1. LCD_cfg_panel_info11.1.4.2. L…...
全志ARM926 Melis2.0系统的开发指引⑧
全志ARM926 Melis2.0系统的开发指引⑧ 编写目的12.5. 应用程序编写12.5.1. 简单应用编写12.5.1.1. 注册应用12.5.1.2. 创建管理窗口12.5.1.3. 实现管理窗口消息处理回调函数12.5.1.4. 创建图层12.5.1.5. 创建 framewin12.5.1.6. 实现 framewin 消息处理回调函数 -. 全志相关工具…...
区别对比表:阿里云轻量服务器和云服务器ECS对照表
阿里云轻量应用服务器和云服务器ECS区别对照表,一看就懂的适用人群、使用场景、优缺点、使用限制、计费方式、网路和镜像系统全方位对比,阿里云服务器网分享ECS和轻量应用服务器区别对照表: 目录 轻量应用服务器和云服务器ECS区别对照表 轻…...
【做题笔记】多项式/FFT/NTT
HDU1402 - A * B Problem Plus 题目链接 大数乘法是多项式的基础应用,其原理是将多项式 f ( x ) a 0 a 1 x a 2 x 2 a 3 x 3 ⋯ a n x n f(x)a_0a_1xa_2x^2a_3x^3\cdotsa_nx^n f(x)a0a1xa2x2a3x3⋯anxn中的 x 10 x10 x10,然后让大数的…...
网课搜题 小猿题库多接口微信小程序源码 自带流量主
多接口小猿题库等综合网课搜题微信小程序源码带流量主,网课搜题小程序, 可以开通流量主赚钱 搭建教程1, 微信公众平台注册自己的小程序2, 下载微信开发者工具和小程序的源码3, 上传代码到自己的小程序 源码下载:https://download.csdn.net/download/m0_…...
centos安装conda python3.10
最新版本的conda自带python3.10,直接安装即可。 手动创建一个conda文件夹,进入该文件夹,然后执行以下操作步骤。 1.下载 curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh2.安装 sh Miniconda3-latest-Linux-x86_64.…...
解密京东面试:如何应对Redis缓存穿透?
亲爱的小伙伴们,大家好!欢迎来到小米的微信公众号,今天我们要探讨一个在面试中可能会遇到的热门话题——Redis缓存穿透以及如何解决它。这个话题对于那些渴望进入技术领域的小伙伴们来说,可是必备的哦! 认识Redis缓存…...
#力扣:1. 两数之和@FDDLC
1. 两数之和 - 力扣(LeetCode) 一、Java import java.util.HashMap;class Solution {public int[] twoSum(int[] nums, int target) { //返回数组HashMap<Integer, Integer> map new HashMap<>(); //键:元素值;值&…...
做dm素材网站/信息流优化
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2792 Solved: 2041[Submit][Status][Discuss]Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy ,…...
深圳做网站网络公司怎么样/域名whois查询
先说说购机原因吧,原来的本子用了两年半,配置有点过时,确实是想换个新的,又碰巧10月份是我的本命年的生日,理应庆贺一下,老婆也十分的体贴我,非常大方的让我随意选购,只要我喜欢的&a…...
网站建设添加资料/本地建站软件有哪些
导读: 使用电脑的过程中我们会遇到很多的问题,烦人的广告窗口不停的弹出;不停的在多套网络配置中切换;时常忘掉备份网络中的关键数据;加密的文件夹由于误操作无法打开。你想过没有以上这些问题都可以通过一个小文件解决…...
建设一个网站首先需要什么条件/天津网站建设技术外包
题面 先把每个串反着插进$Trie$树 每个节点的子树内,可能有一些节点是某些字符串的开头 每个节点挂一棵权值线段树,记录这些节点对应的原来字符串的编号 查询的时候在线段树上二分即可 为了节省空间,使用线段树合并 1 #include <vector>…...
数据交易网站源码/作品提示优化要删吗
pep8 编码规范 Python Enhancement Proposals :python改进方案 https://www.python.org/dev/peps/ 1. 每级缩进用4个空格。 括号中使用垂直隐式缩进或使用悬挂缩进。后者应该注意第一行要没有参数,后续行要有缩进。 #1. 对准左括号 foo long_function_n…...
做网站编程要学什么/搜索引擎成功案例分析
车牌识别技术是现代智能交通系统重要组成部分车牌识别技术是现代智能交通系统重要组成部分,其应用十分广泛。它以计算机视觉处理、数字图像处理、模式识别等技术为基础,对摄像机所拍摄的车辆图像或者视频图像进行处理分析,得到每辆车的车牌号…...