logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Compose中的协程:rememberCoroutineScope 和 LaunchedEffect

LaunchedEffect 是中用于处理副作用的“瑞士军刀”。它通过与 Composable 的生命周期和 key 变化绑定,提供了一种声明式、安全且可控的方式来运行异步代码。当你需要根据组件的出现、销毁或状态变化来触发一个一次性或可重启的后台任务时,LaunchedEffect 就是你的首选工具。rememberCoroutineScope 是连接 Compose 事件回调 与 协程挂起函数

文章图片
Android系统开启蓝牙源码分析(上)

Android系统的蓝牙打开过程,涉及到APP应用层、framework框架层和Bluetooth协议栈层,总体的流程图可以参考如下:可以看到,开启的流程大致分为4个阶段:第一阶段: (对应图中绿色虚线流程)应用软件调用BluetoothAdapter的enable()方法,通过Binder远程调用到BluetoothManagerService里面对应的enable方法:@RequiresPer

StorageManager获取U盘挂载状态

StorageManager是Android SDK中管理存储设备的一个类。其中的存储设备分内部存储和外部存储,外部存储可以有SDCard、U盘等其他挂载的外设。StorageVolume代表的是一个设备信息的数据结构,里面包含了名称、路径、挂载状态等等信息。以前获取设备列表的方法大多是通过反射获getVolumeList()方法获取到StorageVolume[]数组,但是现在发现完全没有必..

Linux磁盘挂载以及所属用户组修改

一、概述Ubuntu是Linux系统,它是天生支持多用户操作的,用户空间是在根目录下的home/username里面。可以从Other Locations 进入,可以看到自己的电脑的几个磁盘分区:这个Computer的磁盘,就是系统盘,进入之后:可以看到很多系统文件,其中的home目录里面,就是我们用户账号的空间,这个空间只有当前自己用户或者root用户可以读写。其实桌面左边的一些文件夹,就是ho

#linux#ubuntu
Android Window浮窗UI组件使用JetPack

LifeCycleOwner在LifeCycle的设计策略中扮演的是生命周期提供者的角色,一个UI组件想要接入到LifeCycle的一系列规则中,就需要实现LifeCycleOwner,比如我们熟知的ComponentActivity就是实现了LifecycleOwner,并且通过。这里就有一个问题,Activity是接入了LifeCycleOwner的,但是Window浮窗是没有接入的,而Liv

文章图片
#android
基于IjkMediaPlayer的播放器

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

adb命令相关

这可以找到对应包名安装文件的位置。列出所有已经安装的程序的信息。可以强制卸载对应包名的应用。kill特定包名的进程。

#adb#android
到底了