Android Studio开发中Application和Activity生命周期详解
文章目录
- Application生命周期
- Application生命周期概述
- Application关键回调方法
- onCreate()
- onConfigurationChanged()
- onLowMemory()
- onTrimMemory()
- onTerminate()
- Application生命周期管理最佳实践
- Activity生命周期
- Activity生命周期概述
- Activity生命周期回调方法
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onDestroy()
- onRestart()
- Activity生命周期状态转换
- 特殊情况处理
- 配置变更(如屏幕旋转)
- 多窗口模式
- 后台限制
- Activity生命周期最佳实践
- Application与Activity生命周期的交互
- 高级主题
- 进程生命周期
- 任务和返回栈
- 启动模式对生命周期的影响
- 调试与日志记录
- 常见问题与解决方案
- 总结

Application生命周期
Application类是Android应用的全局基类,代表整个应用程序的上下文环境。理解Application的生命周期对于管理全局资源和应用状态至关重要。
Application生命周期概述
Application的生命周期从应用启动开始,到应用终止结束,主要包括以下几个关键阶段:
- 创建阶段:应用进程启动时创建Application实例
- 配置阶段:应用组件初始化及配置
- 运行阶段:应用处于活动状态
- 终止阶段:应用进程被系统回收
Application关键回调方法
onCreate()
onCreate()
是Application生命周期中最重要的回调方法:
@Override
public void onCreate() {super.onCreate();// 在这里初始化全局资源Log.d("Application", "onCreate called");
}
调用时机:
- 应用进程创建后立即调用
- 在任何Activity、Service或Receiver创建之前调用
典型用途:
- 初始化全局对象(如数据库、图片加载库)
- 设置应用级别的配置
- 初始化统计分析SDK
- 设置全局异常处理器
注意事项:
- 避免在此方法中执行耗时操作(超过5秒可能导致ANR)
- 不要在此方法中直接进行UI操作
onConfigurationChanged()
@Override
public void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);// 处理配置变更
}
调用时机:
- 设备配置发生改变时调用(如屏幕旋转、语言切换)
典型用途:
- 处理特定的配置变更
- 更新与配置相关的资源
onLowMemory()
@Override
public void onLowMemory() {super.onLowMemory();// 释放非关键资源
}
调用时机:
- 系统内存不足时调用
典型用途:
- 释放缓存资源
- 减少内存占用
onTrimMemory()
@Override
public void onTrimMemory(int level) {super.onTrimMemory(level);// 根据内存级别释放资源
}
调用时机:
- 系统需要应用释放内存时调用
内存级别参数:
TRIM_MEMORY_COMPLETE
:进程可能很快被终止TRIM_MEMORY_MODERATE
:进程位于LRU列表中间位置TRIM_MEMORY_BACKGROUND
:进程位于LRU列表底部
onTerminate()
@Override
public void onTerminate() {super.onTerminate();// 应用终止时清理
}
注意:
- 此方法仅在模拟器上调用,真机上不会调用
- 不要依赖此方法进行关键资源清理
Application生命周期管理最佳实践
- 轻量级初始化:保持onCreate()方法简洁,延迟加载非必要资源
- 内存管理:合理实现onTrimMemory()和onLowMemory()回调
- 全局状态管理:使用Application类管理应用全局状态时要谨慎
- 避免静态引用:防止内存泄漏
Activity生命周期
Activity是Android应用的UI组件,理解其生命周期对于创建流畅的用户体验至关重要。
Activity生命周期概述
Activity生命周期由一系列状态组成,系统通过回调方法与Activity交互。主要状态包括:
- 创建状态:Activity正在被创建
- 启动状态:Activity可见但未获取焦点
- 恢复状态:Activity可见且获取焦点(用户可交互)
- 暂停状态:Activity部分可见(如被对话框覆盖)
- 停止状态:Activity完全不可见
- 销毁状态:Activity被销毁
Activity生命周期回调方法
onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 初始化Activity
}
调用时机:
- Activity首次创建时调用
典型用途:
- 设置布局(setContentView)
- 初始化视图
- 绑定数据
- 恢复保存的实例状态
参数说明:
savedInstanceState
:包含之前保存的状态(如果是重建)
onStart()
@Override
protected void onStart() {super.onStart();// Activity变为可见状态
}
调用时机:
- Activity变为可见时调用
- 在onCreate()之后或onRestart()之后调用
典型用途:
- 注册广播接收器
- 初始化需要在Activity可见时运行的组件
onResume()
@Override
protected void onResume() {super.onResume();// Activity获取用户焦点
}
调用时机:
- Activity进入前台并获取用户输入焦点时调用
- 在onStart()之后调用
典型用途:
- 启动动画
- 打开独占设备资源(如相机)
- 恢复暂停的操作
onPause()
@Override
protected void onPause() {super.onPause();// Activity失去焦点
}
调用时机:
- 当Activity开始失去焦点时调用
- 另一个Activity进入前台前调用
典型用途:
- 提交未保存的更改
- 释放系统资源
- 停止动画或其他消耗CPU的操作
重要说明:
- 此方法执行时间应尽可能短
- 不要执行耗时操作(会延迟下一个Activity的显示)
onStop()
@Override
protected void onStop() {super.onStop();// Activity完全不可见
}
调用时机:
- Activity完全不可见时调用
- 在onPause()之后调用
典型用途:
- 释放/注销不需要在后台运行的资源
- 保存数据到持久存储
onDestroy()
@Override
protected void onDestroy() {super.onDestroy();// Activity被销毁前调用
}
调用时机:
- Activity被销毁前调用
- 可能是用户主动关闭或系统为回收内存
典型用途:
- 清理所有资源
- 关闭数据库连接
- 注销所有广播接收器
onRestart()
@Override
protected void onRestart() {super.onRestart();// Activity从停止状态重新启动
}
调用时机:
- Activity从停止状态重新显示时调用
- 在onStop()之后,onStart()之前调用
典型用途:
- 重新初始化在onStop()中释放的资源
Activity生命周期状态转换
- 完整生命周期:onCreate() → … → onDestroy()
- 可见生命周期:onStart() → … → onStop()
- 前台生命周期:onResume() → … → onPause()
特殊情况处理
配置变更(如屏幕旋转)
当配置变更发生时:
- 当前Activity被销毁(onPause() → onStop() → onDestroy())
- 新Activity被创建(onCreate() → onStart() → onResume())
保存状态:
@Override
protected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);outState.putString("key", "value");
}
恢复状态:
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (savedInstanceState != null) {String value = savedInstanceState.getString("key");}
}
多窗口模式
在多窗口模式下:
- 当Activity失去焦点但部分可见时,只调用onPause()不调用onStop()
- 调整窗口大小时会触发配置变更
后台限制
Android对后台Activity的限制:
- 后台Activity可能被系统回收
- 应妥善保存状态以便恢复
Activity生命周期最佳实践
-
合理分配资源:
- 在onCreate()中初始化长期资源
- 在onResume()中获取独占资源
- 在onPause()中释放独占资源
-
数据持久化:
- 重要数据应在onPause()中保存
- 临时状态使用onSaveInstanceState()
-
避免内存泄漏:
- 不要在Activity中长时间持有Context引用
- 及时注销广播接收器和服务绑定
-
性能优化:
- 减少onCreate()中的耗时操作
- 使用异步任务加载数据
-
状态管理:
- 清晰区分临时状态和持久状态
- 合理使用ViewModel保存UI相关数据
Application与Activity生命周期的交互
-
启动顺序:
- Application.onCreate()
- Activity.onCreate()
- Activity.onStart()
- Activity.onResume()
-
退出顺序:
- Activity.onPause()
- Activity.onStop()
- Activity.onDestroy()
- (可能)Application.onTerminate()(仅模拟器)
-
全局与局部:
- Application生命周期管理全局资源
- Activity生命周期管理UI相关资源
高级主题
进程生命周期
Android应用进程有自己的生命周期,与Application和Activity生命周期相关但不相同:
- 前台进程:拥有用户正在交互的Activity
- 可见进程:拥有可见但非前台的Activity
- 服务进程:运行已启动服务的进程
- 后台进程:不含任何活动组件的进程
- 空进程:缓存进程,为提升启动速度保留
任务和返回栈
Activity在任务(Task)和返回栈(Back Stack)中的行为影响生命周期:
- 新Activity入栈时,前一个Activity的onPause()被调用
- 当用户返回时,栈顶Activity被销毁,下一个Activity恢复
启动模式对生命周期的影响
Activity的启动模式(launchMode)会影响生命周期:
- standard:默认模式,总是创建新实例
- singleTop:如果已在栈顶则重用
- singleTask:在任务中保持唯一实例
- singleInstance:单独任务中的唯一实例
调试与日志记录
建议为每个生命周期方法添加日志:
private static final String TAG = "Lifecycle";@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(TAG, "onCreate");// ...
}
使用Android Studio的Lifecycle观察工具可以直观查看生命周期变化。
常见问题与解决方案
-
Activity重建导致数据丢失:
- 使用onSaveInstanceState()保存临时状态
- 使用ViewModel保存UI相关数据
-
内存泄漏:
- 避免非静态内部类持有Activity引用
- 使用WeakReference或静态类
-
生命周期方法执行顺序混乱:
- 确保先调用super方法
- 避免在生命周期方法中执行耗时操作
-
配置变更处理不当:
- 使用android:configChanges属性控制处理方式
- 或妥善保存和恢复状态
总结
深入理解Application和Activity生命周期是成为优秀Android开发者的基础。合理管理生命周期可以:
- 提高应用性能
- 减少内存使用
- 提供更好的用户体验
- 避免常见问题如内存泄漏和数据丢失
建议在实际开发中结合日志和性能分析工具,不断优化生命周期管理策略。
相关文章:
Android Studio开发中Application和Activity生命周期详解
文章目录 Application生命周期Application生命周期概述Application关键回调方法onCreate()onConfigurationChanged()onLowMemory()onTrimMemory()onTerminate() Application生命周期管理最佳实践 Activity生命周期Activity生命周期概述Activity生命周期回调方法onCreate()onSta…...
vite+vue2+elementui构建之 package.json
webpack版本太低,构建依赖太多,头大。 各种查阅资料,弄了一份直通构建vite构建elementUi核心文件, 构建基于开源若依vue2vue3版本改造,感谢开源,感谢若依。 vitevue2elementui构建之 vite.config.js-CSD…...
安全编排自动化与响应(SOAR):从事件响应到智能编排的技术实践
安全编排自动化与响应(SOAR):从事件响应到智能编排的技术实践 在网络安全威胁复杂度指数级增长的今天,人工处理安全事件的效率已难以应对高频攻击(如日均万级的恶意IP扫描)。安全编排自动化与响应…...
《Keras 3 :使用 TFServing 提供 TensorFlow 模型》
《Keras 3 :使用 TFServing 提供 TensorFlow 模型》 作者:Dimitre Oliveira 创建日期:2023/01/02 最后修改时间:2023/01/02 描述:如何使用 TensorFlow Serving 为 TensorFlow 模型提供服务。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 介绍 构建机器学习模…...
深入理解C++ 中的list容器
目录 一、引言 二、list的基本介绍 2.1 底层结构 2.2 特性 三、list的使用 3.1 构造函数 3.2 迭代器的使用 3.3 容量相关操作 3.4 元素访问相关操作 3.5 修改器操作 3.6 迭代器失效问题 四、list的模拟实现 4.1 节点定义 4.2 迭代器实现 4.3 list类实现 五、lis…...
附赠二张图,阐述我对大模型的生态发展、技术架构认识。
文章精炼,用两张图说明大模型发展业态方向,以及大模型主体技术架构。(目前还需要进一步验证我的Thought && ideas,等待机会吧.........) 图一:探究大模型三个层次应用方向,浅层次入门简…...
Java实现加密(七)国密SM2算法的签名和验签(附商用密码检测相关国家标准/国密标准下载)
目录 一、国密标准中,关于SM2签名验签的定义二、SM2签名和验签的实现原理1. 前置知识2. 签名生成过程3. 验签过程4. 数学正确性证明5. 安全性与注意事项 三、带userId、不带userId的区别1. 核心区别2.算法区别(1) 哈希计算过程(2) 签名验签流程 四、Java代码实现1. …...
贪心算法~~
目录 一、理论基础 二、题目练习 (1)455. 分发饼干 (2)53. 最大子数组和 - 力扣 (3)122. 买卖股票的最佳时机 II - 力扣(LeetCode) (4)860. 柠檬水找零…...
XYNU2024信安杯-REVERSE(复现)
前言 记录记录 1.Can_you_find_me? 签到题,秒了 2.ea_re 快速定位 int __cdecl main_0(int argc, const char **argv, const char **envp) {int v4; // [esp0h] [ebp-1A0h]const char **v5; // [esp4h] [ebp-19Ch]const char **v6; // [esp8h] [ebp-198h]char v7;…...
NLP系列【自然语言处理的深度学习模型综述】
自然语言处理的深度学习模型 摘要传统自然语言处理模型(略 不作重点)神经网络自然语言处理模型经典神经网络CNN网络模型Word2Vec模型RNN模型GPT网络模型BERT网络模型 BERT变体模型提升模型性能模型压缩 摘要 在自然语言处理任务方面,依据语料…...
【差分隐私】basic primitive的含义
在差分隐私领域,“basic primitive”一词具有特定的技术含义,需从单词本义及学科背景两个层面解析: 一、单词本义解析 “Primitive”在计算机科学中通常指代基础构建单元或核心组件,例如编程语言中的基本数据类型(如整…...
数字浪潮下的算力担当:GPU 服务器的多元应用、核心价值
在当今数据洪流和信息爆炸的时代,算力已成为衡量国家、行业乃至企业发展水平的关键指标。而算力服务器,特别是 GPU 服务器,作为算力的核心载体,正以其卓越性能深刻改变着世界的运行逻辑与模式。从数据处理到云计算,从人…...
【Echarts】使用echarts绘制多个不同类型的中国地图
一、需求 在同一页面上绘制多个不同类型的中国地图,如果是在同一页面上绘制多个同一种类型的地图可以直接引用一个china.js文件,设置两个独立的div分别用于放置两个地图,并实例化配置相关参数即可,但是如果在同一个页面上绘制多个…...
WEB漏洞-XSS跨站原理分类
本文主要内容 原理 XSS漏洞产生原理? XSS漏洞危害影响? 分类 反射型、存储型、DOM型 手法 XSS平台使用 XSS工具使用 XSS结合其他漏洞 靶场搭建 pikachu 靶场搭建(完整版)-CSDN博客https://blog.csdn.net…...
PR第二课--混剪
1.音乐打点 1.1 手动打点 按钮(如图),或者,快捷键M(如果在已有打点处,再次按M键会进入对标记点的设置界面,如下下图) 1.2 插件打点 一段音乐中,有明显的鼓点时,可以使用打点插件,快捷打点;如果鼓点不明显的话,最好还是手动打点,用插件打点会打出大量的标记点,…...
Kafka和flume整合
需求1:利用flume监控某目录中新生成的文件,将监控到的变更数据发送给kafka,kafka将收到的数据打印到控制台: 在flume/conf下添加.conf文件, vi flume-kafka.conf # 定义 Agent 组件 a1.sourcesr1 a1.sinksk1 a1.c…...
Linux 内核网络协议栈中 inet_stream_ops 与 tcp_prot 的深度解析
在 Linux 内核网络协议栈中,TCP 协议的实现依赖于多个关键结构体的协作。其中,inet_stream_ops 和 tcp_prot 是两个核心结构体,它们分别属于不同的层次,共同完成从用户态系统调用到底层协议处理的完整链路。本文将从功能定位、协作关系、代码示例及设计哲学等方面,深入分析…...
flume整合kafka
需求一: 启动flume 启动kafka消费者,验证数据写入成功 新增测试数据 需求二: 启动Kafka生产者 启动Flume 在生产者中写入数据...
EasyRTC音视频实时通话嵌入式SDK,打造社交娱乐低延迟实时互动的新体验
一、方案背景 在数字化时代,社交娱乐已经成为人们生活中不可或缺的一部分。随着移动互联网和智能设备的普及,用户对实时互动的需求越来越高。EasyRTC作为一款基于WebRTC技术的实时音视频通信解决方案,凭借其低延迟、高稳定性和跨平台兼容性&…...
制作一款打飞机游戏21:自定义工具
关于如何在Pico 8中创建我们自己的编辑器。 外部编辑器的需求 首先,我想谈谈为什么我们需要外部编辑器。外部编辑器通常用于编辑游戏中的数据。例如,一个游戏卡或程序通常包含一些代码,但也会包含数据,比如静态信息,…...
面向高性能运动控制的MCU:架构创新、算法优化与应用分析
摘要:现代工业自动化、汽车电子以及商业航天等领域对运动控制MCU的性能要求不断提升。本文以国科安芯的MCU芯片AS32A601为例,从架构创新、算法优化到实际应用案例,全方位展示其在高性能运动控制领域的优势与潜力。该MCU以32位RISC-V指令集为基…...
LWIP中两种重要的数据结构pbuf和pcb详细介绍
LWIP(Lightweight IP)是为嵌入式系统设计的轻量级TCP/IP协议栈。pbuf(Packet Buffer)和PCB(Protocol Control Block)是LwIP中两个核心数据结构,分别负责数据包管理和协议状态维护。 1. pbuf&…...
embedding_model模型通没有自带有归一化层该怎么处理?
embedding_model 是什么: 嵌入式模型(Embedding)是一种广泛应用于自然语言处理(NLP)和计算机视觉(CV)等领域的机器学习模型,它可以将高维度的数据转化为低维度的嵌入空间࿰…...
【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
目录 scratch回文数 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch回文数 第十五届青少年蓝桥杯scratch编…...
1.2-1.3考研408计算机组成原理第一章 计算机系统概述
计算机组成原理第一章 计算机系统概述 一、计算机的层次结构 1.1 计算机系统组成 计算机系统由硬件系统和软件系统两大部分构成: 硬件系统:包括运算器、控制器、存储器、输入设备和输出设备五大核心部件(冯诺依曼体系结构)。软…...
【QQmusic自定义控件实现音乐播放器核心交互逻辑】第三章
🌹 作者: 云小逸 🤟 个人主页: 云小逸的主页 🤟 motto: 要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在&…...
基于图扑 HT 实现的智慧展馆数字孪生应用
在当今数字化时代,智慧展览馆作为传统展览场所的创新升级形态,借助前沿科技与现代化管理理念,实现了全方位的数字化、智能化转型。图扑软件凭借其自主研发的 HT 技术在智慧展馆领域取得了卓越成果,为城市基础设施数字化应用带来了…...
从线性到非线性:简单聊聊神经网络的常见三大激活函数
大家好,我是沛哥儿,我们今天一起来学习下神经网络的三个常用的激活函数。 引言:什么是激活函数 激活函数是神经网络中非常重要的组成部分,它引入了非线性因素,使得神经网络能够学习和表示复杂的函数关系。 在神经网络…...
重生之--js原生甘特图实现
需求: 一个树形结构,根据子节点的时间范围显示显示进度 ,不同的时间范围对应不同的颜色 数据类型大概是这个样子的 甘特图 dom部分 首先要计算所有节点的 最大时间和最小时间 然后再计算每个甘特图的宽度 再计算他的偏移量 再计算颜色...
pnpm monoreop 打包时 node_modules 内部包 typescript 不能推导出类型报错
报错信息如下: ../../packages/antdv/components/pro-table/src/form-render.vue:405:1 - error TS2742: The inferred type of default cannot be named without a reference to .pnpm/scroll-into-view-if-needed2.2.31/node_modules/scroll-into-view-if-needed…...
告别默认配置!Xray自定义POC开发指南
文章涉及操作均为测试环境,未授权时切勿对真实业务系统进行测试! 下载与解压 官网地址: Xray GitHub Releases 根据系统选择对应版本: Windows:xray_windows_amd64.exe.zipLinux:xray_linux_amd64.zipmacOS:xray_darwin_amd64.zip解压后得到可执行文件(如 xray_linux_…...
websheet之 自定义函数
在线代码 {.is-success} 一、自定义函数约定 必须遵守本控件的自定函数约定才可以正常使用。 {.is-warning} 约定如下: 自定义类名称与函数名称一致。(强制)该类方法名称与函数名称一致,该方法是函数的入口。(强制&am…...
Jenkins Pipeline 构建 CI/CD 流程
文章目录 jenkins 安装jenkins 配置jenkins 快速上手在 jenkins 中创建一个新的 Pipeline 作业配置Pipeline运行 Pipeline 作业 Pipeline概述Declarative PipelineScripted Pipeline jenkins 安装 安装环境: Linux CentOS 10:Linux CentOS9安装配置Jav…...
电脑技巧:路由器内部元器件介绍
目录 1. 处理器(CPU) 2. 内存(RAM) 3. 固态存储(Flash Memory) 4. 网络接口卡(NIC) 5. 电源模块 6. 散热系统 7. 无线天线 结语 路由器是我们日常上网的重要设备,今天我们就来深入了解路由器内部的各个元器件,了解它们是如何协同工作,一起来看看吧。 1. 处理器(CPU…...
ArrayUtils:数组操作的“变形金刚“——让你的数组七十二变
各位数组操控师们好!今天给大家带来的是Apache Commons Lang3中的ArrayUtils工具类。这个工具就像数组界的"孙悟空",能让你的数组随心所欲地变大、变小、变长、变短,再也不用对着原生数组的"死板"叹气了! 一…...
电脑温度怎么看 查看CPU温度的方法
监测电脑温度对于保持硬件健康非常重要,特别是在进行高强度运算、游戏或超频等操作时。过高的温度可能导致硬件性能下降,甚至损坏。本篇文章将介绍查看电脑温度的4种方法。 一、使用Windows内置工具查看CPU温度 Windows系统本身并不直接提供查看CPU温度…...
【合新通信】---浸没式液冷光模块化学兼容性测试方法
一、测试目的与核心挑战 测试目标 验证冷媒(氟化液、矿物油等)与光模块材料的化学稳定性,确保长期浸没环境下无腐蚀、溶胀或性能衰减。关键风险点:密封材料(如硅胶、环氧树脂)的溶解或老化;金…...
shell 循环
shell 循环while语句,shell循环until语句在上一篇shell流程控制 1.shell循环until语句 until 条件 #当后面的条件表达式为假的时候的才循环,为真的时候就停止了 do 循环体 done [root@linux-server script]# cat until.sh (1) #!/bin/bash x=1 until [ $x -ge 10 ] 大于…...
【产品经理】常见的交互说明撰写方法
在产品原型设计中,交互说明是确保开发团队准确理解设计意图的关键文档。以下是常见的交互说明撰写方法及其应用场景,帮助您系统化地传达交互逻辑: 文字描述法 方法:用自然语言详细描述操作流程、反馈及规则。 适用场景ÿ…...
使用kubeadmin 部署k8s集群
成功搭建一个 Kubernetes 1.28.2 集群,包含以下组件和状态: 集群拓扑 1 个 Master 节点 IP:10.1.1.100 角色:control-plane 2 个 Worker 节点 Node2:10.1.1.101 Node3:10.1.1.102 核心组件状态 所有节点通过 kubectl get nodes 显示为 Ready。 核心 Pod(如 etc…...
二项式分布html实验
二项式分布html实验 本文将带你一步步搭建一个纯前端的二项分布 Monte-Carlo 模拟器。 只要一个 HTML 文件,打开就能运行: 动态输入试验次数 n、成功概率 p 与重复次数 m点击按钮立刻得到「模拟频数 vs 理论频数」柱状图随着 m 增大,两组柱状…...
[基础] Windows PCIe设备驱动框架与开发实践深度解析
Windows PCIe设备驱动框架与开发实践深度解析 1. PCIe设备驱动技术背景 PCI Express(Peripheral Component Interrupt Express)作为现代计算机系统的核心互连标准,其驱动程序开发涉及复杂的内核模式编程。Windows系统通过模块化的驱动架构支…...
面向智能家居安全的异常行为识别与应急联动关键技术研究与系统实现(源码+论文+部署讲解等)
需要资料,请文末系 一、平台介绍 3D家庭实景 - 动热力图 多模态看板 跌倒行为分析 二、论文内容 在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2dfe7f45d3ce42399e0df9535870d26d.png) bash 摘要 Abstract第一章 绪论 1.1 研究背景与动机 o1.1.1…...
根据JSON动态生成表单表格
根据JSON动态生成表单表格 一. 子组件 DynamicFormTable.vue1,根据JSON数据动态生成表单表格,支持表单验证JS部分1.1,props数据1.2,表单数据和数据监听1.3,自动验证1.4,表单验证1.5,获取表单数据1.6,事件处理1.7,暴露方法给父组件2,HTML部分二,父组件1, 模拟数据2,…...
spring OncePerRequestFilter 作用
概要 OncePerRequestFilter 是 Spring Web 提供的一个抽象滤器基类,用于保证在一次 HTTP 请求的整个分派过程中,该滤器仅执行一次,无论该请求经历了多少次内部转发(forward)、包含(include)或错…...
关于开源大模型(如 LLaMA、InternLM、Baichuan、DeepSeek、Qwen 等)二次开发或训练经验的关键点和概述
以下是适合初学者理解的关于开源大模型(如 LLaMA、InternLM、Baichuan、DeepSeek、Qwen 等)二次开发或训练经验的关键点和概述,: 关键点: 研究表明,二次开发通常涉及微调模型以适应特定任务,需…...
promethus基础
1.下载prometheus并解压 主要配置prometheus.yml文件 在scrape_configs配置项下添加配置(hadoop202是主机名): scrape_configs: job_name: ‘prometheus’ static_configs: targets: [‘hadoop202:9090’] 添加 PushGateway 监控配置 job_name: ‘pushgateway’…...
26考研 | 王道 | 数据结构 | 第八章 排序
第八章 排序 文章目录 第八章 排序**8.1** 排序的基本概念**8.2 插入排序****8.2.1 直接插入排序****8.2.2 折半插入排序****8.2.3 希尔排序** 8.3 交换排序8.3.1 冒泡排序8.3.2 快速排序 8.4 选择排序8.4.1 简单选择排序8.4.2 堆排序堆的概念:建立大根堆的代码堆排…...
SecMulti-RAG:兼顾数据安全与智能检索的多源RAG框架,为企业构建不泄密的智能搜索引擎
本文深入剖析SecMulti-RAG框架,该框架通过集成内部文档库、预构建专家知识以及受控外部大语言模型,并结合保密性过滤机制,为企业提供了一种平衡信息准确性、完整性与数据安全性的RAG解决方案,同时有效控制部署成本。 企业环境中A…...
kubesphere 单节点启动 etcd 报错
kubekey安装 ./kk create cluster -f config-sample.yaml --with-local-storage 时报错 etcd health check failed: Failed to exec command: sudo -E /bin/bash -c "export ETCDCTL_API2;export ETCDCTL_CERT_FILE/etc/ssl/etcd/ssl/admin-node1.pem;export ETCDCTL_KEY_…...