
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文揭示了软件开发的本质——所有应用都是运行在操作系统上的进程体系。无论是Android App、Java后端还是微服务,本质上都是Linux系统中的进程,区别仅在于有无UI和通信方式。文章指出:1) Android多进程和微服务本质相同,都是进程隔离思想在不同规模的应用;2) AIDL和HTTP都是进程通信方案,差异由运行环境决定;3) 理解操作系统层面的进程调度、线程切换等机制,是从应用工程师
Flutter路由管理的核心挑战在于如何优雅处理复杂场景。文章对比了Navigator 1.0/2.0的局限性,重点推荐go_router解决方案,其通过声明式路由和状态驱动跳转,系统性地解决了登录守卫、深链接入、页面栈管理等工程痛点。关键设计包括:将路由视为状态映射而非push行为、采用路由树结构、通过ShellRoute管理嵌套页面、集中式登录态控制等。文章还提供了真实项目路由结构模板,强调当
SSE(Server-Sent Events)是一种基于HTTP的服务器推送技术,支持单向实时通信。OkHttp实现SSE有三种方式:1)使用OkHttp-SSE标准库,自动处理SSE协议和重连;2)自定义SSE客户端(推荐Kotlin项目),通过Flow实现灵活的事件管理和扩展;3)手动处理HTTP流,适合极简或特殊业务场景。相比WebSocket和轮询,SSE在单向推送场景中具有低复杂度、高实
路由系统的本质:观察者模式的跨平台实现 前端路由、Android ARouter和Flutter go_router虽然API各异,但核心都是通过观察"导航状态"(URL/路径/location)的变化,自动完成页面切换。它们都采用观察者模式:被观察者(URL/路由请求)变化时,观察者(路由系统)响应并执行组件渲染/Activity跳转/Widget切换。三者都演进为声明式路由
本文探讨了前端、Android和Flutter平台中路由系统的本质共性。作者指出,尽管各平台API和实现细节不同,但都采用了"声明式路由+全局导航治理"的核心模式。文章分析了命令式跳转在复杂项目中必然失控的原因,阐释了声明式路由将跳转行为转化为状态映射的思想转变。通过对比三种平台的路由实现(前端路由表、Android ARouter和Flutter go_router),揭示了
本文介绍了Flutter+Dio项目中处理并发401错误的优化方案。当多个请求因accessToken过期同时返回401时,通过共享Future机制确保只执行一次token刷新,避免刷新风暴。方案采用分层设计:AuthInterceptor负责注入token,RefreshInterceptor处理401并重试请求,TokenStore管理token存取,RefreshManager实现并发控制。
本文澄清了异步编程中的关键概念:Dio和axios本质都是基于Future/Promise模型的HTTP客户端,两者可互相迁移。核心指出async/await不等于并发,await仅实现函数内部串行执行而不阻塞线程,真正并发来自同时创建多个Future。文章对比了前端和Flutter在拦截器设计、并发处理(Promise.all/Future.wait)及错误处理上的异同,强调这是可迁移的通用能力
CompletableDeferred需要手动调用complete()或completeExceptionally(),否则await()会永久挂起。与async自动完成的Deferred不同,CompletableDeferred专为手动控制完成时机设计,常用于桥接回调API、协程间协调或等待外部事件。若忘记调用complete()会导致协程挂起、内存泄漏等问题。最佳实践是确保设置完成路径,并建
类型转换和Java是有一些区别的,不再有**【String. valueOf】【Integer.valueOf】**这类转换函数,而是改成了【to】形式(直接变量后面点to出来)。

摘要:SupervisorJob()+Dispatchers.IO组合创建了一个专为I/O操作优化的协程作用域。SupervisorJob确保子协程失败互不影响,Dispatchers.IO为文件/网络等阻塞操作提供专用线程池。该配置适合后台任务管理,但需注意手动取消作用域避免内存泄漏,并妥善处理异常。典型应用场景包括并发下载、ViewModel数据加载等需要隔离I/O任务的场合。







