- 博客(443)
- 资源 (39)
- 收藏
- 关注
原创 Android Compose中的单向数据流和MVI架构
单向数据流(UDF)是Android开发中的一种架构模式,强调数据单向流动:状态向下传递,事件向上触发。其核心流程包括事件触发、逻辑处理、状态更新和UI刷新,形成可预测的循环。UDF优势在于提升可测试性、确保状态一致性和界面同步。代码示例展示了状态管理、事件处理和UI更新的完整实现。UDF可扩展为更严格的MVI架构,后者通过单一不可变状态和密封类Intent进一步规范数据流。在Compose中实现MVI需要定义UI状态、处理Intent并管理副作用,适合追求高可维护性的中大型项目。
2025-12-12 08:49:28
845
原创 Android Compose 界面架构 : 基于单向数据流
本文介绍了Jetpack Compose中界面构建的核心逻辑——状态控制与单向数据流(UDF)模式。主要内容包括: Compose界面的不可变性决定了状态驱动更新的特性 单向数据流的实现方式:状态向下流动,事件向上传递 使用ViewModel管理状态,通过mutableStateOf、LiveData等容器实现状态观察 事件处理原则:界面层仅触发事件,由ViewModel统一处理 可组合项设计建议:参数最小化、优先使用不可变值 登录屏幕的状态建模示例,展示密封类在状态管理中的应用 该模式提升了应用的可测试性
2025-11-24 09:02:00
1268
原创 Android Compose 架构分层详解 : 基于基础层开发自定义组件
Jetpack Compose采用分层架构设计,包含Material、Foundation、UI和Runtime四层。Runtime层提供核心组件如@Composable注解;UI层实现基础界面功能;Foundation层包含通用组件如Row/Column;Material层实现Material Design系统。设计原则强调:1)按需降级获取更多控制权;2)通过组合小型组件实现自定义;3)优先使用高级别组件以确保功能完整性和无障碍支持。开发者可根据需求选择合适的抽象层级,在便利性和灵活性间取得平衡。
2025-11-24 09:01:40
702
原创 Android Compose 状态提升和状态保存
状态提升是Android Compose中管理界面状态的核心设计模式,它通过将状态从子组件移至父组件,实现状态共享和单向数据流控制。这一模式遵循"状态向下流动,事件向上触发"的原则,使状态变化可预测、组件更易测试复用。
2025-11-21 09:00:22
900
原创 Android Compose的编程思想 : 智能重组的声明式UI
Jetpack Compose 是 Android 声明式界面工具包,核心以可组合函数(Composable)描述界面,替代传统命令式手动操作视图的方式。颠覆了传统命令式开发逻辑 : 无需手动操控视图,只需描述界面状态,状态变化时系统会智能更新需改动部分,彻底解决传统开发的漏更、冲突、维护难等痛点。
2025-11-21 08:48:30
637
原创 Android Compose中LaunchedEffect、SideEffect和DisposableEffect的区别
Android Jetpack Compose提供了三种管理副作用的API:LaunchedEffect用于启动协程执行异步任务,在组件退出时自动取消;DisposableEffect用于需要资源清理的场景,必须实现onDispose清理逻辑;SideEffect则在每次重组后同步执行,适合轻量级状态同步。三者的区别体现在执行时机、协程支持和生命周期管理上,开发者应根据是否需要协程、资源清理等需求选择合适的API。文中通过计时器、传感器和埋点等典型示例,展示了各API的最佳使用场景。
2025-10-24 08:52:33
617
原创 Android Compose 状态的概念
本文介绍了 Jetpack Compose 中的状态管理机制。状态是指应用中随时间变化的任何值,Compose 通过声明式方式,在状态变化时触发重组来更新界面。核心是通过 remember 存储状态,mutableStateOf 实现状态可观察性。文章比较了三种声明状态的方式,推荐使用 by 委托语法。最后区分了传递值和传递状态对象的差异:传递值实现单向数据流,适合纯展示组件;传递状态对象支持双向数据流,允许子组件直接修改状态。理解这些机制有助于在 Compose 中构建响应式 UI。
2025-10-21 20:02:42
973
原创 Android Compose 绘制流程 : 阶段(phases)
Jetpack Compose 通过三个阶段高效渲染界面:组合阶段生成界面树,布局阶段计算尺寸位置,绘制阶段呈现像素。其核心优势在于智能跟踪状态读取位置,仅重新执行必要的阶段。例如在绘制阶段读取颜色状态时,仅触发重绘而不重组。性能优化关键在于将状态读取放在最低必要阶段,避免无效计算。错误示例展示了在组合阶段读取滚动偏移会导致不必要的重组,应改为在布局阶段读取以提升效率。
2025-10-21 19:21:53
982
原创 Android Compose中的附带效应
Jetpack Compose 通过 Effect API 管理附带效应(如网络请求、生命周期事件),避免因重组导致重复执行或资源泄漏。
2025-10-16 09:06:49
1759
原创 Android Compose 可组合项的生命周期
Jetpack Compose 的可组合项生命周期分为进入组合、重组(0次或多次)和退出组合三个阶段。Compose 通过调用点识别可组合项,重组时仅更新受状态变化影响的部分。列表场景需使用 key 避免无效重组,确保稳定性。参数类型需满足“稳定类型”(如基本类型、String、MutableState)才能跳过重组,否则即使输入未变也会触发重组。通过 @Stable 注解可标记自定义稳定类型,优化性能。
2025-10-16 09:03:08
1295
原创 Android Doze低电耗休眠模式 与 WorkManager
这篇文章主要讨论了Android Doze模式下WorkManager的任务执行限制及解决方案。Doze模式下,系统为省电会延迟后台活动,WorkManager的周期性任务最小间隔被强制设为15分钟,即使设置更短时间也会被系统替换。
2025-09-15 20:53:30
1177
1
原创 Android WorkManager的概念和使用
Android WorkManager 是 Jetpack 组件库中用于可靠调度后台任务的框架,专为处理需保障执行、可延迟的异步任务(如数据同步、日志上传)而设计。其核心优势在于能保证任务完成,即使应用退出或设备重启,并通过 SQLite 持久化存储任务信息。它支持设置灵活约束条件(如网络类型、充电状态),提供一次性(OneTimeWorkRequest)和周期性(PeriodicWorkRequest,最小间隔15分钟)任务调度,并允许构建链式任务工作流。
2025-09-15 20:53:22
1413
原创 MCP是什么 ? 有哪些好用的MCP ?
MCP(Model Context Protocol)是由Anthropic开发的开源协议,旨在为大型语言模型提供标准化连接外部数据源和工具的能力。该协议解决了大模型与现实数据和应用脱节的问题,使其能够安全调用各类工具(如数据库、地图API、办公软件等),实现上网搜索、文件操作、数据分析等功能。MCP生态已形成丰富工具库,涵盖浏览器、GitHub管理、Excel处理等多个领域。开发者可通过MCP.so等平台获取相关工具,并通过系列教程学习如何将MCP应用于旅游规划、UI设计等实际场景。
2025-07-14 18:58:20
1412
原创 使用Trae+Playwright MCP实现网页自动化测试
本文详细介绍了如何在Trae IDE环境中配置和使用Playwright MCP进行Web自动化测试。主要内容包括:1)安装Python、Node.js等基础环境;2)通过pip安装Playwright并下载浏览器;3)在Trae IDE中添加Playwright MCP插件;4)创建配置Playwright的智能体;5)实际应用示例演示自动打开网页并查找特定元素。整个过程包含了完整的配置步骤截图和命令行验证方法,适合开发者在Windows11环境下快速搭建Playwright自动化测试平台。
2025-07-14 08:59:56
2182
6
原创 使用Cursor+Figma MCP生成UI搞,并根据UI稿生成网页和Android代码
摘要:本文介绍了如何使用Figma MCP工具生成UI设计稿并转换为代码的完整流程。主要内容包括:1) 介绍三种主流Figma MCP工具的特点;2) 详细的环境配置步骤(Node.js、Figma客户端、MCP插件安装);3) 通过Cursor与Figma MCP交互,实现从设计稿生成到代码转换的全过程,包括创建待办事项App首页UI,以及将设计稿转换为HTML网页和Android Compose代码的具体操作。该方法适合需要快速实现UI设计与代码开发的开发者。
2025-06-28 11:14:41
5170
原创 使用AI大模型+高德MCP规划旅游行程并生成网页
本文介绍了如何使用高德地图MCP服务在Trae IDE中规划旅游行程。主要内容包括:1) 搭建开发环境,安装Python3、UV、Node.js等必要工具;2) 注册高德地图开发者获取API Key;3) 在Trae中配置高德MCP服务;4) 创建自定义智能体并设置提示词;5) 实际使用体验,通过高德MCP获取更准确的行程数据。该方案相比纯大模型规划,能提供更可靠的行程时间和路线信息。
2025-06-28 11:12:44
2036
原创 Android 使用Paging3 实现列表分页加载、下拉刷新、错误重试、筛选功能
介绍Android JetPack Paging3分页库的使用
2025-05-10 15:50:15
1964
原创 kotlin知识体系(四) : inline、noinline、crossinline 关键字对应编译后的代码是怎样的 ?
在 Kotlin 里,`inline`、`noinline` 和 `crossinline` 这几个关键字和高阶函数紧密相关,它们能够对高阶函数的行为进行优化和控制。
2025-03-23 23:24:04
1108
原创 kotlin知识体系(三) : Android Kotlin 中的函数式编程实践指南
Kotlin以函数式编程革新了Android开发,通过高阶函数、扩展函数等特性,帮助开发者构建高可维护性代码。
2025-03-23 23:20:02
1225
原创 使用AI编程,让AI成为你的打工人
2025年,AI编程来到第二阶段。无论你是程序员、产品经理还是不会编程的普通人,都能够轻松实现自己的App和网站。
2025-03-18 08:46:03
936
原创 Kotlin知识体系(二) : Kotlin的七个面向对象关键特性
在Android开发中,Kotlin以其简洁的语法和强大的特性显著提升了开发效率。本文将解析Kotlin中7个关键特性,通过代码示例展示它们在实际开发中的应用。
2025-03-16 21:30:10
636
原创 Kotlin知识体系(一) : Kotlin的五大基础语法特性
在Android开发领域,Kotlin凭借其简洁性和安全性已成为官方推荐语言。本文将通过Kotlin的五大基础语法特性,结合实际应用场景展示它们在Android开发中的独特价值。
2025-03-16 21:28:04
1558
原创 Android Compose 显示底部对话框 (ModalBottomSheet),实现类似BottomSheetDialog的效果
ModalBottomSheet是Android Compose官方的底部对话框,类似传统View中的BottomSheetDialog,可以实现从底部弹出,并支持滑动关闭的效果。
2025-01-12 11:33:27
3177
原创 Windows11 开启家长控制,限制电脑使用时长,限制可使用的软件,限制Edge浏览器能访问的网页
Windows中怎么开启家长控制,实现对于某些功能的限制和管理呢 ? 比如限制使用时长、可以使用的软件、禁止访问的网站等。查了不少网上的资料,要么资料已经过时了,要么写的不太清楚,摸索了半天,终于实现了windows的家长控制,在这里记录一下。
2025-01-12 11:20:06
12513
2
原创 Android中使用NSD扫描,实现局域网内设备IP的发现
介绍Android中的NSD协议,并说明在Android中如何使用NSD协议,实现局域网内设备IP的发现
2024-11-30 22:40:08
2868
原创 MQTT协议解析 : 物联网领域的最佳选择
MQTT是一个网络协议,和HTTP类似,因为轻量简单,很多时候传输效率是后者的数十倍。 它仅用极少的代码和有限的带宽,就能为连接远程设备提供实时可靠的消息服务,所以逐渐在物联网领域成为了最佳选择。
2024-11-09 22:20:43
2512
原创 HarmonyOS入门 : 获取网络数据,并渲染到界面上
入门HarmonyOS我们可以从一个实际的小例子入手,比如获取网络数据,并将其渲染到界面上。
2024-11-09 22:18:28
1727
原创 基于Ubuntu24.04,下载并编译Android12系统源码 (一)
介绍在Ubuntu24.04系统中,如何下载并编译Android12源码
2024-10-24 19:30:00
3130
原创 基于Ubuntu24.04,下载并编译Android12系统源码 (二)
介绍在Ubuntu24.04系统中,如何下载并编译Android12源码
2024-10-24 19:30:00
2183
2
原创 Unity3D入门(四) : Android和Unity3D交互 - Unity调用Android
介绍Android如何和Unity3D进行交互
2024-09-28 15:07:20
2992
原创 Unity3D入门(三) : Android和Unity3D交互 - Android调用Unity
介绍Android如何和Unity3D进行交互
2024-09-28 15:05:20
3267
原创 Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行
介绍如何新建一个Unity3D项目,实现矩形自动旋转的效果,并分别在WIndows和Android中运行。
2024-09-21 11:02:35
1740
Android Mars Xlog 支持自定义格式存储.zip
2020-02-18
Android CameraX Demo : 实现预览/拍照/录制视频/图片分析/对焦/切换摄像头等操作
2022-07-04
Android ijkPlayer so库,支持RTSP
2022-06-15
ConstraintLayout Demo
2020-07-15
使用DiffUtil高效更新Recyclerview
2016-09-05
Android 测试机选购.xls
2020-03-23
Flutter与Android Native原生进行混合开发,相互跳转,进行通信_示例Demo
2021-11-18
Android Mars XLog Demo示例.zip
2020-02-18
Android 微信扫码库 使用Demo
2021-07-29
Android 2019年7月最新版本反编译工具_apktool_2.4.0_dex2jar-2.0_jd-gui-windows-1.6.1.zip
2019-07-17
Android 手动编译APK-代码资源下载
2020-07-07
Paint的使用,Shader渲染器的使用
2019-03-28
ffmpeg_2.6.9相关数据
2018-10-20
Android Fragment错误使用的Demo
2020-04-12
freevideotogif.zip
2019-12-20
Retrofit2.0和RxJava2获取天气的Demo
2017-09-04
Android 使用OpenGL调用Camera实现滤镜效果 Demo
2025-02-16
Android 音频焦点获取Demo
2025-02-16
Android 基于 OpenCV+YOLOv8+NCNN 实现人像分割
2023-10-07
Android 实现椭圆形中心放射性渐变绘制 - 自定义View
2023-09-21
Android Camera1 Demo - 实现预览、拍照、录制视频功能
2023-09-15
Android和Windows下,使用 OpenCV 4.8 实现人脸识别 示例 Demo
2023-08-09
Tabby Terminal - 1.0.197-setup-x64.exe - widnows 64位的安装包
2023-08-19
Android Studio中,将两个项目合并到一个项目中
2023-08-02
OpenCV-4.8.0 打包下载,包括Windows和Android下的包
2023-07-25
Android使用GlSurfaceView和OpenGL绘制三角形 Demo
2023-07-05
Android Camera2 Demo - 实现相机预览、拍照、录制视频功能
2023-06-28
Android 双屏异显(Presentation) 开发示例Demo
2023-06-22
Android中加载一张大图示例Demo
2023-06-22
Android 内置RTSP/RTMP服务器,实现局域网内视频推流与播放 Demo
2023-04-26
Android IjkPlayer 播放RTSP/RTMP视频流 Demo
2022-11-01
Compose 和 Android 传统View 互相调用 示例 Demo
2022-12-19
ViewBinding与Kotlin委托结合使用,去除setContentView,原理伪代码
2022-09-07
Android FFmpeg 编译后的so文件,包含32位和64位so
2022-08-18
Android UVC USBCamera投屏Demo,实现将手机上的画面和声音通过视频线投屏到Android车机
2022-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅