
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Kotlin挂起函数是协程中的特殊函数,能够在执行耗时操作时暂停协程并释放线程资源。常见的挂起函数包括delay()、withContext()、suspendCancellableCoroutine等,它们通过挂起点实现非阻塞式操作。挂起函数必须直接或间接调用协程框架提供的基础挂起函数,如withContext用于切换线程上下文。其他重要挂起函数还包括Job.join()、Deferred.aw

Kotlin挂起函数是协程中的特殊函数,能够在执行耗时操作时暂停协程并释放线程资源。常见的挂起函数包括delay()、withContext()、suspendCancellableCoroutine等,它们通过挂起点实现非阻塞式操作。挂起函数必须直接或间接调用协程框架提供的基础挂起函数,如withContext用于切换线程上下文。其他重要挂起函数还包括Job.join()、Deferred.aw

StorageManager是Android SDK中管理存储设备的一个类。其中的存储设备分内部存储和外部存储,外部存储可以有SDCard、U盘等其他挂载的外设。StorageVolume代表的是一个设备信息的数据结构,里面包含了名称、路径、挂载状态等等信息。以前获取设备列表的方法大多是通过反射获getVolumeList()方法获取到StorageVolume[]数组,但是现在发现完全没有必..
一、概述Ubuntu是Linux系统,它是天生支持多用户操作的,用户空间是在根目录下的home/username里面。可以从Other Locations 进入,可以看到自己的电脑的几个磁盘分区:这个Computer的磁盘,就是系统盘,进入之后:可以看到很多系统文件,其中的home目录里面,就是我们用户账号的空间,这个空间只有当前自己用户或者root用户可以读写。其实桌面左边的一些文件夹,就是ho
LifeCycleOwner在LifeCycle的设计策略中扮演的是生命周期提供者的角色,一个UI组件想要接入到LifeCycle的一系列规则中,就需要实现LifeCycleOwner,比如我们熟知的ComponentActivity就是实现了LifecycleOwner,并且通过。这里就有一个问题,Activity是接入了LifeCycleOwner的,但是Window浮窗是没有接入的,而Liv

类加载的时机,或者说类的初始化(两者是类加载到内存中达到可用状态的两个阶段),包括:创建类的实例对象,或者类的静态成员访问,类的反射,父类中的子类初始化的时候,虚拟机特定类。所以并不是程序初始化的时候就会加载所有的类,声明一个类型的变量时也不会加载该类,而是真的使用该类的时候才会去加载。通过伴生对象实现类似于static的静态变量,同时通过by lazy,实现了属性委托,延迟初始化,即在使用ins

作为一个练手项目,基于IjkMediaPlayer的仿照腾讯视频风格的播放器,支持全屏缩放,对其中核心的代码做记录。播放器总体架构如图所示:player是继承frameLayout,自己内部拥有IjkMediaPlayer的实例,以及做渲染显示用的TextureView,同时player只有一个mContainer子控件,mContainer同样也是一个frameLayout容器,容纳Tex...