当前位置: 首页 > news >正文

Android 应用测试的各种环境问题记录(Instrumentation测试)

报错记录

failed to configure packages targetSdkVersion(未解决)

failed to configure com.demo.test.SettingsActivityTest.testOnCreate_withNullSavedInstanceState: Package targetSdkVersion=34 > maxSdkVersion=32
java.lang.IllegalArgumentException: failed to configure com.demo.test.SettingsActivityTest.testOnCreate_withNullSavedInstanceState: Package targetSdkVersion=34 > maxSdkVersion=32
    at 

Failed to release mocks 第三方mock对象释放失败

@RunWith(AndroidJUnitRunner.class),错误表明使用Mockito框架在释放对象的时候fail,原因可能是使用过了第三方的mock maker。

INSTRUMENTATION_STATUS: stack=org.mockito.exceptions.base.MockitoException: 
Failed to release mocks

This should not happen unless you are using a third-party mock maker
    at com.demo.UITest.setUp(UITest.java:31)
    ... 32 trimmed
Caused by: org.mockito.exceptions.base.MockitoException: Cannot read state from field: private com.demo.UITest com.demo.UITest.fragment, on instance: com.demo.UITest@9254eb6
    ... 34 more
Caused by: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MemberAccessor (alternate: null)
    at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84)

    ... 34 more
Caused by: java.lang.IllegalStateException: Failed to load interface org.mockito.plugins.MemberAccessor implementation declared in java.lang.CompoundEnumeration@5bce1d5
    at org.mockito.internal.configuration.plugins.PluginInitializer.loadImpl(PluginInitializer.java:56)

可能是因为原本使用了Mockito 5,而Mockito 5 开发文档中提到 由于我们使用了 JVM 内部 API,我们发现 JDK 最新版本的问题/不兼容性有所增加。最值得注意的是,JDK 17 进行了一些与当前子类 mockmaker 不兼容的更改。

 androidTestImplementation 'org.mockito:mockito-android:5.0.0' //适用于Android测试

参考:JDK17以上版本不兼容导致的mock maker问题:Could not initialize plugin: interface org.mockito.plugins.MockMaker-CSDN博客文章浏览阅读1.3k次,点赞10次,收藏11次。对于高版本java和springboot在使用Mockito时产生的不兼容问题_could not initialize plugin: interface org.mockito.plugins.mockmakerhttps://blog.csdn.net/daisy__forever/article/details/140871609

方法:对于Mockito 5+ 和 jdk 17+ 在内联模拟生成器将不起作用,可以使用子类模拟生成器,在build.gradle添加inline的依赖。

dependencies {androidTestImplementation 'org.mockito:mockito-android:4.0.0' //适用于Android测试implementation 'org.mockito:mockito-android:4.0.0' //适用于Android测试androidTestImplementation 'org.mockito:mockito-inline:4.0.0'
}

疑问:

1、不知道为什么需要implemention,不然Mockito类import会报错,是因为build APK用到吗?

2、是不是修改成mockito-android:4.0.0,就不需要加inline了?——实测是的,原本报错是因为5.0.0版本

Can't create handler inside thread Thread that has not called Looper.prepare() 交互界面线程

INSTRUMENTATION_STATUS: stack=java.lang.RuntimeException: Can't create handler inside thread Thread[Instr: androidx.test.runner.AndroidJUnitRunner,5,main] that has not called Looper.prepare()
    at android.os.Handler.<init>(Handler.java:228)
    at android.os.Handler.<init>(Handler.java:130)
    at androidx.preference.PreferenceFragmentCompat$1.<init>(PreferenceFragmentCompat.java:121)
    at androidx.preference.PreferenceFragmentCompat.<init>(PreferenceFragmentCompat.java:121)
    at com.demo.settings.PreferenceFragmentBase.<init>(PreferenceFragmentBase.java:49)
    at com.demo.settings.Editor.<init>(Editor.java:103)
    at com.demo.settings.EditorTest.setUp(EditorTest.java:32)

这通常表明测试代码试图在没有准备好 Looper 的线程上执行与 UI 相关的操作。结合测试代码,界面是Fragment,创建和操作 Fragment 必须遵循 Android 的 UI 线程规则。

参考解决方案:

通过activity建立UI线程,填充fragment数据,然后拉起fragment。

@RunWith(AndroidJUnit4.class)
public class DemoEditorTest {@Rulepublic ActivityTestRule<DemoSettingsActivity> activityRule =new ActivityTestRule<>(DemoSettingsActivity.class);@Testpublic void testMenuSave_showSaveDialog() throws Exception {//关键还是通过activity启动界面,不然无法运行在主线程(UI)activityRule.getActivity().runOnUiThread(new Runnable() {@Overridepublic void run() {DemoEditor fragment = new DemoEditor ();DemoEditor.demoData demoData = new DemoEditor.DemoData();fragment.setDemoData(demoData);activityRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment).commitNow();}});}
}

onView().check(matches(withText())));

代码:

        // Check the empty TextView is updatedonView(withId(android.R.id.empty)).check(matches(withText(com.android.settings.R.string.demo_settings_not_available)));

报错提示:

根因是因为没有import正确,估计默认使用了mock的,实际要用UI测试的,但是IDE不会提供正确的解决方案。

解决方案:导入espresso包

import static androidx.test.espresso.assertion.ViewAssertions.matches;

gradle 环境问题 

Android Studio 默认的SDK、gradle都是怎么配置的?

为什么删除的目录路径都会重新创建.gradle?之前就算TestDemoU删掉了,还是会创建的caches,在哪里设置?

# Windows
# 查找 GRADLE_USER_HOME
echo %GRADLE_USER_HOME%# 查找 GRADLE_HOME
echo %GRADLE_HOME%

Windows查找GRADLE_USER_HOME没有输出是没有配置的原因吗?GRADLE_HOME 已经配置,所以是有的。

如何查找Android Studio默认的配置路径?

在AS设置里面的 Gradle user home,JDK版本也在此设置:

File => Settings => Build, Execution, Deployment => Build Tools => Gradle

有关环境变量:

  • GRADLE_USER_HOME
  • GRADLE_LOCAL_JAVA_HOME
Gradle General Settings
Gradle General Settings

(点多了以后,reset按钮都没有了...)

Gradle Projects
Gradle Projects

参考:IDEA如何正确配置Gradle? GRADLE_USER_HOME 和 Gradle user home的区别_grade user home-CSDN博客文章浏览阅读6.1w次,点赞55次,收藏153次。IDEA如何正确配置Gradle? GRADLE_USER_HOME 和 Gradle user home的区别缘起目标GRADLE_USER_HOME和Gradle user home的区别GRADLE_USER_HOMEGradle user homeIDEA Gradle user home的坑如何验证这个坑?最终解决方案第一种解决方案,不下载Gradle,不配置关于Gradle的任何的环境变量,不配置IDEA的Gradle user home第二种方案:如果你想自己安装gradle,并且所有的工程_grade user homehttps://blog.csdn.net/iot_ai/article/details/106617626

难怪控制台命令 ./gradlew 都fail的,但其实设置了多少都没办法解决一些class问题。

测试方案和工具选型

到底选择test还是androidTest目录实现测试?

会不会有些问题就是目录不对呢?不能直接运行单元测试,必须用仪器测试?

在Android项目中,androidTesttest目录有着不同的用途,主要用于不同类型的测试。

  1. test目录

    • 该目录用于单元测试(Unit Tests)。
    • 单元测试是对应用中最小可测试单元的验证,通常是对单个类或方法的测试。
    • 这些测试可以在本地环境中运行,不依赖于Android的框架。
    • 使用JUnit等测试框架来编写和运行这些测试。
  2. androidTest目录

    • 该目录用于仪器测试(Instrumentation Tests),也称为功能测试(Functional Tests)或集成测试(Integration Tests)。
    • 这些测试可以验证应用程序在Android设备或模拟器上的行为,通常涉及到多个组件的交互。
    • 需要Android设备或模拟器环境来运行,通常使用Espresso、UI Automator等测试框架。
    • 它们可以访问Android的API和框架。

总结:

  • test目录用于快速的单元测试,不依赖Android环境。
  • androidTest目录用于需要Android运行时环境的仪器测试。

比如AOSP源码中,Settings 应用的测试目录结构,没有像第三方应用开发默认的目录结构区分androidTest 和 test,而是测试用例都在test目录维护,分为单元测试unit、界面测试uitesets等。

Settings 应用的测试目录结构
Settings 应用目录结构

@RunWith的选择建议

  • 使用 MockitoJUnitRunner:当你只需要测试简单的 Java 类逻辑,不依赖于 Android 框架时。
  • 使用 AndroidJUnit4:当你的测试需要运行在真实的 Android 环境中,且涉及到 UI 组件或 Android API。
  • 使用 RobolectricTestRunner:当你想要在 JVM 环境中运行 Android 测试,且希望在不依赖真实设备的情况下进行单元测试或集成测试。
1. MockitoJUnitRunner
  • 主要用途:用于单元测试,特别是需要 Mockito 模拟的场景。
  • 特点
    • 自动初始化 Mockito 的 mock 对象。
    • 适合非 Android 环境的简单 Java 类测试。
    • 不支持 Android 组件和框架依赖的测试
2. AndroidJUnit4
  • 主要用途:用于 Android Instrumentation 测试,通过 Android 测试框架运行测试。
  • 特点
    • 支持完整的 Android 环境,能够访问 Android API 和组件。
    • 适合 UI 测试和与 Android 组件交互的测试
    • 不会自动处理 Mockito 的 mock 对象,需要手动配置。
3. RobolectricTestRunner
  • 主要用途:用于在 JVM 上运行 Android 测试,模拟 Android 环境。
  • 特点
    • 不需要物理设备或模拟器即可运行 Android 测试。
    • 模拟 Android API,使得测试更快、更容易进行。
    • 支持使用 Mockito 进行 mock 对象的创建和使用。
    • 适合进行单元测试和集成测试,尤其是在需要 Android 上下文的情况下。

参考资料

官方文档

自动化界面测试  |  Android Developersicon-default.png?t=O83Ahttps://developer.android.google.cn/training/testing/ui-tests?hl=zh-cn

相关文章:

Android 应用测试的各种环境问题记录(Instrumentation测试)

报错记录 failed to configure packages targetSdkVersion&#xff08;未解决&#xff09; failed to configure com.demo.test.SettingsActivityTest.testOnCreate_withNullSavedInstanceState: Package targetSdkVersion34 > maxSdkVersion32 java.lang.IllegalArgumentE…...

python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)

文章目录 1、任务目标2、网站分析3、代码编写1、任务目标 目标网站:猫眼电影(https://www.maoyan.com/films?showType=2) 要求:抓取该网站下,所有即将上映电影的预约人数,保证能够获取到实时更新的内容;如下: 2、网站分析 进入目标网站,打开开发者模式,经过分析,我…...

问题记录-Java后端

问题记录 目录 问题记录1.多数据源使用事务注意事项&#xff1f;2.mybatis执行MySQL的存储过程&#xff1f;3.springBoot加载不到nacos配置中心的配置问题4.服务器产生大量close_wait情况 1.多数据源使用事务注意事项&#xff1f; 问题&#xff1a;在springBoot项目中多表处理数…...

YB2503HV:高效率降压IC,助力电动车、太阳能设备等领域的能源转换

今天我要向大家介绍一款引人注目的产品—— YB2503HV 100V 3A SOP8内置MOS 高效率降压IC。这款单片集成芯片具备可设定输出电流的开关型降压恒压驱动器功能&#xff0c;可广泛应用于电动车、太阳能设备、电子电池充电等领域。让我们一起来看看它的特点和应用吧&#xff01; 首先…...

Day47 | 动态规划 :线性DP 最长公共子序列最长公共子数组

Day47 | 动态规划 &#xff1a;线性DP 最长公共子序列&&最长公共子数组 动态规划应该如何学习&#xff1f;-CSDN博客 本次题解参考自灵神的做法&#xff0c;大家也多多支持灵神的题解 最长公共子序列 编辑距离_哔哩哔哩_bilibili 动态规划学习&#xff1a; 1.思考…...

【山大909算法题】2014-T1

文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 为带表头的单链表类Chain编写一个成员函数Reverse&#xff0c;该函数对链表进行逆序操作&#xff08;将链表中的结点按与原序相反的顺序连接&#xff09;&#xff0c;要求逆序操作就地进行&#xff0c;不分配…...

《生成式 AI》课程 作业6 大语言模型(LLM)的训练微调 Fine Tuning -- part2

资料来自李宏毅老师《生成式 AI》课程&#xff0c;如有侵权请通知下线 Introduction to Generative AI 2024 Spring 来源背景说明 该文档主要介绍了国立台湾大学&#xff08;NTU&#xff09;2024 年春季 “生成式人工智能&#xff08;GenAI&#xff09;” 课程的作业 5&#…...

【机器学习】如何使用Python的Scikit-learn库实现机器学习模型,并对数据进行预处理和特征缩放以提高模型性能?

使用Python的Scikit-learn库可以方便地实现机器学习模型&#xff0c;并对数据进行预处理和特征缩放以提高模型性能。以下是一个典型的工作流程&#xff0c;包括数据加载、预处理、特征缩放、模型训练和评估&#xff1a; 1. 安装Scikit-learn 确保已安装Scikit-learn库&#x…...

【SpringCloud详细教程】-04-服务容错--Sentinel

精品专题&#xff1a; 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12789841.html?spm1001.20…...

计算机学习

不要只盯着计算机语言学习&#xff0c;你现在已经学习了C语言和Java&#xff0c;暑假又规划学习Python&#xff0c;最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言&#xff0c;沿着这个方向继续往后学习知识就行。计算机语言是学不完的&#xff0c;而未来就…...

CSS - CSS One-Line

1. aspect-ratio 描述: 用于定义元素的宽高比&#xff0c;简化了以往使用“填充黑客”的方法。只需指定一个比率&#xff0c;浏览器会自动调整元素的尺寸 案例: .aspect-ratio-hd {aspect-ratio: 16/9; } .aspect-ratio-square {aspect-ratio: 1; /* 正方形 */ }2. object-…...

【AIGC】如何准确引导ChatGPT,实现精细化GPTs指令生成

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 &#x1f4af;前言&#x1f4af;准确引导ChatGPT创建爆款小红书文案GPTs指令案例&#x1f4af; 高效开发GPTs应用的核心原则明确应用场景和目标受众构建多样化风格模板提问与引…...

Redis主从架构

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的键值对存储系统&#xff0c;广泛应用于缓存、消息队列、实时分析等场景。为了提高系统的可用性、可靠性和读写性能&#xff0c;Redis提供了主从复制&#xff08;Master-Slave Replication&#xf…...

无人机探测:光电侦测核心技术算法详解!

核心技术 双光谱探测跟踪&#xff1a; 可见光成像技术&#xff1a;利用无人机表面反射的自然光或主动光源照射下的反射光&#xff0c;通过高灵敏度相机捕捉图像。该技术适用于日间晴朗天气下的无人机探测&#xff0c;具有直观、易于识别目标的特点。 红外成像技术&#xff1…...

34 基于单片机的指纹打卡系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52RC&#xff0c;采用两个按键替代指纹&#xff0c;一个按键按下&#xff0c;LCD12864显示比对成功&#xff0c;则 采用ULN2003驱动步进电机转动&#xff0c;表示开门&#xff0c;另一个…...

Day 26

进入贪心算法 基础理论 1、什么是贪心&#xff1f; 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 Eg&#xff1a;一堆钞票&#xff0c;你可以拿走 10 张&#xff0c;想达到最大金额&#xff0c;要怎么拿&#xff1f; –》指定每一次拿最大的&#xff0…...

11.25c++继承、多态

练习&#xff1a; 编写一个 武器类 class Weapon{int atk; }编写3个武器派生类&#xff1a;短剑&#xff0c;斧头&#xff0c;长剑 class knife{int spd; }class axe{int hp; }class sword{int def; }编写一个英雄类 class Hero{int atk;int def;int spd;int hp; public:所有的…...

ThinkPad t61p 作SMB服务器,打印服务器,pc ,android ,ipad利用此服务器互传文件

1.在t61p上安装win7 2,配置好smb 服务 3.再安装好打印驱动程序 4.pc与win7利用系统的网络互相发现,映射为硬盘使用。 5.android&#xff0c;ipad安装ES文件浏览器访问win7 共享文件夹&#xff0c;互传文件。 6.android手机安装FE文件浏览器&#xff0c;可以利用花生壳外网…...

数据结构单链表,顺序表,广义表,多重链表,堆栈的学习

单链表 比如一个多项式&#xff0c;主要包括x的系数&#xff0c;x的指数&#xff0c;那么可以创建一个一维数组来存储它的系数和指数&#xff0c;用数组下标来表示。它的系数可以用数组下标对应的数组元素来储存。 可是这样储存会浪费空间所以采用单链表形式来存储。 即创建一…...

uniapp内嵌的webview H5与应用通信

H5端&#xff1a; 1、找到index.html引入依赖 <script type"text/javascript" src"https://unpkg.com/dcloudio/uni-webview-js0.0.3/index.js"></script> 2、在需要通讯处发送消息 uni.postMessage({data:{code:200,msg:"处理完成&q…...

黄仁勋:人形机器人在内,仅有三种机器人有望实现大规模生产

11月23日&#xff0c;芯片巨头、AI时代“卖铲人”和最大受益者、全球市值最高【英伟达】创始人兼CEO黄仁勋在香港科技大学被授予工程学荣誉博士学位&#xff1b;并与香港科技大学校董会主席沈向洋展开深刻对话&#xff0c;涉及人工智能&#xff08;AI&#xff09;、计算力、领导…...

Docker--harbor私有仓库部署与管理

目录 一、Harbor 简介 1.1 什么是Harbor 1.2 Harbor的特性 1.3 Harbor的构成 二、Harbor 部署 2.1 部署 Docker-Compose 服务 2.2 部署 Harbor 服务 &#xff08;1&#xff09;下载或上传 Harbor 安装程序 &#xff08;2&#xff09;修改harbor安装的配置文件 2.3 启…...

35 基于单片机的精确电压表DA-AD转换

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DAC0832和ADC0832检测电压&#xff0c;0到8.5V&#xff0c;设计复位电路 LED管显示实际稳压值&#xff0c;初始电压0 二、硬件资源 基于KEIL5编写C代码&#xff0c…...

Windows系统下安装Triton 3.0.0预编译Triton 2.1.0

Triton是一个用于编写高效自定义深度学习原语的语言和编译器。它旨在提供一个开源环境&#xff0c;使得编写代码的速度比CUDA更快&#xff0c;同时比其他现有的DSLs&#xff08;领域特定语言&#xff09;更灵活。 在开始安装之前&#xff0c;请确保您的系统满足以下要求&#x…...

Easyexcel(7-自定义样式)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09;Easyexcel&#xff08;5-自定义列宽&#xff09;Easyexcel&#xff08;6-单…...

ubuntu搭建k8s环境详细教程

在Ubuntu上搭建Kubernetes&#xff08;K8s&#xff09;环境可以通过多种方式实现&#xff0c;下面是一个详细的教程&#xff0c;使用kubeadm工具来搭建Kubernetes集群。这个教程将涵盖从准备工作到安装和配置Kubernetes的所有步骤。 环境准备 操作系统&#xff1a;确保你使用的…...

spark 写入mysql 中文数据 显示?? 或者 乱码

目录 前言 Spark报错&#xff1a; 解决办法&#xff1a; 总结一下&#xff1a; 报错&#xff1a; 解决&#xff1a; 前言 用spark写入mysql中&#xff0c;查看中文数据 显示?? 或者 乱码 Spark报错&#xff1a; Sat Nov 23 19:15:59 CST 2024 WARN: Establishing SSL…...

Python中的简单爬虫

文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…...

网络安全原理与技术思考题/简答题

作业1&#xff08;第1章、第2章、第8章&#xff09; 1. 网络安全的基本属性有哪些&#xff1f;简单解释每个基本属性的含义。网络安全的扩展属性包括哪些&#xff1f; 基本属性&#xff1a; 1.机密性(Confidentiality)&#xff1a; 含义&#xff1a;确保信息不被未授权的用户…...

技术周刊 | 前端真的凉了吗?2024 前端趋势解读

大家好&#xff0c;我是童欧巴。见字如面&#xff0c;万事胜意。 小雪已过&#xff0c;大家勿忘添衣御寒&#xff0c;欢迎来到第 135 期周刊。 大厨推荐 2024 前端趋势 The Software House 公司发布的前端状态调查报告&#xff0c;本版是迄今为止最全面的调查&#xff0c;共…...

Qt常用控件之按钮类控件

目录 QPushButton 添加图标 添加快捷键 QRadioButton 关于toggled 模拟点餐功能 QCheckBox 刚刚 QWidget 中涉及到的各种 属性/函数/使用方法&#xff0c;针对接下来要介绍的 Qt 的各种控件都是有效的&#xff0c;因为各种控件都是继承自 QWidget 的 接下来本篇博客就学…...

Wonder3D本地部署到算家云搭建详细教程

Wonder3D简介 Wonder3D仅需2至3分钟即可从单视图图像中重建出高度详细的纹理网格。Wonder3D首先通过跨域扩散模型生成一致的多视图法线图与相应的彩色图像&#xff0c;然后利用一种新颖的法线融合方法实现快速且高质量的重建。 本文详细介绍了在算家云搭建Wonder3D的流程以及…...

景联文科技:高质量数据采集标注服务引领AI革新

在当今这个数字化时代&#xff0c;数据已经成为推动社会进步和产业升级的关键资源。特别是在人工智能领域&#xff0c;高质量的数据是训练出高效、精准的AI模型的基础。景联文科技是一家专业的数据采集与标注公司&#xff0c;致力于为客户提供高质量的数据处理服务&#xff0c;…...

企业面试真题----阿里巴巴

1.HashMap为什么不是线程安全的&#xff1f; 首先hashmap就是为单线程设计的&#xff0c;并不适合于多线程环境&#xff0c;而hashmap的线程不安全原因主主要是以下两个原因&#xff1a; 死循环 死循环问题发生在jdk1.8之前&#xff08;不包含1.8&#xff09;&#xff0c;造…...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【四】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

【C++知识总结2】C++里面的小配角cout和cin

一、引入 第一个关于输入输出的C代码 #include<iostream> // std是C标准库的命名空间名&#xff0c;C将标准库的定义实现都放到这个命名空间中 using namespace std; int main() {cout<<"Hello world!!!"<<endl;return 0; } 1. 使用cout标准输出…...

门控循环单元(GRU)与时间序列预测应用

一、GRU简介 门控循环单元&#xff08;Gated Recurrent Unit&#xff0c;简称GRU&#xff09;是一种简化版的LSTM&#xff08;长短期记忆网络&#xff09;&#xff0c;专门用于解决长序列中的梯度消失问题。与LSTM相比&#xff0c;GRU具有更简单的结构和较少的参数&#xff0c…...

Spring Boot 3 集成 Spring Security(2)授权

文章目录 授权配置 SecurityFilterChain基于注解的授权控制自定义权限决策 在《Spring Boot 3 集成 Spring Security&#xff08;1&#xff09;》中&#xff0c;我们简单实现了 Spring Security 的认证功能&#xff0c;通过实现用户身份验证来确保系统的安全性。Spring Securit…...

互联网摸鱼日报(2024-11-22)

互联网摸鱼日报(2024-11-22) 36氪新闻 学习马斯克不丢人&#xff0c;脸书也开始改造自己了 旅游行业趋势变了&#xff0c;增长还能从哪里寻找&#xff1f; 大厂入局后&#xff0c;小型小游戏团队能否继续喝一口汤&#xff1f; 一拥而上的“跨界咖啡”&#xff0c;是“走心”…...

RNN并行化——《Were RNNs All We Needed?》论文解读

InfoPaperhttps://arxiv.org/abs/2410.01201GitHubhttps://github.com/lucidrains/minGRU-pytorch个人博客地址http://myhz0606.com/article/mini_rnn 最近在看并行RNN相关的paper&#xff0c;发现很多都利用了Parallel Scanning算法。本文将从Parallel Scanning算法开始&…...

机器学习周志华学习笔记-第6章<支持向量机>

机器学习周志华学习笔记-第6章<支持向量机> 卷王&#xff0c;请看目录 6支持向量机6.1 函数间隔与几何间隔6.1.1 函数间隔6.1.2 几何间隔 6.2 最大间隔与支持向量6.3 对偶问题6.4 核函数6.5 软间隔支持向量机6.6 支持向量机6.7核方法 6支持向量机 支持向量机是一种经典…...

IP反向追踪技术,了解一下?

DOSS&#xff08;拒绝服务&#xff09;攻击是现在比较常见的网络攻击手段。想象一下&#xff0c;有某个恶意分子想要搞垮某个网站&#xff0c;他就会使用DOSS攻击。这种攻击常常使用的方式是IP欺骗。他会伪装成正常的IP地址&#xff0c;让网络服务器以为有很多平常的请求&#…...

2025蓝桥杯(单片机)备赛--扩展外设之UART1的原理与应用(十二)

一、串口1的实现原理 a.查看STC15F2K60S2数据手册: 串口一在590页&#xff0c;此款单片机有两个串口。 串口1相关寄存器&#xff1a; SCON:串行控制寄存器&#xff08;可位寻址&#xff09; SCON寄存器说明&#xff1a; 需要PCON寄存器的SMOD0/PCON.6为0&#xff0c;使SM0和SM…...

Linux 使用gdb调试core文件

core文件和gdb调试 什么是 core 文件&#xff1f;产生core文件的原因&#xff1f;core 文件的控制和生成路径gdb 调试core 文件引用和拓展 什么是 core 文件&#xff1f; 当程序运行过程中出现Segmentation fault (core dumped)错误时&#xff0c;程序停止运行&#xff0c;并产…...

Python后端flask框架接收zip压缩包方法

一、用base64编码发送&#xff0c;以及接收 import base64 import io import zipfile from flask import request, jsonifydef unzip_and_find_png(zip_data):# 使用 BytesIO 在内存中处理 zip 数据with zipfile.ZipFile(io.BytesIO(zip_data), r) as zip_ref:extracted_paths…...

【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java技术深度剖析&#xff1a;从分库分表到微服务的核心问题解析 摘要&#xff1a; 本…...

Linux 中 find 命令使用详解

目录 一&#xff1a;基本语法二&#xff1a;搜索路径1、限制递归层级2、排除指定路径 三&#xff1a;匹配条件1、按照文件名搜索2、按文件类型搜索3、按文件大小搜索4、按文件权限搜索5、按文件所有者或所属组搜索6、按文件修改时间搜索 四&#xff1a;执行操作1、输出满足条件…...

云服务器部署WebSocket项目

WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;其设计的目的是在Web浏览器和Web服务器之间进行实时通信&#xff08;实时Web&#xff09; WebSocket协议的优点包括&#xff1a; 1. 更高效的网络利用率&#xff1a;与HTTP相比&#xff0c;WebSocket的握手只…...

林业产品智能推荐引擎:Spring Boot篇

1 绪论 1.1 选题背景 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求&#xff0c;设置不同的功能&…...

【C++】LeetCode:LCR 077. 排序链表

题干 LCR 077. 排序链表 给定链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 解法&#xff1a;归并排序 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(null…...