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

Android导入其它项目慢,Gradel下载失败,另辟蹊径:使用离线gradle加载,附镜像方式

最近在开发中需要测试以前写的小项目。结果忘了换本地的gradle,提示下载失败。换了现在用的gradle,项目能跑了。虽然网上有很多很多教程了,但对我的情况也不是都适用。所以自己记录一下。本人水平有限,有不对的地方请帮我指正,万分感谢。
如果您很着急,请直接看目录挑选重要部分看。

前言

离线导入的方式(没有使用本地gradle或不修改默认仓库位置的前提下)适合本地项目和修改别人的项目。不太推荐含有git并且要推给别人使用,这个推荐用镜像。至于为什么,因为别人和您的路径不同。当您看完本篇文章就知晓了。同时也希望您看完了再开始配置,根据需要选择合适的方式。当您看完以后应该知晓了下载慢或失败的原因,也可举一反三,在充分备份的情况下自行配置。

直接打开的效果

如果打开的项目与自己本地仓库里的gradle版本不一致,哪怕是个小版本号不同都会自动下载该项目的gradle。
打开的时候
以前是可以直接下载的,只是很慢。随着版本更新,就无法再连接到官方仓库下载了。这里显示连接超时了,有时候会显示下载失败。
超时

离线导入

要离线导入,我们要知道gradle在我们项目中的作用。它就是导入依赖的,和Maven类似吧,这是我的理解。那么是导入依赖的工具,必然会有一个存储依赖的本地仓库,不然的话每次下载到项目里,然后每开一个项目就下载一次?这种蠢事可能也只有我以前还觉得是合理的哈哈。

本地仓库

当你下载Androidstudio,配置好了以后,新建一个项目,就必然会有一个当时比较新的gradle下载到了你的本地仓库。而在安装的时候也没见到哪儿设置啊,也没说在哪啊。
这时候你打开你的资源管理器,打开C盘,找到你自己用的账户,进去点开.gradle文件,这就是默认的本地仓库了。
默认的仓库
到这里还是没有看到自己用的gradle在哪。那点击wrapper,里面有一个dists文件夹,再点进去就能看到了带gradle版本的gradle-x.xx-bin(也有可能这个是all)的文件夹。如果好奇,可以再点进去看看,这里不多写了。

没错,本地的仓库是在C盘,如果您不在意,可以不用改,甚至不用看完本篇文章。因为只需要将离线的gradle的压缩包放到dists下面就行了。

更换本地仓库位置(非必要)

本来我的存储空间就很紧张了,更何况是C盘空间呢,果断选择换仓库的位置。
首先在你觉得合理的位置下面新建一个文件夹(前提是整个路径不要有中文,磁盘名字不用担心,这个只看盘符的),其实名字不一定要写成.gradle一样,这是我的仓库新路径D:\Gradle\gradle-repository。然后将原来的仓库内容直接粘贴复制过去,切记不要删除了,否则新仓库配置失败,旧仓库也不能用了就得不偿失了。
接下来就是修改环境变量了。新加一个环境变量,名字为GRADLE_USER_HOME,值为新仓库的路径。有了这个环境变量Android studio才会用新的仓库。
修改环境变量
这时候我们可以重新打开Androidstudio,点击File->settings->Build,Exxxx,Dxxxx->Build Tools->Gradle
在这里插入图片描述
GradleUserHome位置应该就是现在新仓库的位置了。

使用离线gradle

到现在我们开始正式配置离线gradle内容了。
首先,我们要去下载项目需要使用的gradle。当然,其实完全可以使用已经有的gradle,但毕竟我要记录的是离线加载嘛,所以我将这个方法写在后面。
首先把视图放在project下,侧边栏有个Project,这一栏的最上边一般是显示的Android视图级别,但是在项目进行gradle下载完成或失败之前会一直显示加载,看不到任何内容。所以直接换到project级别下,打开gradle文件夹,下面有一个配置文件gradle-wrapper.properties。里面的内容就是gradle下载的一些信息。

distributionBase:指向仓库地址
distributionPath:相对于distributionBase的解压后的Gradle的路径
zipStoreBase:指向仓库地址,但是这里放的是压缩包文件
zipStorePath:同distributionPath,这也是放的是压缩包文件
distributionUrl:Gradle发行版压缩包的下载地址,如果用离线,改成我们的gradle地址

项目gradle位置

这就是项目用的gradle版本,我这个项目以前用的是7.0.2。如果我不改的话,把版本换成现在使用的版本,-bin,也有可能现在用的是-all(很少),如果不一致也要一起改。改完以后还要改gradlePlug版本,这个相当于是插件,和gradle是两个东西,前者是Google的,后者是gradle公司的。这里只是提一嘴。现在主要还是说离线的。

根据版本去找离线包,以前阿里云好像可以下载,现在不知道。这里给一个镜像网址:gradle镜像:https://mirrors.cloud.tencent.com/gradle/
里面有很多版本,我们主要找后缀 版本号-bin.zip的文件。这里我们可以看到7.0有很多版本和不同的命名。

这里浅浅的说一下吧:-rc是属于终版前的一个版本,不是最终版,但是如果-rc版本没有什么大问题,就会成为终版发布上线。软件的话一般还有一个-Bate版本,表示公测版本。-bin是这个已编译文件,能够直接运用在项目中,不需要我们再编译;-all不仅有-bin的所用东西,还有源码文档;-src是源码,不能够直接运行在项目中。当然这个是gradle的,不过大多公司对软件的命名也大差不差的。

镜像gradle
下载以后得到一个压缩包。至于放在哪,这个不用直接放在仓库,之前我的仓库还有一个父目录,Gradle的文件夹,放在它的下面。
然后我们回到Androidstudio,打开gradle-wrapper.properties配置文件,修改distributionUrl的值,让他不去网络上的仓库去下载 (这里其实我们已经知道了为什么导入其它项目真正慢是因为无法通过这个地址去下载到我们需要的gradle,那么是不是改为镜像下载地址是不是会好很多呢。答案是肯定的,这里主要是离线的方法,后面会介绍) ,而是通过我们指定的位置去下载解压。我的建议是不要直接去删除,而是屏蔽掉,防止出问题以后没有办法复原。下面是我的配置。

distributionBase=GRADLE_USER_HOME
distributionUrl=file:///D:/Gradle/gradle-7.0.2-bin.zip
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

在这里插入图片描述
在这里插入图片描述
检查无误后,点击同步。
在这里插入图片描述
接着它会去下载其它依赖。到这里基本上就成了。当然,可能会出现一个叫你的主机中的软件中止了一个已建立的连接。 错误,这个一般是端口被占用了,如果是笔记本看下是不是用电脑开了移动热点,关掉就好了,如果是其它程序占用(一般不是),关闭就好了,如果是adb占用,暂时退出就好了。
在这里插入图片描述

依赖镜像(非必要)

等待依赖下载完成,这个项目就能跑了。如果不想再折腾的就不用看下面的了。

不过有些依赖下载的挺慢的,甚至会失败。对于单个项目,我们可以单独配置一下。如果要全局配置,就需要项目用到自己的本地Gradle环境,这个在下面一节会说。

点开build.gradle。这个是整个项目的。还有一个是在app下面的。如果在Android视图级别下,两个会在同一列表,但是后面会有一个冒号,:app表示app下的,:项目名表示整个项目的。我们要更改的就是整个项目下面的。
在这里插入图片描述
添加镜像地址

mavenLocal()   //配置先从本地仓库寻找jar包,优先寻找上一个配置,找到不执行下面的配置
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
mavenCentral()

为什么多了一个allprojects呢,而且和上面的有相同的结构。buildscript 块只适用于该 Gradle 构建文件中,而 allprojects 块适用于所有项目和模块。可以根据需要添加

在这里插入图片描述
这里就配置好了依赖镜像,它会有限去找我们本地的jar包,没有再去镜像找,依次往下。当然jar包也是可以离线导入的,这个比较简单,这里就不介绍了。
附上一个阿里云镜像配置方式

既然依赖可以用镜像,阿里云,腾讯云还有其它镜像网站也有gradle的镜像,打开项目会去找

配置整个Gradle环境并应用在项目中(非必要)

解压我们之前下载的gradle离线包,但是压缩包不要删除!!这时候我们还需要去配置一下环境变量。新建一个名字GRADLE_HOME的变量,值为解压的目录。
在这里插入图片描述
然后点开path,如果条目多的话可以直接双击打开的。
在这里插入图片描述
点击新建,然后输入%GRADLE_HOME%\bin,点击确定,确定,确定。
在这里插入图片描述
这时候我们用命令窗口(WIN+R输入cmd),输入gradle -v。出现正确的版本,和信息表示本地gradle配置成功了。注意这是gradle在本地使用,可以通过命令使用了,而不是说在Androidstudio中能用了。
在这里插入图片描述
这时候我们打开Android studio。点击File->settings->Build,Exxxx,Dxxxx->Build Tools->Gradle->GradleProjects。修改UseGradlefrom,改为Specifiledlocation,让我们自己指定gradle,选择我们已经安装的gradle。然后点击apply或者ok应用。

第一个选项很容易理解,就是从配置文件中选择。

在这里插入图片描述
在这里插入图片描述
为了演示这里将所有配置还原了,然后删掉了本地仓库的gradle
在这里插入图片描述
可以看到没有经过配置文件去加载,而是直接运行了。
在这里插入图片描述

使用已有的gradle和镜像导入

镜像导入

这个比较简单所以放在前面,其主要通过修改distributionUrl来实现。

在前面下载离线gradle的时候用了一个镜像地址,这是腾讯的,将地址改为https://mirrors.cloud.tencent.com/gradle/gradle-x.x.x-x.zip。
常用的是阿里云的镜像:https://mirrors.aliyun.com/gradle/gradle-x.x.x-x.zip

当然无论是阿里云的镜像地址,还是腾讯的,都要保证镜像仓库下有你要的文件(一般都有)。

使用已有的gradle

当我们不想要去下载新的gradle,并且在不影响项目的情况下,我们可以直接用已经有的版本。

首先我们还是要更改distributionUrl的内容,但这次不用修改前面了,网络地址了,而是修改gradle版本号。比如我现有的gradle是8.0-bin,而这个项目用的是7.0.2-bin,那么我直接修改版本号就行了。因为这个版本我们是有的,所以他不会进行下载的。
在这里插入图片描述
到这里看起来好像一切ok。但我们点击File->Project Structure->Project。可以看到,下面GradleVersion是gradle版本,而上面那个gradlePluginVersion则是插件的版本。他们是有对应关系的。当你更换了gradle版本以后,也应该更改插件的版本。
在这里插入图片描述
以我为例,我现在更换了8.0,那么插件版本该是多少呢,这个就要查询官方给的资料了。Android Gradle 插件版本说明 网址:https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn#updating-gradle
在这里插入图片描述
可以看到我需要更新到至少8.0的插件版本。官方的资料里面还有一个关于Androistudio版本的限制。这个我并未验证,使用无法进行说明。
在这里插入图片描述
当一切完成以后,这个项目按道理说也能跑了。因为Android版本及其对应API级别不同而带来的错误这里就不说了,这个解决很简单的,网上资料也多。

结尾

我也十分犹豫的写下这篇笔记。一来是网上已经有很多大神出了教程,我真的有必要再写一篇吗。二来是自己不过半只脚踏入门的半吊子,真的有资格去写这些吗,说不定还会误导他人。于是在写下第一篇笔记后,就不敢再怎么写了。但是近期问题太多了,有时候一回想,这不就是之前遇到过的吗,虽然记得,但是完全忘了怎么操作(经验不够),还要重新开始搜索资料。效率是比刚开始遇到的时候快,但加在一起还是浪费了很多时间。为了防止踩过的坑再踩一次,我还是鼓起勇气写下了这篇笔记并分享给大家。如果这篇笔记对你有帮助,那就太好了,最后感谢您的观看。

相关文章:

Android导入其它项目慢,Gradel下载失败,另辟蹊径:使用离线gradle加载,附镜像方式

最近在开发中需要测试以前写的小项目。结果忘了换本地的gradle,提示下载失败。换了现在用的gradle,项目能跑了。虽然网上有很多很多教程了,但对我的情况也不是都适用。所以自己记录一下。本人水平有限,有不对的地方请帮我指正&…...

神经语言程式(NLP)项目的15 个开源训练数据集

一个聊天机器人需要大量的训练数据,以便在无需人工干预的情况下快速解决用户的询问。然而,聊天机器人开发的主要瓶颈是获取现实的、面向任务的对话数据来训练这些基于机器学习的系统。 我们整理了训练聊天机器人所需的对话数据集,包括问答数据、客户支持数据、对话数据和多…...

H5 红色文字抖动网址发布页/引导页源码

H5 红色文字抖动网址发布页/引导页源码 源码介绍:一款红色文字抖动网页源码,可用于引导页或网址发布页。 下载地址: https://www.changyouzuhao.cn/10470.html...

MacOS - 菜单栏上显示『音量』

教程步骤 点击打开系统偏好『设置』,并找到『控制中心』 在『控制中心模块』找到『声音』,选择『始终在菜单栏显示』...

深入理解常见的设计模式

目录 引言 1. 单例模式(Singleton Pattern) 应用场景: 示例代码: . 工厂模式(Factory Pattern) 应用场景: 示例代码: 3. 观察者模式(Observer Pattern&#xff09…...

服务器解析漏洞及任意文件下载

1.服务器文件解析漏洞 文件解析漏洞,是指Web容器(Apache、nginx、iis等)在解析文件时出现了漏洞,以其他格式执行出脚本格式的效果。从而,黑客可以利用该漏洞实现非法文件的解析。 (1) Apache linux系统中的apache的php配置文件在/etc/apac…...

ES6扩展运算符——三个点(...)用法详解

目录 1 含义 2 替代数组的 apply 方法 3 扩展运算符的应用 ( 1 )合并数组 ( 2 )与解构赋值结合 ( 3 )函数的返回值 ( 4 )字符串 ( 5 )实现了 Iter…...

限制资源使用

限制资源使用 您需要显示对服务器资源的访问来保护Web应用程序和应用程序数据不受未授权用户的访问。在Java EE Web应用程序中,您可以通过在应用服务器中创建用户和用户组来保护资源免受未经授权的访问。您可以为应用程序定义角色并在部署过程中将角色分配给用户。 1. 创建授权…...

结合Next项目实际认识webpack.splitChunks

本文的目的在于简单的介绍webpack的优化功能配置:splitChunks。 webpack5出于“开箱即用”的目的,将大部分曾经要使用插件的功能集成到了config配置中,因此用户只需要了解如何配置,即可达到优化目的,其中最常使用接触的…...

【Tauri】(2):使用Tauri应用开发,使用开源的Chatgpt-web应用做前端,使用rust 的candle做后端,本地运行小模型桌面应用

视频演示地址 https://www.bilibili.com/video/BV17j421X7Zc/ 【Tauri】(2):使用Tauri应用开发,使用开源的Chatgpt-web应用做前端,使用rust 的candle做后端,本地运行小模型桌面应用 1,做一个免…...

C#where T :通用的泛型约束(generic constraint)语法

在C#中,where T :是一种通用的泛型约束(generic constraint)语法,用于限制泛型类型参数T的特定条件。通过使用泛型约束,我们可以对泛型类型参数进行更具体的限制,以确保在使用泛型时满足特定的要求。 wher…...

vue使用Mars3d弹框嵌套video视频/实时视频(m3u8)使用hls.js

下载hls.js http://mars3d.cn/lib/video/hls/hls.js下载 1.首先绘制地图我使用的天地图 async infoMars3d() {const that this;var mapOptions {scene: {center: {lat: 30.435192,lng: 103.936535,alt: 200000,heading: 359,pitch: -79},highDynamicRange: false},// 方式1&a…...

Python爬虫之Ajax数据爬取基本原理

前言 有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档,而浏览器中…...

osg操控器和键盘切换操控器学习

osg提供了很多操控器,在src\osgGA目录下,cpp文件名含有Manipulator的都是操控器,每个这样的cpp表示一种类型的操控器。 名字带 Manipulator 的类都是操控器; 其中KeySwitchMatrixManipulator.cpp文件实现了键盘切换操控器; 操控器是指:操控相机运动,从而实现场景视图…...

LeetCode1143. Longest Common Subsequence——动态规划

文章目录 一、题目二、题解 一、题目 Given two strings text1 and text2, return the length of their longest common subsequence. If there is no common subsequence, return 0. A subsequence of a string is a new string generated from the original string with so…...

利用Windows10漏洞破解密码(保姆级教学)

前言: 本篇博客只是技术分享并非非法传播知识,实验内容均是在虚拟机中进行,并非真实环境 正文: 一.windows10电脑密码破解 1)开启windows10虚拟机,停留在这个页面 2)按5次Shift键,出现这个粘滞键,如果没有出现的,则说明漏洞已经修复 3)重新启动,在这个页面的时候…...

apk反编译修改教程系列---简单修改apk默认横竖屏显示 手机端与电脑端同步演示【十一】

往期教程: apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…...

2301: 不定方程解的个数

题目描述 输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程axbyc0,其中x、y为未知量且不超过10000,当给定a、…...

vue3学习——封装菜单栏

/Layout/Sidebar/index.vue <script setup lang"ts"> import Sidebar from ./Sidebar.vue // 在下面的代码里 import { useRoute } from vue-router import useUserStore from /store/modules/user.ts // state中存放菜单数据 import useLayoutSetting from /…...

深度学习的进展及其在各领域的应用

深度学习&#xff0c;作为人工智能的核心分支&#xff0c;近年来在全球范围内引起了广泛的关注和研究。它通过模拟人脑的学习机制&#xff0c;构建复杂的神经网络结构&#xff0c;从大量数据中学习并提取有用的特征表示&#xff0c;进而解决各种复杂的模式识别问题。 一、深度…...

blender怎么保存窗口布局,怎么设置默认输出文件夹

进行窗口布局大家都会&#xff0c;按照自己喜好来就行了&#xff0c;设置输出文件夹如图 这些其实都简单。关键问题在于&#xff0c;自己调好了窗口布局&#xff0c;或者设置好了输出文件夹之后&#xff0c;怎么能让blender下次启动的时候呈现出自己设置好的窗口布局&#xff…...

【开源】基于JAVA+Vue+SpringBoot的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…...

【ES】--Elasticsearch的分词器详解

目录 一、前言二、分词器原理1、常用分词器2、ik分词器模式3、指定索引的某个字段进行分词测试3.1、采用ts_match_analyzer进行分词3.2、采用standard_analyzer进行分词三、如何调整分词器1、已存在的索引调整分词器2、特别的词语不能被拆开一、前言 最近项目需求,针对客户提…...

【算法】{画决策树 + dfs + 递归 + 回溯 + 剪枝} 解决排列、子集问题(C++)

文章目录 1. 前言2. 算法例题 理解思路、代码46.全排列78.子集 3. 算法题练习1863.找出所有子集的异或总和再求和47.全排列II17.电话号码的字母组合 1. 前言 dfs问题 我们已经学过&#xff0c;对于排列、子集类的问题&#xff0c;一般可以想到暴力枚举&#xff0c;但此类问题用…...

sqlserver 存储过程

在 SQL Server 中&#xff0c;存储过程&#xff08;Stored Procedure&#xff09;是一种预编译的 SQL 代码块&#xff0c;可以接受参数&#xff0c;执行一系列 SQL 语句&#xff0c;并返回一个或多个结果集。存储过程可以看作是一种封装了 SQL 语句的函数&#xff0c;可以在需要…...

C语言什么是悬空指针?

一、问题 什么是悬空指针&#xff1f;为什么会出现&#xff1f;我们该如何避免悬空指针的出现&#xff1f; 二、解答 在C语言中&#xff0c;悬空指针指的是指向已删除&#xff08;或释放&#xff09;的内存位置的指针。如果一个指针指向的内存被释放&#xff0c;但指针本身并未…...

AES加密后的密码可以破解吗

AES&#xff08;高级加密标准&#xff09;是一种广泛使用的对称加密算法&#xff0c;设计用来抵御各种已知的攻击方法。AES使用固定块大小的加密块和密钥长度&#xff0c;通常是128、192或256位。它被认为是非常安全的&#xff0c;到目前为止&#xff0c;没有已知的可行方法能够…...

vue3学习——路由进度条

安装 pnpm i nprogress创建permission.ts import router from /router/index.ts import NProgress from nprogress import nprogress/nprogress.css // 不加样式不显示 NProgress.configure({ showSpinner: false }) router.beforeEach((to, from, next) > {console.log(t…...

VMware虚拟机安装Windows系统教程

前言 今天给小伙伴分享一个安装Windows系统的教程&#xff0c;本教程适用于WindowsXP/7/8/8.1/10。 安装的系统前需要先检查一下你的电脑硬件环境&#xff0c;每个系统的硬件要求都不一样哦&#xff5e; 硬件要求指的是你的电脑主机的配置&#xff0c;如果低于这个配置的&am…...

vue3学习——router-view 过渡动画

虽然vue3说建vue页面不用包裹一个根节点&#xff0c;但是transition不能没有唯一的标签 所以还是得包一层~ o(&#xffe3;▽&#xffe3;)o <el-main><router-view v-slot"{ Component, route }"><transition name"MainFade" mode"o…...

从HSE攻击事件漫谈针对勒索攻击防御的两大误区

前言 HSE遭到严重的勒索软件攻击&#xff0c;爱尔兰的医疗服务系统是该国的公共资助医疗系统&#xff0c;在受到勒索病毒攻击之后&#xff0c;被迫在上周五关闭其 IT 系统&#xff0c;以此作为预防措施&#xff0c;避免威胁扩散。该事件导致该国家多家医院的服务取消和中断&am…...

设计模式(结构型模式)外观模式

目录 一、简介二、外观模式2.1、子系统2.2、外观类2.3、使用 三、优点与缺点 一、简介 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;提供了一个统一的接口&#xff0c;用于访问子系统中的一组接口。这个模式隐藏了子系统的复杂性&#xff…...

C语言函数的栈帧与销毁(面试亮点)

目录 如果你能熟练的掌握函数的栈帧与销毁在面试中是及其亮眼的加分项&#xff0c;所以我们来以实例来将解函数是如何实现栈帧与销毁的。 一. 函数栈帧 二.寄存器 三. 用例题讲解创建栈帧的过程 3.1 main 函数的反汇编代码。 第一步&#xff1a;给调用main函数的函数分配…...

使用 GreenSock(GSAP)实现 字符串动画

要使用 GreenSock&#xff08;GSAP&#xff09;实现 "JianMa XinXi" 这个字符串的动画&#xff0c;其中两个 x 字符自动旋转&#xff0c;j 和 m 字符上下跳动&#xff0c;并且美化这个字符串使其可以作为 logo 使用&#xff0c;我们可以通过以下步骤来实现&#xff1…...

linux系统zabbix监控服务端部署

zabbix服务端部署 zabbix服务端部署安装mysql创建初始数据库为Zabbix server配置数据库为Zabbix前端配置PHP启动Zabbix server和agent进程浏览器访问ipConfigure DB connection页面Zabbix server details页面登录账户名密码 zabbix 官网www.zabbix.com服务端部署 rpm -Uvh ht…...

算法----回溯(附录---剪枝)

回溯相信大家都已经了解了所以这章我将见但介绍下回溯剪枝 为什要剪枝 在《算法----回溯&#xff08;正文&#xff09;》中我提到过回溯就是暴力&#xff0c;为什么那些题能过&#xff0c;因为数据范围小 那如果数据范围大了&#xff0c;就不行了&#xff0c;这时剪枝的作用就…...

从Unity到Three.js(模型文件加载)

模型加载功能探索&#xff0c;用blender导出了个glb格式的cube进行的测试。 初接触js语法&#xff0c;回调注册的地方直接使用匿名函数总感觉脑子跟不上&#xff0c;反应不过来&#xff0c;就把加载后的回调简单封装了下&#xff0c; 官方文档是直接使用的匿名函数。 另外看官方…...

Webshell一句话木马

一、webshell介绍&#xff08;网页木马&#xff09; 分类&#xff1a; 大马&#xff1a;体积大、隐蔽性差、功能多 小马&#xff1a;体积小&#xff0c;隐蔽强&#xff0c;功能少 一句话木马&#xff1a;代码简短&#xff0c;灵活多样 二、一句话木马&#xff1a; &#xff1a;…...

【Web】Spring rce CVE-2022-22965漏洞复现学习笔记

目录 原理概览 漏洞简述 Tomcat AccessLogValve 和 access_log 例题: 原理概览 spring框架在传参的时候会与对应实体类自动参数绑定&#xff0c;通过“.”还可以访问对应实体类的引用类型变量。使用getClass方法&#xff0c;通过反射机制最终获取tomcat的日志配置成员属性…...

springboot/ssm大学生选修选课系统高校选课排课成绩管理系统Java系统

springboot/ssm大学生选修选课系统高校选课排课成绩管理系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;my…...

【芯片设计- RTL 数字逻辑设计入门 14 -- 使用子模块实现三输入数的大小比较】

文章目录 三输入数的大小比较问题分析verilog codeTestBench Code综合图仿真波形图 三输入数的大小比较 在数字芯片设计中&#xff0c;通常把完成特定功能且相对独立的代码编写成子模块&#xff0c;在需要的时候再在主模块中例化使用&#xff0c;以提高代码的可复用性和设计的层…...

Xilinx FPGA——在线升级

同以前单片机在线升级的做法一样&#xff0c;本质就是通信Flash操作跳转。 一、通信驱动 我使用的是UDP有线传输&#xff0c; 二、Flash芯片驱动 规划Flash芯片的区域&#xff0c;一般bootloader放在起始位置&#xff0c;APP放在bootloader之后的空白区域。 2.1 Flash擦除 我…...

电商小程序02数据源设计

上一篇我们讲解了电商小程序的需求分析&#xff0c;分析了需要具备的功能并且绘制了系统原型。有了原型之后下一步的事情就是根据原型来设计数据源。 数据源就像盖房子打地基一样&#xff0c;地基打不好&#xff0c;楼可能就盖不高&#xff0c;盖起来要再想调整就比较困难。 …...

Leetcode 3033. Modify the Matrix

Leetcode 3033. Modify the Matrix 1. 解题思路2. 代码实现 题目链接&#xff1a;3033. Modify the Matrix 1. 解题思路 这一题是一道easy的题目&#xff0c;整体思路上没啥难度&#xff0c;就是按照题目翻译一下即可&#xff0c;先遍历一下找到每一列的最大元素&#xff0c…...

蓝桥杯刷题--python-4

0成绩分析 - 蓝桥云课 (lanqiao.cn) import os import sys # 请在此输入您的代码 n=int(input()) max_=float(-inf) min_=float(inf) res=0 for _ in range(n): score=int(input()) # 最高分 max_=max(max_,score) # 最低分 min_=min(min_,score) # 总分 res+=sc…...

openJudge | 距离排序

总时间限制: 1000ms 内存限制: 65536kB 描述 给出三维空间中的n个点&#xff08;不超过10个&#xff09;,求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。 输入 输入包括两行&#xff0c;第一行包含一个整数n表示点的个数&#xff0c;第二…...

【算法】排序详解(快速排序,堆排序,归并排序,插入排序,希尔排序,选择排序,冒泡排序)

目录 排序的概念&#xff1a; 排序算法的实现&#xff1a; 插入排序&#xff1a; 希尔排序&#xff1a; 选择排序&#xff1a; 堆排序&#xff1a; 冒泡排序&#xff1a; 快速排序&#xff1a; 快速排序的基本框架&#xff1a; 1.Hoare法 2. 挖坑法 3.前后指针法 快…...

LeetCode Python -8.字符串转整数

文章目录 题目答案运行结果 题目 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 读入字符串并丢弃无用的前导空格检查下一个…...

【java】笔记10:类与对象——本章练习

题目1&#xff1a; 代码如下&#xff1a; import java.util.Scanner; public class Input{public static void main(String[]args){Circle cnew Circle();PassObject yuannew PassObject();System.out.println("r""\t""times");yuan.printAreas…...

《UE5_C++多人TPS完整教程》学习笔记8 ——《P9 访问 Steam(Acessing Steam)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P9 访问 Steam&#xff08;Acessing Steam&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&#xff08;也是译者&…...