自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学无止境

学如逆水行舟,不进则退

  • 博客(381)
  • 资源 (7)
  • 问答 (4)
  • 收藏
  • 关注

原创 软件设计师笔记-网络基础知识

例如,通过在网络中部署多个路由器和交换机,并配置适当的路由协议和故障转移机制,可以在一个设备发生故障时,自动将流量转移到其他设备上,从而确保网络的连通性和服务的连续性。数据通信是计算机网络最基本的功能。计算机网络的分类主要依据其覆盖的地理范围大小来区分,常见的分类包括局域网(LAN)、城域网(MAN)和广域网(WAN),每种网络类型都有其特定的应用场景和特点。网络拓扑结构是描述网络中各个节点(如计算机、交换机、路由器等)之间的物理或逻辑连接方式的图形表示,不同的拓扑结构适用于不同的网络需求和环境。

2024-08-04 19:50:13 911

原创 并口、串口和GPIO口区别

另外,为了使用的方便,很多mcu把glue logic等集成到芯片内部,增强了系统的稳定性能,比如GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,可以设置IO的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。另外需要注意的是,对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错,目前,并行接口主要作为打印机端口等。

2024-07-06 18:10:12 688

原创 Kotlin协程使用详解

协程的挂起可以理解为协程中的代码离开协程所在线程的过程,协程的恢复可以理解为协程中的代码重新进入协程所在线程的过程。而恢复这个功能是协程的,如果你不在协程里面调用,恢复这个功能没法实现,所以也就回答了这个问题:为什么挂起函数必须在协程或者另一个挂起函数里被调用。因为一个挂起函数要么在协程里被调用,要么在另一个挂起函数里被调用,所以不管是直接还是间接地,总是会在一个协程里被调用的。协程范围,指的是协程内的代码运行的时间周期范围,如果超出了指定的协程范围,协程会被取消执行。都不对,我们挂起的对象是协程。

2024-07-06 17:41:00 755

原创 软件设计师笔记-系统开发和运行知识(三)

在软件质量保证中,应用技术方法、进行正式的技术评审、测试软件、实施标准、控制变更、度量、记录保存和报告都是关键的活动。通过技术评审,可以发现和纠正潜在的问题和缺陷,提高软件的质量。新系统的逻辑模型基于[描述采用的技术或方法论,如微服务架构、云计算等],旨在构建一个[描述系统目标,如高效、稳定、易扩展等]的业务处理平台。总之,结构化分析方法是一种自顶向下、逐层分解的系统分析方法,它通过数据流图、数据字典、小说明和补充材料等工具和技术,对系统进行全面的分析和描述,为系统的设计和实现提供了坚实的基础。

2024-06-28 21:40:49 624

原创 软件设计师笔记-操作系统知识(二)

以下是关于线程的一些关键点:存储器管理(Memory Management)是操作系统中一个至关重要的部分,它负责有效地管理计算机的主存(或称为RAM)。以下是存储器管理的主要功能的详细解释:分配和回收主存空间:提高主存利用率:扩充主存:有效保护主存信息:存储器的层次结构是计算机系统中非常重要的一部分,它体现了存储设备的速度、容量和成本的权衡。这个层次结构通常包括以下几个级别,从快到慢、从容量小到容量大、从成本高到成本低排列:寄存器(Registers):快速缓存(Cache Memory):主存(Main

2024-06-28 21:31:01 143

原创 软件设计师笔记-系统开发和运行知识(二)

变换分析和事务分析是从数据流图导出程序结构图的两种常用方法。变换分析适用于处理具有明显变换流特性的系统,而事务分析则适用于处理具有事务流特性的系统。在实际应用中,需要根据系统的具体特性选择合适的方法。

2024-06-24 22:20:32 219

原创 软件设计师笔记-系统开发和运行知识(一)

软件工程是一门研究用工程化方法构建和维护有效、实用和高质量软件的学科。它涉及计算机科学、数学、管理科学等多领域的原理和技术。其核心目标是应用这些原理和技术来提高软件的生产效率、质量,并降低其成本。关键组成部分:工程化原则和方法:软件工程强调使用工程化的原则和方法来解决软件问题。这包括:目标:总之,软件工程是一个综合性和实践性很强的领域,它依赖于计算机科学、数学和管理科学等多学科的知识和技术,旨在提高软件的生产率、质量和成本效益。软件生存周期(也称为软件开发过程或软件生命周期)是一个描述从软件项目的概念化、开

2024-06-23 22:44:21 731

原创 软件设计师笔记-操作系统知识(一)

进程同步是指多个进程在执行过程中,由于直接的相互制约关系而相互发送消息、进行互相合作、互相等待,从而确保各进程能够按照一定的速度或顺序执行,以共同完成某一任务。

2024-06-23 17:20:03 241

原创 软件设计师笔记-程序语言基础知识

程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。程序设计语言也叫编程语言,是用于书写计算机程序的语言,其基础是一组记号和一组规则。程序设计语言具有三个核心要素:语法、语义和语用。语法:表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律。具体来说,语法定义了如何组织和排列这些记号以形成有意义的程序。在编程中,语法规则决定了哪些指令和表达式是合法的,以及它们应该如何组合在一起。

2024-06-10 20:46:59 142

原创 软件设计师笔记-计算机系统基础知识

CISC指令集的特点在于其丰富性,包含了多种不同的操作,每个操作都能执行复杂的任务,如乘法、除法、浮点运算等。在RISC处理器中,流水线技术被广泛应用,通过将指令的执行过程划分为多个阶段(如取址、译码、执行、访存和回填等),并允许不同指令的不同阶段重叠执行,从而提高了处理器的吞吐量和效率。由于计算机中的各种部件都是在时钟信号的同步下工作的,因此各种部件的动作必须有时间上的协调。通过增加流水线的级数,超流水线技术能够减少每个阶段的执行时间,并允许更多的指令在同一时间内并行执行。

2024-06-10 18:11:28 196

原创 物联网开发你需要知道这些

新增加的设备,如果是同一类型的,在设计、研发中,会遵循相同的功能定义,有相同的特征,实现相同的服务。它是一种把中央处理器(CPU)的频率与规格做适当缩减,并将内存(Memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。

2024-05-28 23:43:16 679

原创 Android内存碎片化调优

在Android系统中,内存碎片化是指内存中存在很多小块的空闲内存,这些内存块之间不连续,难以找到足够大的连续内存块来满足某些大型对象的内存分配需求。通过优化内存使用、采用合适的内存管理策略以及定期清理内存,可以有效地减少内存碎片化并提升系统的性能和稳定性。在实际应用中,你可能需要在关键的内存分配操作前调用内存压缩,例如在Bitmap的分配和回收过程中,以保持内存的连续性。另一种是空闲分散的内存页,凑不齐一个组物理地址连续的空闲内存页,就没办法分配了,这些散落的内存页被称为。

2024-05-26 16:06:52 107

原创 Jetpack Compose 初探

是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的Kotlin API,可以帮助您简化并加快 Android 界面开发。与传统的XML布局文件和Java代码相比,采用了声明式的方式来构建用户界面,提供了一种更简洁、更直观的UI开发体验。围绕可组合函数构建,这些函数允许开发者以程序化方式定义应用的界面,只需描述应用界面的外观并提供数据依赖项,而不必关注界面的构建过程。

2024-05-15 18:48:18 138

原创 leetcode刷题:买卖股票的最佳时机

动态规划(Dynamic Programming,简称 DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。动态规划方法的基本思想是:将待求解的问题分解成若干个相互重叠的子问题,求解一个子问题时,将其解存储起来,以便以后利用。这样,在求解任何一个子问题时,所利用的子问题的解都是已经计算过的,从而避免了重复计算。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。

2024-05-12 20:33:42 704 1

原创 leetcode刷题:搜索插入位置

二分查找的思路不难理解,但是边界条件容易出错,比如循环结束条件中 left 和 right 的关系,更新 left 和 right 位置时要不要加 1 减 1。这里是为了让读者更加深入理解二分查找算法的原理,在实际项目使用中,Java二分搜索算法已经有现成的API库。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。)的时间复杂度,但是如果二分的话则可以降低到 O(之间的大小进行判断,相等则直接返回下标,

2024-05-12 19:25:04 864

原创 重新认识Flutter跨平台技术(下)

首先 Skia 肯定是一个优秀的通用 2D 图形库,例如 Google Chrome 、Android、Firefox 等设备都是用了 Skia ,但是也因为它的「通用性」,所以它不属于 Flutter 的形状,它无法专门针对 Flutter 的要求去进行优化调整,例如 Skia 附带的许多功能超出了 Flutter 的要求,其中一些可能会导致不必要的开销并导致渲染时间变慢,而目前来看,Skia 的通用性给 Flutter 带来了性能瓶颈。然后,框架会将可渲染的对象缝合在一起,组成可渲染对象树。

2024-05-12 18:59:33 204

原创 leetcode刷题:腐烂的橘子

在 BFS 中,每遍历到一个橘子(污染了一个橘子),就将新鲜橘子的数量减一。然后进行 BFS 遍历,每个结点的相邻结点可能是上、下、左、右四个方向的结点,注意判断结点位于网格边界的特殊情况。解释:左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个方向上。输入:grid = [[2,1,1],[1,1,0],[0,1,1]]输入:grid = [[2,1,1],[0,1,1],[1,0,1]]一开始,我们找出所有腐烂的橘子,将它们放入队列,作为第 0 层的结点。

2024-05-11 20:38:16 289

原创 重新认识Flutter跨平台技术(上)

Flutter 是一个跨平台的 UI 工具集,它的设计初衷,就是允许在各种操作系统上复用同样的代码,例如 iOS 和 Android,同时让应用程序可以直接与底层平台服务进行交互。如此设计是为了让开发者能够在不同的平台上,都能交付拥有原生体验的高性能应用,尽可能地共享复用代码的同时,包容不同平台的差异。在开发中,Flutter 应用会在一个 VM(程序虚拟机)中运行,从而可以在保留状态且无需重新编译的情况下,热重载相关的更新。

2024-05-11 18:47:41 1137 1

原创 leetcode刷题:对称二叉树

广度优先遍历(Breadth-First Search, BFS)是一种从图的某一节点(源节点)出发,先访问该节点的所有相邻节点,然后对每个相邻节点再访问它们的相邻节点,如此层层推进,直到访问完所有节点为止的遍历方法。深度优先遍历(Depth-First Search, DFS)则是一种从图的某一节点(源节点)出发,尽可能深地访问图中的节点,当达到图的某个叶节点时,再返回上一级节点继续搜索,直到访问完所有节点为止的遍历方法......

2024-05-10 21:49:30 632

原创 深度解析Android 14新特性

Android 14是谷歌公司于2023年5月11日正式发布的一款操作系统。这款新系统无论从ROM角度还是应用程序(App)角度,都带来了多方面的提升和改进。

2024-05-09 20:04:27 469 1

原创 leetcode刷题:反转链表

考虑使用递归法遍历链表,当越过尾节点后终止递归,在回溯时修改各节点的 next 引用指向。考虑遍历链表,并在访问各节点时修改 next 引用指向,算法流程见注释。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。):变量 pre 和 cur 使用常数大小额外空间。输入:head = [1,2,3,4,5]): 遍历链表使用线性大小时间。输入:head = [1,2]):遍历链表使用线性大小时间。): 遍历链表的递归深度达到。输出:[5,4,3,2,1]输入:head = []

2024-05-08 19:34:08 749

原创 leetcode刷题:三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]输入:nums = [0,1,1]输入:nums = [0,0,0]解释:唯一可能的三元组和为 0。输出:[[0,0,0]]

2024-05-07 21:17:29 792 1

原创 重新认识Kotlin语言特性

Kotlin 是一种静态类型的开源编程语言,它既支持面向对象的编程,又支持函数式编程。Kotlin 提供的语法和概念与其他语言(包括 C#、Java 和 Scala 等等)类似。Kotlin 的目标并不是独树一帜,而是从几十年的语言发展中汲取灵感。它以变体的形式存在,这些变体以 JVM (Kotlin/JVM)、JavaScript (Kotlin/JS) 和原生代码 (Kotlin/Native) 为目标。

2024-05-07 13:38:43 161

原创 leetcode刷题:移动零

即遍历的时候每遇到一个 非0 元素就将其往数组左边挪,第一次遍历完后,j 指针的下标就指向了最后一个 非0 元素下标。这里参考了快速排序的思想,快速排序首先要确定一个待分割的元素做中间点 x,然后把所有小于等于 x 的元素放到 x 的左边,大于 x 的元素放到其右边。这里我们可以用 0 当做这个中间点,把不等于 0(注意题目没说不能有负数)的放到中间点的左边,等于 0 的放到其右边。其实就是把零的位数先全部去掉数据前移,最后面按照零的个数设置零数,可以进一步优化:避免数组开头是非零元素的交换。

2024-05-06 19:07:51 264

原创 2022年下半年软件设计师上午真题及答案解析(一)

ECC的主要优势是在某些情况下,它比其他方法使用更小的密钥就能提供相当的或更高等级的安全。DES算法是对称加密算法体系中的代表,使用相同的密钥进行加密和解密操作。RSA算法基于数论,利用两个大素数的乘积作为加密密钥,而这两个大素数的选择使得其乘积的因式分解变得极其困难,从而保证了加密的安全性。此外,还可以采取其他网站页面防篡改措施,如使用HTTPS协议、输入验证和过滤、使用防火墙、定期更新和修补漏洞、强化访问控制、监控和日志记录、使用内容安全策略(CSP)等,以提高网站的安全性和防护能力。

2024-05-06 13:37:39 212

原创 车载开发-Android Automotive平台

Android Automotive是一个基于Android操作系统的开源平台,专为车载信息娱乐系统设计。它利用了Android的通用框架、语言和API,以提供一个全栈、高度可定制的平台。Android Automotive不是Android的分支或并行开发,而是Android生态系统的一部分,与手机、平板电脑等安卓设备上的Android共享相同的代码库和存储库。该平台为车载信息娱乐系统和车机提供了开放性、自定义和规模化特性。

2024-05-04 13:48:34 139 1

原创 车载开发-操作系统介绍

车载操作系统(Automotive Operating System,简称车载OS)是管理和控制车载软件、硬件资源的程序系统,它支持汽车的上层软件开发、数据连接和人机界面(HMI)。车载操作系统与车控操作系统同属于汽车操作系统,但并不直接管理车辆动力、底盘、车身等基础硬件。管理车载系统的数据资源、硬软件,并控制应用程序的运行。提供多形式的人机界面,支持上层软件的运行。

2024-05-03 11:40:10 91

原创 leetcode刷题:最长连续序列

HashSet是Java中的一种集合数据结构,它是基于哈希表的`Set`接口的实现。HashSet不允许包含重复的元素,如果尝试将重复的元素添加到HashSet中,那么添加操作将不会成功,并且原始集合的状态也不会改变。

2024-04-29 21:07:02 248

原创 leetcode刷题:字母异位词分组

同一组字母异位词中的字符串具备相同点,可以使用相同点作为一组字母异位词的标志,使用哈希表存储每一组字母异位词,哈希表的键为一组字母异位词的标志,哈希表的值为一组字母异位词列表。遍历每个字符串,对于每个字符串,得到该字符串所在的一组字母异位词的标志,将当前字符串加入该组字母异位词的列表中。输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]输出: [[“a”]]

2024-04-28 17:24:55 343

原创 leetcode刷题:两数之和

面试造火箭,工作拧螺丝,话虽如此,背背八股文,刷刷算法题,也可以提高自己的编程素养,一切目的是为了上岸,在此就不咬文嚼字,追求茴香豆的茴有几种写法了,换句话说,就是不考虑时间或者空间复杂度,直接采用最容易想到的常规手段。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。只会存在一个有效答案。

2024-04-28 11:58:37 299 2

原创 简单了解裸眼3D呈现技术

这项技术利用传感器或摄像头实时监测观众的位置和视角,然后根据观众的位置信息动态调整投射的图像,确保不同位置的观众都能看到一致的3D效果。这种技术不仅可以在电影院和家庭影院中应用,还可以用于虚拟现实设备和大型展览等领域。裸眼3D呈现是一种不需要佩戴任何特殊设备(如3D眼镜或头盔)即可观看到3D效果的技术。这种技术近年来得到了快速发展,为观众带来了更加沉浸式的视觉体验。总之,裸眼3D呈现技术的发展为观众带来了更加真实、沉浸式的视觉体验。随着技术的不断进步和创新,相信未来裸眼3D将会在更多领域得到应用和推广。

2024-04-02 19:53:02 727

原创 简单理解AIGC大模型

AIGC是人工智能生成内容(Artificial Intelligence Generated Content)的缩写,是一种新的内容创作方式,它利用人工智能技术来生成文本、图像、音频和视频等多样化的内容。AIGC代表了AI技术发展的一个新阶段,其核心是自主生成内容,被认为是继专业生产内容(PGC)、用户生产内容(UGC)之后的新型内容创作方式。

2024-04-02 19:43:09 631

原创 IoT开发---Android MQTT使用

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议。该协议构建于TCP/IP协议上,它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。该类设计为单例模式,实现MQTT初始化、连接、订阅消息、发布消息、处理消息、释放连接等操作。

2023-03-12 22:11:17 1943 1

原创 Android 9适配经验总结

但对于需要应用正常启动后才能对广播进行正确处理的场景,则应用使用动态注册的方式,这时如果采用静态注册的方式,在应用没有启动时,收到广播可能不会得到正确的处理,同时都采用静态注册的方式也会影响广播传递的效率,因为很多未启动的应用也会被广播唤醒。采用代码中动态注册广播的方式不仅是 Android9 系统的要求,也是一种比较好的开发习惯,这有利于对广播的使用进行控制,在应用功能已经初始化完成的时候添加广播的监听,确保广播到来时的功能执行能正常进行。最好的适配方式是修改所有的网络接口,改为 https 协议;

2023-03-03 20:24:11 917

原创 2021年上半年软件设计师下午真题及答案解析(五)

第(4)空缺失了一个属性,此时根据下文的同名构造函数会发现,此处传参给了this.name以及this.elementList,name可以根据父类继承使用,而elementList需要定义,因此此处缺失的参数是elementList,类型根据后面的赋值类型进行定义,即第(4)空填写ArrayList elementList。层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

2022-11-04 22:41:10 1143

原创 2021年上半年软件设计师下午真题及答案解析(四)

第(3)空缺失判断条件,此时注释明确说明此处判断最小值,判断后,m[i][j]值进行修改并修改为temp,也就是意味着m[i][j]此时记录的不是最优解(最小值),需要进行修正改为最小,即填写temp

2022-11-04 22:30:28 1379 3

原创 2021年上半年软件设计师下午真题及答案解析(三)

generalize(泛化)泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。本系统中患者可以使用微信或支付宝等支付方式支付费用,即支付可以有不同种方式,包括微信支付、支付宝支付等,所以微信支付和支付宝支付是支付的特殊化,支付是二者的泛化。本系统中,确认药方过程中系统会自动计算本次抓药的费用,患者可以使用微信或支付宝等支付方式支付费用,所以确认药方包含支付过程。已注册的患者可以登录系统进行线上抓药,未注册的患者系统拒绝其登陆。

2022-11-04 22:21:11 1879

原创 2021年上半年软件设计师下午真题及答案解析(二)

根据题干的描述,若社区蔬菜团购网站还兼有代收快递的业务,请增加新的“快递”实体,并给出客户实体和快递实体之间的“收取”联系。根据题干中对订单信息的描述,需要记录客户订单信息,包括订单编号、团购点编号、客户电话、订单内容和日期,其中包括了团购点编号,客户电话,所以订单表与社区团购点关系和客户关系有联系,并且团购和客户的联系的多种度为。若社区蔬菜团购网站还兼有代收快递的业务,请增加新的“快递”实体,并给出客户实体和快递实体之间的“收取”联系,对图2-1进行补充。社区团购点(团购点编号,地址,电话)

2022-11-04 22:08:33 1198

原创 2021年上半年软件设计师下午真题及答案解析(一)

当因道闸重置系统出现问题(断网断电或是故障为抬杠等情况),而无法在规定的时间内接收到其返回的执行状态正常放行时,系统向管理人员发送异常告警信息,之后管理人员安排故障排查处理,确保车辆有序出入停车场。进入停车场时,若有 (空余车位数大干1),自动识别车牌号后进行道闸控制,当车主开车离开停车场时,识别车牌号,计费成功后,请求道闸控制。【说明】某停车场运营方为了降低运营成本,减员增效,提供良好的停车体验,欲开发无人值守停车系统,该系统的主要功能是∶。使用说明中的词语,给出图1-1中的实体E1-E5的名称。

2022-11-04 21:32:19 1312

原创 2021年上半年软件设计师上午真题及答案解析(六)

57、设有栈S和队列Q初始状态为空,数据元素序列a,b,c,d,e,f依次通过栈S,且多个元素从S出栈后立即进入队列Q,若出队的序列是b,d,f, e, c, a,则S中的元素最多时,栈底到栈顶的元素依次为( )。首先对于第一空,选择的对象一定是表E或表C,而此时C是没有部门名的,因此筛选对象一定是表E,其次判断某个列的取值,需要用引号标注,排除错误格式A,本题选择的应该是C选项。出队序列与入队序列是一致的,出队的序列是b,d,f, e, c, a,即入队序列也为b,d,f, e, c, a。

2022-11-03 20:54:42 1363

IoT(物联网)开发使用的低功耗蓝牙库

基于BLE4.0版本实现的专为IoT(物联网)开发用的低功耗蓝牙库。

2024-06-02

基于Android无障碍服务实现的自动连点器

基于Android无障碍服务实现的自动连点器,可以自由设置坐标和点击速度,操作简单,功能稳定。

2024-05-10

支持倍速播放的TV视频播放器源码

使用Kotlin语言编写的一款集成了ijkplayer的视频播放器,同时实现了本地和在线播放功能,支持倍速播放。

2018-08-23

gradle-4.1-all.zip离线包

Android Studio3.0对应的Gradle插件离线下载包 官网https://services.gradle.org/distributions/

2017-10-30

Kotlin语法学习

Kotlin语法学习-变量定义、函数扩展、Parcelable序列化、编写工具类、Activity跳转

2017-08-16

仿微信点击图片放大,并可滑动浏览效果demo

仿微信点击图片放大,并可滑动浏览效果

2017-08-16

Android RecyclerView 间距全适配

RecyclerView自定义行列间距

2017-08-16

Android侧滑编辑、删除效果Demo源码

一种易扩展、使用简单的Android侧滑删除控件。

2017-08-16

Android实现一种简易的Banner效果

使用ViewPager简单实现循环播放多个广告图片的banner效果,利用Handler与Runnable配合实现指定功能模块的定时循环执行。

2017-04-05

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

TA关注的人

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