自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 分享几个可以免费使用GPT工具

4.一个个人开发的AI小站,目前GPT3.5可以免费使用,连登录功能都没有(代表你的历史问题不会被记录啦),回答字体格式看着别扭,简单体验体验还可以。1. 国产可以使用GPT3.5和4.0的网站,每日有免费的使用额度,响应速度,注册时不用使用手机号,等个人信息,注重用户隐私,好评!3.新用户可以问200次,用完可以拉人继续用,套餐不推荐买,较贵,个人用了一段时间,响应速度有点慢。2. 国内百度的文言一心,感兴趣的可以看看,相比GPT还是有距离的。夏沫的AI小站 (qqslyx.com)

2023-12-01 22:19:48 5399

原创 把握人工智能的浪潮:普通人如何利用AI走向成功?

在数字化的今天,人工智能(AI)技术已成为创新的前沿。普通人如何利用这股趋势,实现个人发展和职业跳跃?下面我为大家推荐几个AI相关的平台,每个平台都有其独特的优势,尤其是前两个,不容错过。支持最近火爆的 suno-v3 AI音乐生成大模型!!支持最新OpenAI GPT4模型:gpt-4-turbo-2024-04-09支持GPTs插件功能。

2024-04-15 10:56:04 587

原创 Android 生成Excel文件保存到本地

本文用来记录在安卓中生成Excel文件并保存到本地操作,在网上找了好久,终于找到一个可以用的,虽然代码已经很老的,但亲测可用!格式有问题,直接用的话会导致文件生成不成功,记得修改一下!可以下载下来修改直接用,该项目主要是依赖一个叫。代码很简单没什么解释的,关键点就是创建。需要注意下原项目传的。

2024-03-22 17:37:54 415

原创 一文搞懂Java线程池

必须了解...:指定线程池中保持存活的基本线程数。即使这些线程处于空闲状态,它们也不会被回收。当有任务提交时,核心线程数会按需自动创建。如果设置了allowCoreThreadTimeOut(允许核心线程超时),那么核心线程会超时并且在超时后被终止。maximumPoolSize(最大线程数):表示线程池中允许存在的最大线程数。在核心线程数已满并且任务队列已满时,线程池会根据需要创建新的线程,直到达到最大线程数。keepAliveTime(线程空闲时间)

2024-03-22 09:33:41 708

原创 Flutter中实现中国省份地图

可以点击省份改变颜色,更多功能可以自行拓展。本文用于记录在Flutter项目中安卓端实现中国地图,因为实现过程是通过Flutter调用安卓原生代码实现,所以IOS端不可用,通过本文你还可以学会如何通过Platform Channels在Flutter代码中调用这些原生代码。

2024-01-24 20:42:53 1274

原创 在Flutter中使用Install_Plugin安装APK

在开发Flutter应用时,有时候我们需要实现在应用内部安装APK的功能。众所周知,Android 7.0以后由于改变了文件URI的访问方式,我们需要使用FileProvider来创建一个content://URI来授予临时访问权限。Flutter不同与原生,在Flutter中要么自己手写插件调用原生代码进行安装APK,要么找个第三方库来实现该功能,本人能力有限就简单介绍并使用本文的主角来实现该功能吧。

2024-01-19 18:37:36 1130

原创 Flutter中使用minio_new库

在移动开发中,我们常常会遇到需要在App中处理文件上传和下载的需求。Minio是一个开源的对象存储服务,它兼容Amazon S3云存储服务接口,可以用于存储大规模非结构化的数据。

2024-01-18 19:42:36 1430 2

原创 Flutter组件GridView使用介绍

GridView 是 Flutter 中用于创建网格布局的滚动小部件。它可以创建多列布局,并且每个网格单元可以包含一个小部件。GridView:最通用的构造函数,完全自定义网格布局。:按需构建网格项,适用于具有大量(或无限)网格项的动态内容。:指定网格中的列数,适用于具有固定数量列的网格。:指定网格中最大交叉轴范围(例如,最大列宽),适用于需要控制列宽的网格。:这个构造函数提供了最高级别的自定义能力,允许使用自定义的SliverGridDelegate和SliverChildDelegate。

2024-01-10 18:53:00 1374

原创 Flutter获取网络图片的宽高

【代码】Flutter获取网络图片的宽高。

2024-01-09 17:09:01 606 1

原创 Flutter应用中安卓和IOS的一些权限配置

在Flutter应用中,无论是安卓(Android)还是iOS设备,都可能需要向用户请求权限以访问特定的设备功能或用户数据。

2024-01-05 18:42:03 666

原创 关于Flutter中Image的BoxFit属性介绍

Image中不加fit属性时图片状态:蓝色框为图片所在容器1.fill完全填充容器。图片或图形的宽度和高度都会被拉伸以完全填充容器,可能会导致结果看起来变形,因为图形的原始宽高比可能不被保持。2.contain保持原始尺寸比例,确保图形完整地显示在容器内。应用这个选项后,图形会缩放以适应容器,同时保持其原始的宽高比,意味着可能会留下未被填充的空间。3.cover保持图形的原始宽高比,缩放图形直到它完全覆盖容器。如果图形的宽高比与容器的不同,则图形的某些部分可能会超出容器边界而被裁剪。4.

2024-01-05 10:10:00 727

原创 数据结构之<散列表>的介绍

散列表也叫做哈希表,是根据键值对进行存储的一种数据结构。散列表利用哈希函数将给定的键映射到一个特定的位置(通常是数组索引),这个位置通常被称为哈希值或哈希地址。这里可以举个微信好友列表的例子说明,存放好友首字母的表对应的就是散列表。

2023-12-28 22:45:37 854

原创 数据结构之<堆>的介绍

堆是一种特殊的数据结构,通常用于实现优先队列。堆是一个可以被看作近似完全二叉树的结构,并且具有一些特殊的性质,根据这些性质,堆被分为最大堆(或者大根堆,大顶堆)和最小堆两种。

2023-12-24 20:13:34 739

原创 数据结构之<图>的介绍

在数据结构中,图是由节点(顶点)和边组成的非线性数据结构。图用于表示不同对象之间的关系,其中节点表示对象,边表示对象之间的连接或关系。

2023-12-17 22:16:20 1438

原创 数据结构之<树>的介绍

树的基本概念包括根节点、子节点、父节点、兄弟节点等。二叉搜索树是一种有序的二叉树,对于每个节点,其左子树的值都小于该节点的值,右子树的值都大于该节点的值。AVL树是一种高度平衡的二叉搜索树,它的每个节点都有一个平衡因子(Balance Factor),表示其左子树高度和右子树高度之差。自平衡二叉搜索树是一种特殊的二叉搜索树,它在插入或删除节点时会自动调整树的结构,以保持树的平衡性。节点的高度是从该节点到其最远叶子节点的路径长度,叶子节点的高度为0。节点的深度是从根节点到该节点的路径长度,根节点的深度为0。

2023-12-17 21:40:56 973

原创 是否还在为找不到合适的GPT网站而烦恼?不用担心,这里有一些值得一看的汇总!

⭐功能:包含ChartGPT3.5,ChartGPT4.0功能,以及DALL-E3绘画和AI绘画,PDF文件分析,AI联网,AI识图(上传一张图片,能分析出图片上所有细节,体验过真的很强大)。⭐功能:包含ChartGPT3.5,ChartGPT4.0功能,PDF文件分析,语音聊天,图片识别,DALL-E3绘画和AI绘画,PDF文件分析,AI联网等功能。⭐评价:一个小姐姐的个人公益网站,可以免费使用GPT3.5和4.0,因为是公益的而且没有登录功能,可能会随时欠费而导致功能无法使用,而且没有历史记录的。

2023-12-14 21:57:06 1319 1

原创 在Flutter中使用PhotoViewGallery指南

Flutter中的PhotoViewGallery是一个功能强大的插件,用于在应用中展示可缩放的图片。无论是构建图像浏览器、相册应用,还是需要在应用中查看大图的场景,PhotoViewGallery都是一个不错的选择。在PhotoViewGallery中,可以设置许多属性来自定义其行为和外观。itemCount: 数据源的长度,即图片数量。builder: 构建每一页的回调函数,返回一个PhotoViewGalleryPageOptions对象。: 滑动的物理效果。

2023-12-14 14:09:57 1290

原创 关于Android studio新版本和NEW UI显示返回按钮的设置

就是顶部的工具栏,此时该目录下默认为空 不能展开。因为我设置过了所以这个地方就不显示了。

2023-12-12 14:15:37 2092

原创 维护真实时间:应对系统时间篡改的技巧

既然断网了,方案一就一点用没了,此时有两种方法获取时间,一种是调用系统api,一种是获取本地维护的时间,我们知道系统时间是可以修改的,所以你获取系统时间的话,得到的不一定是正确的时间,那么只能从本地我们自己维护的时间去拿,那么问题来了本地时间要怎么去维护呢?手机系统时间 ≠ 真实时间,当我们做一些需要对时间精度和准确性要求较高的软件时,如果只通过调用系统API,获取到的时间不一定是真实的,那么就需要我们单独去维护一个真实的时间,下面主要分析了连网情况下和断网情况下两种时间维护方案。)再恢复相关功能使用。

2023-12-09 13:50:00 519

原创 详解十大经典排序算法(六):快速排序(QuickSort)

它的核心思想是选择一个基准元素,将数组分成两个子数组,小于基准的在左边,大于基准的在右边,然后对子数组进行递归排序。: 将数组中的其他元素按照与基准的大小关系划分到基准的两侧,使得基准左边的元素都小于基准,右边的元素都大于基准。即,对左侧的子数组和右侧的子数组分别进行步骤1和步骤2,直到每个子数组只有一个元素,此时整个数组就是有序的。选择基准的方法有多种,常见的包括选择第一个元素、最后一个元素、中间元素,或者随机选择一个元素。. 最后,将基准元素与索引i指向的元素交换,这样基准元素就放置在了其最终的位置。

2023-12-09 13:11:55 905

原创 详解十大经典排序算法(五):归并排序(Merge Sort)

在归并排序的合并阶段,将左右两个有序数组合并为一个有序数组时,可以通过判断左边数组的最大值和右边数组的最小值来优化合并操作,避免不必要的比较。这个优化点可以通过添加一个条件来判断是否需要合并,如果左边数组的最大值小于等于右边数组的最小值,则无需合并,因为两个数组已经是有序的,不需要进行额外的比较和移动。归并排序的核心思想是将一个大的数组分割成多个小的子数组,然后分别对这些子数组进行排序,最后将排序后的子数组合并起来,得到一个有序的大数组。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。

2023-12-05 22:50:45 671

原创 详解十大经典排序算法(四):希尔排序(Shell Sort)

希尔排序的核心思想是将原始数据分成多个子序列,先对每个子序列进行插入排序,然后逐步减少子序列的数量,最终对整个数据序列进行插入排序。优化希尔排序通常涉及使用更有效的间隔序列,而不是初始版本中的简单递减序列(如数组长度的一半递减至1)。这个算法的关键特点是其间隔序列的选择,即每次排序时元素之间的间隔。开始时,间隔较大,随着算法的进行,间隔逐渐减小,最后间隔为1,即普通的插入排序。它通过将待排序的序列分割成若干个子序列,对每个子序列进行插入排序,然后逐步缩小增量,最终使整个序列有序。

2023-12-04 11:42:55 422

原创 详解十大经典排序算法(三):插入排序(Insertion Sort)

插入排序是一种简单直观的排序算法,它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置,从而得到一个新的、长度加一的有序序列。插入排序的过程类似于整理扑克牌的过程。每次从无序部分选择一个元素,将其插入到有序部分的正确位置,重复这个过程直至整个数组有序。:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。:对排序数据的总的操作次数。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。

2023-12-01 23:48:06 358

原创 详解十大经典排序算法(二):选择排序(Selection Sort)

这样可以减少不必要的交换操作,提高排序的效率。同时,由于每一趟遍历中的交换操作次数减少,也减少了数据的移动次数,进一步提高了排序的效率。选择排序的基本思想是通过不断选择剩余元素中的最小(或最大)元素,将其放置到已排序序列的末尾,从而逐步构建有序序列。选择排序是一种简单的排序算法,它每次从待排序的元素中选择最小(或最大)的元素,将其放到已排序序列的末尾,直到整个序列排序完成。:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。

2023-12-01 15:15:17 576

原创 详解十大经典排序算法(一):冒泡排序(Bubble Sort)

冒泡排序是一种简单的排序算法,它重复地遍历待排序的元素,比较相邻的两个元素,并根据需要交换它们的位置,直到整个序列排序完成。冒泡排序的基本思想是通过相邻元素的比较和交换,将较大的元素逐渐“冒泡”到右侧,从而实现排序。冒泡排序通过多次遍历数组,比较相邻元素并交换,逐步将最大值(或最小值)"冒泡"到数组的一端。:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。

2023-12-01 15:14:52 434

原创 Flutter之MQTT使用

首先,需要在Flutter项目的​​pubspec.yaml​​​文件中添加​​mqtt_client​​依赖。其中host 是主机名,port是端口号,cid是客户端ID,你可以根据需要为其分配一个唯一的标识。一旦连接到MQTT服务器,你可以订阅感兴趣的主题以接收消息。使用MQTT客户端来发布消息到特定的主题。​​​来构建消息的有效载荷,然后使用​​。//用于监听已订阅主题的消息到达。方法来发布消息到指定的主题。方法订阅一个主题,并使用。在上面的代码中,使用​​。流来监听接收到的消息。

2023-11-29 20:01:47 1043

原创 Flutter 控件查阅清单

为了方便记录和使用Flutter中的各种控件,特写此博客以记之,好记性不如烂笔头嘛:)通过控件的首字母进行查找,本文会持续更新。

2023-11-29 11:07:05 1269

原创 分享几个可以免费使用GPT的网站

各有优缺点,大家看个人情况使用,个人推荐第一个。

2023-11-27 17:31:01 21452 4

原创 Flutter Android & IOS 获取通讯录联系人列表

权限请求,会始终返回被拒绝,正确的做法是直接进行第四步获取通讯录列表,这样在代码执行的时候,会自动请求相关权限,在代码中可以使用Platform.isAndroid 判断当前所运行的系统,执行具体代码。2.在你的 Dart 代码中,导入。在ios系统上如果进行。

2023-10-25 10:54:14 1335

原创 Flutter学习笔记

混入Mixin的类:with 后面可以跟一个或多个 mixin 类,用逗号分隔。这意味着你可以从多个 mixin 类中继承特性,将它们组合到一个类中,从而实现多重继承的效果。Mixin的顺序:Mixin 的顺序很重要,因为如果多个 mixin 类中具有相同名称的属性或方法,类中将使用最后一个 mixin 中定义的属性或方法。这个规则确保了 mixin 类的顺序对类的行为产生影响。Mixin的特性:通过使用 with 关键字,类将继承 mixin 类的属性、方法和功能,这些特性会被添加到类中。

2023-10-08 18:41:23 860

原创 Component ‘MSCOMM32.0CX‘ or one of its dependencies not correctly registered: a file is missing or i

下载完把文件放入 C:\Windows\SysWOW64\ 目录下。

2023-09-26 14:58:28 525

原创 Kotlin 协程与 Flow

简介Kotlin的Flow是Kotlin在异步编程方面的一个重要组件,它提供了一种声明式的、可组合的、基于协程的异步编程模型。Flow 的设计灵感来自于RxJavaFlux和其他异步编程库,但它与Kotlin协程无缝集成,并提供了一种更具Kotlin特性的 API。Flow是用于异步数据流的概念,它可以看作是一系列异步的、可并发的值或事件的流。可以通过操作符链更改、过滤、转换这些流,并且可以对这些流进行组合、合并、扁平化等操作。

2023-08-02 16:27:28 830 1

原创 Kotlin 协程与 Channel(通道)

简介Kotlin 中的 Channel(通道)是一种协程间通信的机制,用于在协程之间传递数据。它提供了一种有序、线程安全的方式,让生产者和消费者之间进行异步数据传输。Channel 这个管道的其中一端,是发送方;管道的另一端是接收方。而管道本身,则可以用来传输数据。send()receive()close()itelement在上述示例中,创建了一个对象用于传递整数数据。通过launch函数创建了两个协程,一个用于发送数据,另一个用于接收数据。在发送者协程中,使用send()

2023-07-20 22:03:57 1214 1

原创 cannot access an invalid/free’d bitmap here!

我出现这个问题的原因是bitmap 显示在dialog 上面,而在这个Dialog还未消失时,就调用 bitmap.recycle() 回收bitmap 造成的。解决办法就是在Dialog 设置 setOnDismissListener 监听,消失的时候调用。之前看到这种崩溃日志的时候,我都要崩溃了,还好里面有关键信息,可以帮助排查。所以 所以,一定确保bitmap不再使用,再去回收它。

2023-07-19 19:10:34 352

原创 Android 选择联系人并返回手机号等信息(适配安卓11+)

【代码】Android 选择联系人并返回手机号等信息(适配安卓11+)

2023-06-13 16:04:01 1882

原创 Kotlin 协程基础入门:协程的上下文 Context (万物皆为Context)

可以通过调用 coroutineContext 扩展函数,获取当前协程的 CoroutineContext。由此可见,Dispatcher 实际上就是 CoroutineContext。也就可以理解上面用法了,归根到底他们都是同类型的,至于号是kotlin 中的运算符重载operator。

2023-06-10 19:00:54 912

原创 Kotlin 协程基础入门:Job和协程的生命周期

Job简介在 Kotlin 协程中,一个 Job 对象是一个代表正在执行的异步操作的任务,可以用它来控制与取消协程的执行,是协程执行的核心组件之一。在以上协程创建方式中,Job 对象都被自动管理,开发者无需显式管理,但是可以通过 Job 对象的方法来控制协程的执行,如取消和等待,相当于协程的句柄。由上面代码可知,通过 launch 函数创建的协程会返回一个 Job 对象。在协程执行完成后,无法获取协程执行的结果。

2023-06-06 23:08:48 381 1

原创 Kotlin 协程基础入门:协程的三种启动方式和挂起函数

通常,我们会在协程中使用挂起函数,并利用协程的上下文来管理执行环境。协程构建了一种轻量级的线程,将线程的状态保存在内存中,然后利用挂起函数实现了产生、挂起、恢复等机制,从而提供了非阻塞的多任务异步编程方式。withContext()是Kotlin协程库中的一个高级函数,它用于切换协程的执行上下文,例如在一个协程中切换到IO线程执行网络请求或者读写文件等操作。总之,挂起函数是 Kotlin 协程的重要概念,它本质是一种带有挂起(协程)能力的标记函数,它利用了协程和协程上下文机制来实现非阻塞式的异步编程。

2023-06-04 21:56:54 867

原创 安卓自定义View-类似操场跑道

获取路径上指定距离的坐标位置与正切向量,并存储在相应的数组中,其中 distance 参数表示路径的距离位置,pos 数组存储路径上该位置的坐标,tan 数组存储路径上该位置的正切向量。滑动解锁:可以使用 PathMeasure 获取路径的长度,然后通过手势的滑动速度和路径长度的比例来判断是否达到解锁阈值,从而实现滑动解锁功能。绘制动画:可以使用 PathMeasure 获取路径的长度,然后在指定的时间内,通过改变绘制位置的距离和路径长度的比例,来实现路径动画的效果。:获取路径的总长度。

2023-05-30 11:05:12 263

原创 记录jar包运行不了,注册表 javaw.exe\shell\open\command 路径找不到问题

如果不存在,那么可以把以下内容保存为reg后缀名的文件,然后双击导入即可(自行修改里面javaw.exe的路径为您电脑上安装的正确路径,注意路径中的斜杆必须为双斜杆哦!默认数据值,结果 javaw.exe 目录下根本都没找到分支,(不要尝试手动创建,和重启电脑,试过了,没吊用)打不开jar文件,那么这是关联问题,文件关联不是看这个路径的。电脑上的.jar文件打不开,按照网上的方法 修改。这个路径才是最终的关联路径。

2023-05-29 17:17:27 1498 1

Flutter中实现中国地图 core文件

另一篇博客专用!!!

2024-01-24

libopencv-info.so

据说是 最新OpenCV官方SDK里面缺少的一个库,但是这个库非常重要。不然会影响到免安装OpenCV Manager,从github上找的armeabi-v7a 下面的,我反正试了没用,需要的可以试试,反正又不要积分

2023-07-20

与元素类型 "item" 相关联的 "name" 属性值不能包含 '<' 字符 【annotations.zip】

替换你sdk 下的 D:\xxx\platform-tools\api\annotations.zip 压缩包重新编译即可,感谢:https://www.jianshu.com/p/533a8d64e739

2021-08-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除