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

unity打包sdk热更新笔记

基础打包需要知识:
安装包大小不要超过2G,AB包数量过多会影响加载和构建,多次IO,用Gradle打包,要支持64位系统,不同的渠道包:让做sdk的人支持,提供渠道包的打包工具
配置系统环境变量,可快速执行某个exe bat命令
删除模型默认材质(因为用的是ab的,所以没用,默认的没用)
设置图集Tag
静态资源只被一个资源依赖不给ab包名(例如材质和贴图,材质生成,但是贴图不生成资源索引)
生成xlua,如果有用到lua
收集shader变体
打ab的策略:
1.先根据配置确定动态资源分包,然后根据以下原则,循环确定静态资源分包
2.只被一个(动态/静态)包依赖的资源,打进同一包
3.被多个(动态/静态)包依赖的资源,单独分一个包
4.纹理和fbx的模型,一般不生成,不给包名
打包时候下载ab资源的时候使用的unitywebrequest
ab下载的路径在Application.persistentDataPath可读可写,被称为外包路径,window在appdata/用户名下面
版本号,本次版本修改的ab文件相对于上一次和ab文件的差异的ab会记录在csv表格中
gradle工程是一个在IL2CPP文件夹下的工程
同一个游戏不同unity工程的资源的guid不能不一样,否则别人提交会有问题,资源管理的基础,图片的guid被prefab依赖
游戏运行时候是先从persistentDataPath加载ab,找不到再到内包上找
启用ab的Disable Write TypeTree,可以提高打包速度

Unity3D项目Plugins目录组织

https://blog.csdn.net/linxinfa/article/details/102978005

IPreprocessBuild

继承提供打包前,打包后接口

BuildAssetBundles

UnityWebRequest’s DownloadHandlerAssetBundle / LoadFromFile / LoadFromMemoryAsync

数据完整性校验方式

AndroidManfiest对象获得依赖

替代ab的addressable

https://blog.csdn.net/u012338130/article/details/104135468
https://blog.csdn.net/linxinfa/article/details/122390621
要注意addressable热更新之后没有删除的重复缓存问题,在这里插入图片描述
下载的时候这个mergenode要选择none,某教程教我们写union,就是同个key保留了

AssetStudio 对没有加密的ab包进行逆向

Host的作用

https://blog.csdn.net/qq_35246620/article/details/66970211,一般谁做服务器谁提供一个端口给外面客户端连接,有开放端口了要配置一个Host

HybridClr

https://blog.csdn.net/u013774978/article/details/131565741

Gradle

https://linxinfa.blog.csdn.net/article/details/118553713

Jenkins

https://blog.csdn.net/linxinfa/article/details/118816132
https://www.jenkins-zh.cn/tutorial/management/mirror/ 中文社区,上面有镜像源,下载出问题先设置
在这里插入图片描述
jenkins的归档路径,密码,端口配置相关基本都在配置文件上
jenkins restart
unity 插件直接使用unity命令
-quit -batchmode -projectPath “C:\D\UnityProject\BuildApkAndHotUpdate” -executeMethod BuildTool.BuildApk productName=&productName -logFile C:\D\UnityProject\apk\output.log"

Bat文件

打包中常用Bat命令:

svn:

1.svn update %WorkPath% --username 用户名 --password 密码
2.svn clearup
3.svn revert * 更新之前应该先还原
4.Unity.exe -projectpath unity工程路径 -quit -batchmode -executeMethod 类名.方法名 -logFile log文件路径
5.Winrar.exe -a -r -ep1 文件夹路径 归档路径
jenkins和unity中传参,通过文件传参
6,java 安卓生成密钥 在这里插入图片描述
在这里插入图片描述
用一样的密码,密码要在打包代码里面用代码输入

打包相关参数:

EditorUserBuildSettings.development=true;
EditorUserBuildSettings.connectProfiler=true; 这个开启profiler
projectNama和版本号:
在这里插入图片描述
分别会显示在你手机这个app的应用信息里面
安卓需要 密钥 keystore
ios需要开发者账号和开发者证书(调试版和发布版),先注册账号进入账号界面操作,ipa跟apk一样是ios的包代表

打包常用API相关

1.String:StartWith用于判断是否是某个目录下的资源,根据路径。
2.string[] guids = AssetDatabase.FindAssets(null, SearchFolder.ToArray()); 从路径集合下搜索所有的文件返回guid列表
3.string path = AssetDatabase.GUIDToAssetPath(guids[i]);
4.AssetDatabase.GetAssetDependencyHash(path).ToString();用来生成文件的hash,增加比较效率
5.string[] dps = AssetDatabase.GetDependencies(path, false);获得path这个文件的依赖资源路径列表
6.String:SubString()例如截取到相对于Asset的路径
7.ath.GetFileNameWithoutExtension(assetPath);直接获取文件名称
8.EditorUtility.DisplayCancelableProgressBar($“动态资源:生成资源包名映射:({i}/{assetCount})”, assetPath, i * 1.0f / assetCount);进度相关显示进度条
9.EditorUtility.ClearProgressBar();清除进度条
10.HashSet 经常使用可以去重
11. var manifest = BuildPipeline.BuildAssetBundles(path:string, buildList:List, option:BuildAssetBundleOptions, buildPlatform); 用这个接口,就不用调用那个设置prefab ab包名的接口了,直接把包名和对应的assetname名传进去。相对于asset的路径。AssetBundleBuild,所有对应的文件对应一个包名
12. //设置签名
PlayerSettings.Android.keystoreName = _buildApkConfig[BuildKeystoreNameKey];
PlayerSettings.Android.keystorePass = _buildApkConfig[BuildKeystorePassKey];
PlayerSettings.Android.keyaliasName = _buildApkConfig[BuildKeyaliasNameKey];
PlayerSettings.Android.keyaliasPass = _buildApkConfig[BuildKeyaliasPassKey];
13. CSObjectWrapEditor.Generator.ClearAll();
CSObjectWrapEditor.Generator.GenAll(); XLUA的
14. Directory.GetDirectories
15. option |= BuildAssetBundleOptions.ForceRebuildAssetBundle; BuildAssetBundles的时候加上这个标签,会强制从0开始ab,否则会比对目录下只打增量修改的ab
16. Application.version可以用来判断是不是第一次安装包,热更了资源的包的这个字段还是不变
17.在这里插入图片描述
VersionCode可以用来表示是不是新的版本的包

打包常见报错:

1.gradle没找到,配置一下国内镜像在settingTemplate文件里面
https://blog.csdn.net/RabbitLikeCitrus/article/details/107022571

华佗热更DLL

华佗热更dll就是用华佗把dll变成byte打进某个ab里面去,然后更新ab,下下来,从ab里面读取字节流加载成dll
在这里插入图片描述
Assembly.Load(dllByte.bytes)

相关文章:

unity打包sdk热更新笔记

基础打包需要知识: 安装包大小不要超过2G,AB包数量过多会影响加载和构建,多次IO,用Gradle打包,要支持64位系统,不同的渠道包:让做sdk的人支持,提供渠道包的打包工具 配置系统环境变量…...

算法-贪心算法简单介绍

下面是贪心算法视频课的导学内容. 目录 1. 什么是贪心算法?2. 贪心算法简单的三个例子:1. 找零问题2. 最小路径和问题3. 背包问题 3. 贪心算法的特点4. 贪心算法学习的方式? 1. 什么是贪心算法? 简单来说, 我们称以局部最优进而使得全局最优的一种思想实现出来的算法为贪心…...

1Hive概览

1Hive概览 1hive简介2hive架构3hive与Hadoop的关系4hive与传统数据库对比5hive的数据存储 1hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 其本质是将SQL转换为MapReduce/Spark的任务进…...

Linux SUID提权

文章目录 1. SUID/SGID2. 查找SUID文件3. SUID/SGID提权3.1 SUID配置不当3.2 SUID systemctl提权3.3 $PATH变量劫持 参考 1. SUID/SGID SUID(Set User ID)意味着如果某个用户对属于自己的文件设置了这种权限,那么其他用户在执行这一脚本时也…...

RabbitMQ确保消息可靠性

消息丢失的可能性 支付服务先扣减余额和更新支付状态(这俩是同步调用),然后通过RabbitMq异步调用支付服务更新订单状态。但是有些情况下,可能订单已经支付 ,但是更新订单状态却失败了,这就出现了消息丢失。…...

用plotly制作一条带颜色的时间轴,显示学习情况

前一篇文章我写到用matplotlib制作一条带颜色的时间轴,显示学习情况-CSDN博客,这是我在工作地方写的程序,我回家后发现家里的笔记本用不了matplotlib,所以我尝试用plotly这另外的模块也写一段程序,让我的程序能够回家使…...

MySQL:索引

目录 1.MySQL索引是干什么的 2.铺垫知识 3.单个page的理解 4.页目录 单页情况 多页情况 1.MySQL索引是干什么的 MySQL的索引是提高查询效率,主要提高海量数据的检索速度。 2.铺垫知识 操作系统与磁盘之间IO的基本单位是4kb。 数据库是一个应用层软件&#…...

Kylin: `GLIBC_2.34‘ not found

需要查看服务器GLIBC版本 strings /lib64/libc.so.6 |grep GLIBC_如果没有,有两种办法,一种是libc.so.6降级,但是这样很容易将服务器搞崩溃 所以可以尝试下载对应版本 glibc 打包编译,重新建立软连,下列是RPM资源可以…...

ASP.NET Core - 依赖注入(四)

ASP.NET Core - 依赖注入(四) 4. ASP.NET Core默认服务5. 依赖注入配置变形 4. ASP.NET Core默认服务 之前讲了中间件,实际上一个中间件要正常进行工作,通常需要许多的服务配合进行,而中间件中的服务自然也是通过 Ioc…...

【全套】基于分类算法的学业警示预测信息管理系统

【全套】基于分类算法的学业警示预测信息管理系统 【摘 要】 随着网络技术的发展基于分类算法的学业警示预测信息管理系统是一种新的管理方式,同时也是现代学业预测信息管理的基础,利用互联网的时代与实际情况相结合来改变过去传统的学业预测信息管理中…...

《零基础Go语言算法实战》【题目 2-25】goroutine 的执行权问题

《零基础Go语言算法实战》 【题目 2-25】goroutine 的执行权问题 请说明以下这段代码为什么会卡死。 package main import ( "fmt" "runtime" ) func main() { var i byte go func() { for i 0; i < 255; i { } }() fmt.Println("start&quo…...

回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测

回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测 目录 回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 RVM-Adaboost相关向量机集成学习多输入单输出回归预测是一种先进的机器学习方法&#xff0c;用于处理…...

【OJ刷题】同向双指针问题3

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;OJ刷题入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1…...

数据挖掘实训:天气数据分析与机器学习模型构建

随着气候变化对各行各业的影响日益加剧&#xff0c;精准的天气预测已经变得尤为重要。降雨预测在日常生活中尤其关键&#xff0c;例如农业、交通和灾害预警等领域。本文将通过机器学习方法&#xff0c;利用历史天气数据预测明天是否会下雨&#xff0c;具体内容包括数据预处理、…...

RAG 带来的一些问题

RAG (Retrieval-Augmented Generation) 提高了查询的准确性&#xff0c;但也引入了一些新的问题。主要问题集中在信息检索和生成模型的结合方式上&#xff0c;这些问题影响了系统的性能、效率和输出质量。以下是 RAG 带来的主要问题以及相应的解决方法。 1. 依赖外部检索系统的…...

大疆上云API基于源码部署

文章目录 大疆上云API基于源码部署注意事项1、学习官网2、环境准备注意事项3、注册成为DJI开发者4、下载前后端运行所需要的包/依赖前端依赖下载后端所需要的Maven依赖包 用到的软件可以在这里下载5、MySQL数据库安装安装MySQL启动MySQL服务在IDEA中配置MySQL的连接信息 6、Red…...

【Python系列】Python 中使用 pymysql 连接 MySQL 数据库进行数据查询

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【数据结构学习笔记】19:跳表(Skip List)

介绍 跳表是一个能在 O ( n l o g n ) O(nlogn) O(nlogn)时间完成查找、插入、删除的数据结构&#xff0c;相比于树形结构优点就是很好写&#xff08;所以也用于实现Redis ZSet&#xff09;。其核心思想就是维护一个元素有序的&#xff0c;能随机提升索引层数的链表。最下面一…...

《计算机网络》课后探研题书面报告_网际校验和算法

网际校验和算法 摘 要 本文旨在研究和实现网际校验和&#xff08;Internet Checksum&#xff09;算法。通过阅读《RFC 1071》文档理解该算法的工作原理&#xff0c;并使用编程语言实现网际校验和的计算过程。本项目将对不同类型的网络报文&#xff08;包括ICMP、TCP、UDP等&a…...

【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis

以人物为中心的主体到图像的高保真合成&#xff0c;CVPR2024 code&#xff1a;CodeGoat24/Face-diffuser: [CVPR2024] Official implementation of High-fidelity Person-centric Subject-to-Image Synthesis. paper&#xff1a;2311.10329 背景 研究问题&#xff1a;这篇文…...

Flink集成TDEngine来批处理或流式读取数据进行流批一体化计算(Flink SQL)拿来即用的案例

Flink 以其流批一体化的编程模型而备受青睐。它支持高吞吐、低延迟的实时流计算,同时在批处理方面也表现出色。Flink 提供了丰富的 API,如 DataStream API 和 DataSet API,方便开发者进行数据处理操作,包括转换、聚合、连接等,使得开发者能够轻松构建复杂的数据处理逻辑。…...

Zookeeper特性与节点数据类型详解

1、 Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集…...

C# HslCommunication库

C# HslCommunication库是一个用于建立TCP连接并进行Modbus通讯的库。下面将详细介绍如何使用该库进行TCP通讯。 首先&#xff0c;需要在C#项目中引用HslCommunication库。 创建一个TCP连接对象&#xff0c;可以使用HslCommunication.ModBus.ModbusTcpNet类&#xff0c;例如&am…...

springMVC实现文件上传

目录 一、创建项目 二、引入依赖 三、web.xml 四、编写上传文件的jsp页面 五、spring-mvc.xml 六、controller 七、运行 一、创建项目 二、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.o…...

【深度学习】Windows系统Anaconda + CUDA + cuDNN + Pytorch环境配置

在做深度学习内容之前&#xff0c;为GPU配置anaconda CUDA cuDNN pytorch环境&#xff0c;在网络上参考了很多帖子&#xff0c;但pytorch的安装部分都有些问题或者比较复杂繁琐&#xff0c;这里总结了相对简单快速的配置方式 文章目录 AnacondaCUDAcuDNNpytorchtorchtorchau…...

springboot整合rabbitmq

1. 添加依赖 首先&#xff0c;在你的 pom.xml 文件中添加 RabbitMQ 的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2. 配置 RabbitMQ …...

【React】脚手架进阶

目录 暴露webpack配置package.json的变化修改webpack.config.js配置less修改域名、端口号浏览器兼容处理处理跨域 暴露webpack配置 react-scripts对脚手架中的打包命令进行封装&#xff0c;如何暴露这些打包配置呢&#xff1f;上篇写到在package.json中的scripts配置项中有eje…...

Unreal Engine 5 (UE5) Metahuman 的头部材质

在图中&#xff0c;你展示了 Unreal Engine 5 (UE5) Metahuman 的头部材质部分&#xff0c;列出了头部材质的多个元素。以下是对每个部分的解释&#xff1a; 材质解释 Element 0 - MI_HeadSynthesized_Baked 作用&#xff1a; 这是 Metahuman 的主要头部材质&#xff0c;控制整…...

当自动包布机遇上Profinet转ModbusTCP网关,“妙啊”,工业智能“前景无限

在自动化控制技术日新月异的当下&#xff0c;Profinet与ModbusTCP这两种协议在工业通信领域占据着举足轻重的地位。ModbusTCP是基于以太网的串行通信协议&#xff0c;而Profinet则是依托工业以太网的现场总线协议。它们在数据传输速度、实时性表现以及兼容性等方面各具特色。不…...

Elasticsearch 批量导入数据(_bluk方法)

官方API&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html 建议先看API POST /<索引名>/_bulk 格式要求&#xff1a; POST _bulk { "index" : { "_index" : "test", "_id" : &q…...

lammps应用于热电材料

文章目录 1.热传导理论1.热导率2.晶格振动3.晶体热容4.声子平均自由程5.傅里叶定律 2.lammps计算Ar热导率3.lammps模拟SiGe热电材料4.平衡分子动力学(EMD) 1.热传导理论 1.热导率 热传递机制随介质材料相的不同而改变&#xff1a;固体(热传导)、液体(热对流)、气体(对流和辐射…...

SAP资产盘盈盘亏的过账处理、入账价值错误调整、资产减值准备

文章目录 一、SAP资产盘盈盘亏处理1、ABNAN盘盈 &#xff08;往年资产&#xff09; ABZON (当年资产&#xff09;2、ABAVN盘亏 二、资产价值入账错了&#xff08;价值多了或少了&#xff09;&#xff0c;怎么调账1、价值少了2、价值多了 三、资产减值准备1、启用重估2、指定间隔…...

Adobe与MIT推出自回归实时视频生成技术CausVid。AI可以边生成视频边实时播放!

传统的双向扩散模型&#xff08;顶部&#xff09;可提供高质量的输出&#xff0c;但存在显著的延迟&#xff0c;需要 219 秒才能生成 128 帧的视频。用户必须等待整个序列完成才能查看任何结果。相比之下CausVid将双向扩散模型提炼为几步自回归生成器&#xff08;底部&#xff…...

MYSQL学习笔记(一):准备数据和数据库的最基本命令

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇是入门准备数据和一些关于数据库的操作命令&#xff1b;虽然MYSQL命令很多&…...

求矩阵不靠边元素之和(PTA)C语言

求矩阵的所有不靠边元素之和&#xff0c;矩阵行的值m从键盘读入(2<m<10)&#xff0c;调用自定义函数Input实现矩阵元素从键盘输入&#xff0c;调用Sum函数实现求和。(只考虑float型&#xff0c;且不需考虑求和的结果可能超出float型能表示的范围)。 函数接口定义&#x…...

仿infobip模板功能-可通过占位符配置模板内容

模仿infobip制作的模板功能&#xff0c;正文可在任意位置加参数的功能。如下图所示&#xff1a;在正文中通过{{\d}}进行占位&#xff0c;在使用模板时&#xff0c;可在此位置自定制内容&#xff0c;并预览效果。 代码&#xff1a; <template><div class"templa…...

STM32第6章、WWDG

一、简介 WWDG&#xff1a;全称Window watchdog&#xff0c;即窗口看门狗&#xff0c;本质上是一个能产生系统复位信号和提前唤醒中断的计数器。 特性&#xff1a; 是一个递减计数器。 看门狗被激活后&#xff0c; 当递减计数器值从 0x40减到0x3F时会产生复位&#xff08;即T6位…...

没有正确使用HTTP Range Request,导致访问Azure Blob存储的视频没有实现流式播放

引文&#xff1a; 组里的小伙伴在修改视频播放相关的代码&#xff0c;修改之前的方案使用CDN转发&#xff0c;可以实现流式播放&#xff0c;修改之后的代码因为没有正确的使用Http Range Request, 导致画面访问Azure Blob存储的视频没有实现流式播放&#xff0c;整理下线索在这…...

React中Fiber树构建过程详解——react中render一个App组件(包含子组件)的流程详解

在 React 中&#xff0c;渲染一个包含子组件的组件涉及一系列底层流程&#xff0c;包括构建虚拟 DOM&#xff08;React Element&#xff09;、协调&#xff08;Reconciliation&#xff09;、Fiber 树管理和最终的 DOM 操作。以下是一个从底层解析的详细流程&#xff1a; 1. 初始…...

机器学习赋能的智能光子学器件系统研究与应用

在人工智能与光子学设计融合的背景下&#xff0c;科研的边界持续扩展&#xff0c;创新成果不断涌现。从理论模型的整合到光学现象的复杂模拟&#xff0c;从数据驱动的探索到光场的智能分析&#xff0c;机器学习正以前所未有的动力推动光子学领域的革新。据调查&#xff0c;目前…...

晨辉面试抽签和评分管理系统之七:面试成绩核算的三种方式

晨辉面试抽签和评分管理系统&#xff08;下载地址:www.chenhuisoft.cn&#xff09;是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…...

语音合成的预训练模型

语音合成的预训练模型 与 ASR(语音识别)和音频分类任务相比,语音合成的预训练模型检查点明显较少。在 Hugging Hub 上,可以找到近 300 个适合的检查点。 在这些预训练模型中,重点关注两种在 Huggingface Transformers 库中开箱即用的架构——SpeechT5 和 Massive Multili…...

Windows怎么搭建rust环境?

在Windows上搭建Rust开发环境相对简单&#xff0c;主要步骤如下&#xff1a; ### 1. 安装Rust 最简单的方法是使用官方提供的安装脚本。打开命令提示符&#xff08;Command Prompt&#xff09;或PowerShell&#xff0c;然后运行以下命令来下载并安装Rust&#xff1a; bash cu…...

【Flink】Flink内存管理

Flink内存整体结构图&#xff1a; JobManager内存管理 JVM 进程总内存(Total Process Memory)Flink总内存(Total Flink Memory)&#xff1a;JVM进程总内存减去JVM Metaspace(元空间)和JVM Overhead(运行时开销)上图解释&#xff1a; JVM进程总内存为2G;JVM运行时开销(JVM Overh…...

React方向:react中5种Dom的操作方式

1、通过原生JS获取Dom去操作 通过document.querySelector(#title)原生js的方式去拿到dom节点&#xff0c;然后去进行操作。 import {Component} from "react";class App extends Component {//定义获取Dom的函数handleGetDom(){let title document.querySelector(#t…...

K8s数据存储之详解(Detailed Explanation of K8s Data Storage)

K8s数据存储相关概念详解&#xff08;临时存储&#xff0c;节点存储&#xff0c;网络存储&#xff0c;PV/PVC&#xff09; 本篇文章分享一下存储卷和数据持久化的相关概念&#xff1a; 存储卷概述 临时存储卷&#xff08;Ephemeral Volumes&#xff09; 节点存储卷&#xff…...

PyTorch 中的 Dropout 解析

文章目录 一、Dropout 的核心作用数值示例&#xff1a;置零与缩放**训练阶段****推理阶段** 二、Dropout 的最佳使用位置与具体实例解析1. 放在全连接层后2. 卷积层后的使用考量3. BatchNorm 层与 Dropout 的关系4. Transformer 中的 Dropout 应用 三、如何确定 Dropout 的位置…...

计算机网络 (41)文件传送协议

前言 一、文件传送协议&#xff08;FTP&#xff09; 概述&#xff1a; FTP&#xff08;File Transfer Protocol&#xff09;是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问&#xff0c;允许客户指明文件的类型与格式&#xff08;如指明是否使用ASCII码&#xff0…...

AOSP 14及以上userdebug无法调试的问题

参考链接&#xff1a;原文...

【Vue】点击侧边导航栏,右侧main对应显示

需求&#xff1a;点击侧边导航栏&#xff0c;右侧main对应显示 通过v-if或v-show等指令来控制不同内容的显示隐藏来实现 注意&#xff1a; 使用v-if时候进行导航栏切换&#xff0c;右侧显示区域可能会出现样式错乱&#xff1b;使用v-show则不会出现此错误 <template>&…...