泛型的协变和逆变是什么?对应于Java当中,协变对应的就是<? extends XXX>,而逆变对应的就是<? super XXX>。 1. 泛型的协变 1.1 泛型协变的使...
泛型的协变和逆变是什么?对应于Java当中,协变对应的就是<? extends XXX>,而逆变对应的就是<? super XXX>。 1. 泛型的协变 1.1 泛型协变的使...
fvm及说明 GitHub官网[https://github.com/befovy/fvm] Flutter 版本管理:一个管理 Flutter SDK 版本的简单 cli。...
结论:不要在服务端oneway接口中处理耗时操作,一旦用于高频调用,服务端又处理耗时,再偶尔碰上cpu负荷高,很可能会发生其他关键调用偶现失败的隐蔽问题,而且这个调用失败不会...
ViewPager2是在RecyclerView的基础上构建而成的,意味着其可以复用RecyclerView对象的绝大部分特性,比如缓存复用机制等。 作为ViewPager2...
一、前言 SparseArray 是 Android 在 Android SdK 为我们提供的一个基础的数据结构,其功能类似于 HashMap。与 HashMap 不同的是它...
一、为什么要用线程池 在开发过程中,如果需要经常使用new Thread来处理相关任务。线程的频繁新建与销毁需要很大的开销,如何高效利用多线程处理任务,这时候就需要线程池来做...
Android View从设计到显示到屏幕上,共用了三大步:measure、layout、draw。今天主要讲讲View是如何测量的。 以FrameLayout为例,从mea...
1 显示系统概念 不论电脑,电视,手机,我们看到的画面都是由一帧帧的画面组成的。FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。每秒钟帧数愈...
开发中可能会遇到要求文字根据固定宽度两端对齐的需求,比如登录的用户名标签和密码标签,但TextView没有自带这样的功能,需要自定义view来实现 Android组件有很多自...