草庐IT

这10张图拿去,别再说学不会RecyclerView的缓存复用机制了!

ViewPager2是在RecyclerView的基础上构建而成的,意味着其可以复用RecyclerView对象的绝大部分特性,比如缓存复用机制等。作为ViewPager2系列的第一篇,本篇的主要目的是快速普及必要的前置知识,而内容的核心,正是前面所提到的RecyclerView的缓存复用机制。RecyclerView,顾名思义,它会回收其列表项视图以供重用。具体而言,当一个列表项被移出屏幕后,RecyclerView并不会销毁其视图,而是会缓存起来,以提供给新进入屏幕的列表项重用,这种重用可以:避免重复创建不必要的视图避免重复执行昂贵的findViewById从而达到的改善性能、提升应用响应

【STM32】STM32F4 GPIO口映射与复用

前言STM32F4有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。这部分知识在《STM32F4中文参考手册》第七章和芯片数据手册有详细的讲解哪些GPIO管脚是可以复用为哪些内置外设。STM32F4系列微控制器IO引脚通过一个复用器连接到内置外设或模块。该复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样可以确保共用同一个IO引脚的外设之间不会发生冲突。每个IO引脚都有一个复用器,该复用器采用16路复用功能输入(AF0到AF15),可通过GPIOx_AFRL(针

通用和复用功能I/O(GPIO和AFIO)

一、通用和复用功能I/O(GPIO和AFIO)1、GPIO_ModeGPIO端口的每个位可以由软件分别配置成多种模式。─输入浮空GPIO_Mode_IN_FLOATING─输入上拉GPIO_Mode_IPU─输入下拉GPIO_Mode_IPD─模拟输入GPIO_Mode_AIN─开漏输出GPIO_Mode_Out_OD─推挽式输出GPIO_Mode_Out_PP─推挽式复用功能GPIO_Mode_AF_PP─开漏复用功能GPIO_Mode_AF_OD通用I/O(GPIO)当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出0时

鸿蒙开发实例 | 可复用列表项的ListContainer

 简短的列表可以通过定向布局实现,但是如果列表项非常多,那么使用定向布局就不合适了。与许多其他的移动开发技术一样,鸿蒙操作系统也提供了可复用列表项的列表组件,这就是本篇文章要介绍的ListContainer。01、可复用列表项的ListContainer简短的列表可以通过定向布局实现,但是如果列表项非常多,则使用定向布局就不合适了。例如,需要创建100个列表项的列表,那么用定向布局实现至少需要创建100个以上的组件了。然而,限于设备屏幕大小的限制,绝大多数组件不会显示在屏幕上,却会占据大量的内存资源,甚至造成应用“闪退”。与许多其他的移动开发技术一样,鸿蒙操作系统也提供了可复用列表项的列表组件

IPv6链路复用/地址选择/IPv6路由+RFC6724

IPv6的一个重要特点是可以进行链路复用,然而这种性质可能会引起数据转发的些许问题。本文旨在介绍IPv6链路复用的相关情况。本文主要介绍了复用链路IPv6下的源目地址选择,有基础者可直接阅读第2章节。(当然这种情况主要指的是上层协议未明确指定源目的情况下。)如有疑问,欢迎留言指导。第2章节基本描述了IPv6地址选择的规则,可直接阅读相关内容。IPv6地址选择的相关内容,可参考2012年发布的RFC6724。关于IPv6/ICMPv6基础协议(ND,SLAAC,DAD,NUD)的介绍,可参考博客IPv6/ICMPv6-原理介绍+报文分析+配置示例。目录IPv6地址选择目录1.IPv6基础内容1.

六大程序设计原则 + 合成复用原则

程序设计领域的设计模式的六大设计原则+合成复用原则(CompositeReusePrinciple),都是一些很泛的思想(它们既可以指这个,也可以代指那个),无法生搬硬套,无法做到很具体的指导。我的建议是,有空多看几遍、多思考看看怎么能运用在实际项目中,在未来时保佑自己在设计程序时能联想到即可。依赖倒置原则(依赖抽象接口,而不是具体对象)它强调了高层次模块不应该依赖于低层次模块,而是应该依赖于抽象。这个原则有助于降低类之间的耦合度,提高系统的可维护性和可复用性。依赖倒置原则要求我们将具体的实现类通过接口或者抽象类进行抽象,以便高层次模块不需要知道低层次模块的具体实现细节。这样,当低层次模块发生

Redis:IO多路复用深度解析

目录一、Multiplexing(IO多路复用)1.是什么2.能干嘛3.Reactor设计模式4.select,poll,epoll都是I/O多路复用的具体的实现4.1select方法4.2poll方法4.3epoll方法4.4三个方法对比5.5种I/O模型总结6.为什么3个都保有一、Multiplexing(IO多路复用)IOmultiplexing就是我们说的select,poll,epoll,有些地方也称这种IO方式为eventdrivenIO事件驱动IO。就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。可以基于

实现高效消息传递:使用RabbitMQ构建可复用的企业级消息系统

文章目录前言1.安装erlang语言2.安装rabbitMQ3.内网穿透3.1安装cpolar内网穿透(支持一键自动安装脚本)3.2创建HTTP隧道4.公网远程连接5.固定公网TCP地址5.1保留一个固定的公网TCP端口地址5.2配置固定公网TCP端口地址前言RabbitMQ是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。由erlang开发的AMQP(AdvancedMessageQueue高级消息队列协议)的开源实现,由于erlang语言的高并发特性,性能较好,本质是个队列,FIFO先入先出,里面存放的内容是message,下面介绍通过在

网络编程 IO多路复用 [epoll版] (TCP网络聊天室)

//head.h      头文件//TcpGrpSer.c   服务器端//TcpGrpUsr.c   客户端通过IO多路复用实现服务器在单进程单线程下可以与多个客户端交互 APIepoll函数#includeintepoll_create(intsize);功能:创建一个epoll句柄//创建红黑树根节点epoll把要监测的事件文件描述符挂载到红黑树上参数:size没有意义,但是必须>0返回值:成功返回根节点对应的文件描述符,失败返回-1intepoll_ctl(intepfd,intop,intfd,structepoll_event*event);功能:实现对于epoll的控制参数:e

Python可复用函数的 六种最佳实践

对于在一个有各种角色的团队中工作的数据科学家来说,编写干净的代码是一项必备的技能,因为:清晰的代码增强了可读性,使团队成员更容易理解和贡献于代码库。清晰的代码提高了可维护性,简化了调试、修改和扩展现有代码等任务。为了实现可维护性,我们的Python函数应该:小型只做一项任务没有重复有一个层次的抽象性有一个描述性的名字有少于四个参数我们先来看看下面的get_data函数。importxml.etree.ElementTreeasETimportzipfilefrompathlibimportPathimportgdowndefget_data(url:str,zip_path:str,raw_t