自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

.

  • 博客(22)
  • 收藏
  • 关注

原创 Android图片加载框架 Glide全面解析

Glide 是 Android 平台最主流的图片加载与缓存框架,核心目标是:高效、安全、与生命周期强绑定地加载图片。专门解决 Android 系统中图片加载的各种痛点(比如内存溢出、加载慢、缓存管理复杂等),也是 Google 官方推荐的图片加载方案。

2025-12-24 18:21:05 967

原创 Android ContentProvider全面解析

ContentProvider 是 Android 四大组件之一(其余为 Activity、Service、BroadcastReceiver),本质是一套标准化的跨进程数据访问接口。它封装了底层数据存储的逻辑(比如 SQLite 操作、文件读写),对外提供统一的增删改查(CRUD)接口,屏蔽了数据存储的细节 —— 无论底层是 SQLite、文件还是网络数据,调用者都能用相同的方式访问。假设开发 “图书管理” 应用,对外提供图书数据的增删改查接口:步骤 1:封装 SQLite 数据库。

2025-12-22 18:22:32 888

原创 Android Service全面解析

在 Android 四大组件(Activity、Service、BroadcastReceiver、ContentProvider)中,Service 是负责的核心组件。它没有可视化界面,却支撑着音乐播放、文件下载、数据同步等核心场景的实现。

2025-12-22 13:01:06 933

原创 深度解析 Java垃圾回收机制(GC)

在 Java 开发中,内存管理是绕不开的核心话题 —— 而垃圾回收(Garbage Collection,GC)作为 JVM(Java 虚拟机)的 “自动内存管家”,彻底摆脱了 C/C++ 手动管理内存(new/delete)的繁琐与风险。下面我们来聊聊 Java 中的垃圾回收机制。

2025-12-13 12:51:16 1002

原创 从进程到协程【深度解析】——必懂的并发编程

作为开发者,我们每天都在和 “并发” 打交道 ——APP 里的网络请求要异步执行、后台下载文件不能阻塞 UI、多任务同时处理要避免卡顿…… 而理解进程、线程、协程的本质及关系,是搞定客户端并发编程的核心基础。尤其是协程,如今已成为 Android(Kotlin)、iOS(Swift 5.5+)、跨平台(Flutter/Dart)开发的标配,掌握它能让你彻底摆脱 “回调地狱”,写出更简洁、高效的代码。

2025-12-11 12:01:24 1418

原创 Android Broadcast全面解析

广播是安卓系统提供的一种跨组件、跨进程的通信机制。其核心思想是“事件驱动”:当某个事件发生时(如网络断开、电量低、应用安装),事件源(广播发送者)会发送一条广播消息,系统中所有注册了该广播的接收者(BroadcastReceiver)都会收到这条消息,并执行相应的逻辑。系统广播(System Broadcast):系统预定义的广播,由系统组件发送,对应特定系统事件。例如:自定义广播(Custom Broadcast):开发者自行定义Action的广播,用于应用内或跨应用的自定义事件传递。

2025-12-10 17:10:42 1255

原创 客户端开发必懂的计算机网络知识:从协议到实践

对于游戏、直播等场景,可能需要基于TCP/UDP自定义协议:TCP编程:客户端通过Socket建立连接,发送“消息头+消息体”格式的数据,接收时通过消息头解析消息长度,避免粘包。UDP编程:无需建立连接,直接发送数据,但需自己处理丢包(比如通过序列号重传)和无序问题(比如按序列号排序)。对于客户端开发者来说,计算机网络并不是一门“背概念的学科”,而是一套每天都在影响用户体验、稳定性和业务成败的底层能力。

2025-12-09 20:32:56 1241 2

原创 Flutter Riverpod 完整教程:从入门到实战

Flutter状态管理是连接数据与UI的关键环节,Riverpod作为现代化解决方案,通过无上下文依赖、编译期类型安全和灵活的生命周期管理等特性,有效解决了传统方案的痛点。文章系统分析了Riverpod的核心设计理念,包括Provider类型选择、状态监听机制和异步处理能力,并通过计数器、商品列表、购物车等实战案例演示了其应用场景。相比Provider和BLoC等方案,Riverpod在保持简洁的同时提供了更强大的扩展性,特别适合中大型项目的复杂状态管理需求。开发者应根据项目规模选择最适合的状态管理方案,R

2025-12-08 21:43:21 1119

原创 Flutter 中的三棵树(Widget/Element/RenderObject)深度剖析

Widget 树:频繁重建,只负责描述配置;Element 树:按需更新,负责判断是否复用;RenderObject 树:极少重建,负责核心渲染工作。

2025-12-05 08:13:44 1333

原创 StatelessWidget vs StatefulWidget区别与选型指南

在聊组件区别前,先明确一个关键概念 ——状态(State):状态就是组件中 “会变化的数据”,这些数据的改变会导致 UI 重新渲染。比如:计数器的数字、表单输入的文字、网络请求后返回的列表数据、开关的选中状态等,都是典型的 “状态”。:不能持有可变状态,UI 一旦创建就固定不变;:可以持有可变状态,状态变化时会触发 UI 重新渲染。是 “无状态组件”,它的核心特点是不可变(immutable)—— 所有属性(成员变量)都必须是final类型,一旦初始化就不能修改。

2025-12-04 08:32:32 855

原创 Flutter必备Dart基础:Dart快速入门

Dart是由Google开发的一门现代、跨平台的编程语言,它被设计用来构建高性能、可扩展、跨平台的应用程序,尤其在Flutter中扮演核心角色。在跨平台开发热潮下,Dart 语言凭借其与 Flutter 的深度绑定,以及 “简洁高效、全场景适配” 的特性,成为了开发者必备的技能之一。它不仅是 Flutter 的官方编程语言,还能独立用于后端开发、命令行工具编写等场景,是一门 “一学多用” 的潜力语言。

2025-12-03 10:09:53 1193

原创 从多端割裂到一键跨平台:是时候拥抱 Flutter 了

简单来说,Flutter 是谷歌开源的一套跨平台 UI 开发框架,基于 Dart 语言构建,核心特性是自绘 UI 引擎—— 它不依赖系统原生控件,而是通过 Skia 图形库直接在屏幕上绘制界面。不同于传统混合开发框架的 “中间桥接” 模式,也不同于原生开发的 “分端构建” 模式,Flutter 采用 “一次编码,多端一致运行” 的开发思想,你只需编写一套代码,就能无缝适配 iOS、Android、Web、桌面端甚至嵌入式设备,同时还能获得媲美原生应用的性能体验。

2025-12-02 14:31:16 920

原创 深入解析Jetpack Compose原理:声明式UI的底层逻辑

Composable 会生成一棵“UI 描述树”,而不是立即产生 UI。状态通过 State 接口封装,内部持有可观察的数据源,Composable 函数读取状态时会自动与状态建立依赖绑定,框架记录这一关联关系。绑定的状态发生变化时,框架会检测到依赖该状态的 Composable 函数。之后仅重新执行受影响的 Composable 函数及其直接子组件,而非整个UI树。

2025-11-19 11:42:56 810

原创 JetPack Compose组件全解析(二)

上一篇我们聊了 Compose 中最基础的 8 个核心组件,这一篇将聚焦「布局容器、表单交互、页面结构」类高频组件 —— 从线性布局的 Row/Column,到页面骨架 Scaffold,再到表单常用的 Switch、Slider。

2025-11-17 11:07:56 990

原创 安卓View渲染流程解析

摘要:安卓View渲染流程包含测量(Measure)、布局(Layout)、绘制(Draw)三个核心阶段。测量阶段通过MeasureSpec确定View宽高,布局阶段计算View位置,绘制阶段通过Canvas和Paint完成内容渲染。整个过程采用深度优先遍历View树的方式执行,最终由SurfaceFlinger合成显示。开发者可通过减少布局层级、避免过度绘制、优化onDraw等方法来提升渲染性能。理解这一机制对自定义View开发和性能优化至关重要。

2025-11-03 20:09:44 812

原创 Android Activity全面解析

Activity是Android系统提供的。

2025-10-24 16:50:21 1343

原创 安卓开发设计模式(三)——行为型设计模式

行为型设计模式专注于对象间的交互逻辑和职责分配,通过定义对象间的通信方式、行为分配规则,实现行为的复用、解耦与灵活扩展。核心是解决“对象如何协作完成任务”的问题,不改变对象的内部结构,而是优化对象间的协作关系,让系统更具灵活性和可维护性。

2025-10-22 10:32:46 1285

原创 安卓开发设计模式(二)——结构型设计模式

分析:RecyclerView只依赖Adapter接口,不关心数据来源,UserAdapter持有原始数据List<User>,并实现了RecyclerView.Adapter接口,当RecyclerView需要展示数据时,会调用Adapter的方法,Adapter负责把数据转换成View。代理模式的核心就是找个“中间人”帮你做事,这个“中间人”就是代理,它能控制对原始对象的访问。继承抽象装饰器,重写需要增强的方法,在调用父类(原始组件)方法的前/后加上自己的逻辑,不重写的方法沿用抽象装饰器的默认转发。

2025-10-15 20:09:00 782

原创 安卓开发设计模式(一)——创建型设计模式

作为安卓开发者,你是否遇到过这些场景?接手的项目里,一个Activity写了2000行代码,数据请求、UI更新、业务逻辑混在一起,新增一个支付方式时,要修改十几个地方的判断逻辑;测试时发现,改一个小功能却引发了几个无关模块的bug.....其实,这些问题的根源往往是“缺少合理的设计模式”。今天,我们就从实战角度触发,梳理安卓开发中最常用的设计模式。

2025-10-13 18:50:47 949

原创 JetPack Compose组件全解析(一)

下面我们深入解析Compose中最常用的组件,包括Text、Image、Icon、Button、TextField、Dialog和LazyColumn。

2025-09-21 21:30:58 926

原创 从 XML 到 Compose:是时候拥抱安卓声明式 UI 了

简单来说,Jetpack Compose是一个基于kotlin的声明式UI框架,隶属Jetpack中的一员,它完全摒弃了传统的XML布局方式,让你可以用纯代码编写UI。不同于传统View系统的“命令式”(需要手动控制UI从一种状态切换到另一种状态),Compose采用“声明式”思想——你只需要描述UI在不同状态下应该是什么样子,剩下的状态管理和UI更新工作全由框架自动完成,相比于原生Android UI的开发方式,它大幅度提高了原生UI的开发效率。比如一个简单的登录按钮。

2025-09-18 15:51:31 1029

原创 Android Handler机制详解:从入门到实践

Android Handler机制是解决跨线程通信的核心方案,通过"生产者-消费者"模型实现消息有序传递。其核心包括:Message(轻量级数据载体)、MessageQueue(有序消息队列)、Looper(消息循环引擎)和Handler(消息处理器)。工作流程为:子线程通过Handler发送消息到主线程的MessageQueue,Looper循环取出消息并回调对应Handler处理。该机制解决了UI必须在主线程更新的问题,同时需注意内存泄漏(建议使用静态Handler+弱引用)。

2025-09-15 21:20:37 718 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除