响应式编程之手写Reactor 前言 前文提到了响应式编程,响应式规范Reactive streams,以及响应式扩展Reactor的简单使用 在使用Reactor时我一直很好奇,它是怎么做到的? 好奇心驱使我想要自己去写一个Reactive streams的实现,并参照Reactor源码来看看大神是如何实现的 话不多说,开始写代码(本文比较啰嗦,因为掺杂了自己的实现思路) 简单序列的发布者 看一下Reactor的一个简单例子 移动开发 2025年05月08日 101 点赞 0 评论 3631 浏览
Android graphics(三) surfaceflinger 一、前言 本文主要内容 1、surfaceflinger初始化流程; 2、surfaceflinger消息机制; 3、surfaceflinger绘制流程; 4、VSync分发流程 surfaceFlinger由init进程启动,独立进程运行,它接受来自多个来源的数据缓冲区,对它们进行合成,然后发送到显示设备。 简述显示过程 1>、一个页面,一般分为三个window,状态栏、app和 移动开发 2025年06月27日 116 点赞 0 评论 3638 浏览
关于Android framework,大部分人都会掉入的学习误区 在学习Android framework的过程中,大家走回走进一个误区,或者说绕了远路,就是会为庞大的源码而耗费大量心力。在这里还是要提醒大家,不要过于关心那些复杂的函数调用链,学习跟踪方法以及把握整理流程最为重要。 Android源码树异常庞大,如果你想一行不漏地看,这是不可能的,就算你这么干了,效果也不见得好——只见树木,不见森林。打个简单的比方,Activity的启动流程,你不用关心在AMS 移动开发 2025年04月30日 194 点赞 0 评论 3701 浏览
记录一次macbook 安装macOS+win11双系统的历程。包括MacBook电脑恢复、绕过win11限制等 一、MacBook恢复macOS系统,或有问题可以重新用此操作关机状态,同时摁住 option+command+R 三个键,然后再摁开机键,等出现 一个地球的图标即可松开。 然后正常链接wifi,让它自动下载一些组件即可。 这里对硬盘进行重新格式化(因为我这里的MacBook是安装了Window 移动开发 2025年05月07日 165 点赞 0 评论 3703 浏览
Android组件开发 一、背景 一个app随着业务增加,代码放在同一个模块中会越来越臃肿,同时也导致多人开发的一个难度。组件化可以把业务单独分出来,形成一个单独模块,可单独运行、测试等,相互之间不会影响。另外一个优势,如果一个公司有多个app,总会出现一些相同业务,如登录/注册。我们可以单独把公共业务封装成一个单独模块,供所以app使用,提高了开发成本 二、项目结构 如下图1,项目分成了4层,第一层app壳,这个也就是 移动开发 2025年04月20日 139 点赞 0 评论 3714 浏览
Android登录拦截场景-探讨多种实现方式 前言 本文是基于之前的系列文章做的一个合集,精简之后整理为一篇长文供大家参考。合集的入口在此。合集内部有每种方案的详细使用手册,大家可以对照本文参考使用。 登录拦截与放行是大部分App开发都会遇到的一个场景,如果你的App有游客模式,但是部分高级功能需要登录之后才能使用。 那么我们就需要在用户点击这个操作的时候校验是否登录,当登录完成之后再跳转到指定的页面或弹窗。如果这些入口很多的话,那么我们就需 移动开发 2025年06月02日 143 点赞 0 评论 3750 浏览
Mac 软件出现「应用程序“xxx”不能打开」的解决办法 一、问题原因我们在互联网上下载 Mac 软件时,经常会遇到安装或打开时出现以下提示: 「应用程序“xxx”不能打开」 乍一看似乎是应用程序损坏,实际上并不是。 真正原因是:应用程序文件的权限错误,缺少可执行权限。 二、解决步骤 打开应用包内容 选中软件图标 → 右键点击 → 选择「显示包内容」。 进入以下路径ÿ 移动开发 2025年11月11日 87 点赞 0 评论 3755 浏览
Swift枚举详解 和结构体一样,swift中的枚举也是值类型。除了定义一个或多个case成员,还可以做以下事情: 可以定义方法,计算属性,下标 可以通过mutating定义可变方法 可以扩展,遵守协议,支持范型 和结构体的唯一区别就是枚举不能定义存储属性 1. 枚举的语法: enum TextAlignment{ case left case right case center } // 移动开发 2025年08月20日 36 点赞 0 评论 3820 浏览
iOS开发 - 「Swift 学习」Swift协议 Swift协议 协议规定了用来实现某一特定功能所必需的方法和属性 类、结构体、枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。 能够满足协议要求的类型被称为遵循此协议 (一)协议的声明 协议的定义方式(关键词:protocol): protocol ProtocolName { // 协议内容(声明属性/方法) } 协议对属性声明的规定 协议用于指定特定的实例 移动开发 2025年06月01日 45 点赞 0 评论 3874 浏览
Android ImageButton 使用详解 文章目录 一、基本使用 1. XML 中声明 ImageButton 2. 代码中设置图片 二、与普通 Button 的区别 三、高级用法 1. 不同状态下的图片显示 2. 添加点击水波纹效果 3. 圆形 ImageButton 实现 四、实际应用示例 1. 实现一个拍照按钮 2. 实现一个可切换的收藏按钮 五、性能优化与最佳实践 移动开发 2025年04月19日 134 点赞 0 评论 3934 浏览