- 博客(120)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 Jetpack 内核实战(七):DataStore——替代 SharedPreferences 的现代化存储
本文介绍了 Jetpack DataStore 作为 SharedPreferences 现代化替代方案的核心优势和使用方法。 文章首先分析了 SharedPreferences 的五大痛点:主线程阻塞与 ANR 风险、类型不安全、不支持异步与响应式、无事务保障以及不支持结构化数据。随后对比了 DataStore 的两种实现方案(Preferences DataStore 和 Proto DataStore),并详细讲解了 Preferences DataStore 的核心 API,包括 Key 定义、创建
2026-07-25 10:00:00
298
原创 Jetpack 内核实战(六):Room 进阶——响应式查询、数据库迁移与列表自动刷新
Room 进阶核心讲解,覆盖 LiveData/Flow 响应式查询、Migration 数据库迁移、多表联查 / 搜索 / 分页复杂查询三大模块,结合记事本项目实现列表自动刷新与版本无损迁移,提供企业级落地代码与高频避坑方案。
2026-07-22 09:33:27
316
原创 【Jetpack 内核实战(5)】:Room 入门——实体 / DAO / 数据库搭建与增删改查
本文介绍了Android开发中如何使用Room数据库框架来解决原生SQLite的痛点,并详细讲解了Room的三大核心组件(Entity、DAO、Database)的使用方法。 文章首先分析了原生SQLite存在的四大痛点:样板代码多、无编译时校验、线程安全问题以及缺乏响应式支持。随后介绍了Room的对应优势:注解式开发、编译时SQL校验、协程/LiveData原生支持和线程安全封装。 在实现部分,文章详细讲解了: 如何配置Room的依赖项 使用@Entity定义实体类及相关配置选项 通过@Dao接口实现增删
2026-07-20 13:35:06
342
原创 【Jetpack 内核实战(四)】:协程架构——ViewModelScope 与 Repository 分层设计
本文介绍了Android开发中协程架构与ViewModelScope、Repository分层设计的关键概念。首先讲解了Google官方推荐的UI-Domain-Data三层架构,强调单向依赖和数据流原则。然后分析了ViewModel的职责边界,特别是避免内存泄漏的注意事项。接着深入探讨了协程的优势和viewModelScope的核心特性。最后重点阐述了Repository模式的设计理念和单例模式的必要性,为后续Room数据库和网络请求接入打下架构基础。文章通过对比表格清晰展示了各层级职责和最佳实践,帮助开
2026-07-17 10:00:00
311
原创 【Jetpack 内核实战 03】:LiveData——响应式数据通信与粘性事件解决方案
详解 LiveData 响应式通信核心原理,覆盖 MutableLiveData、MediatorLiveData、Transformations 全场景,重点攻克粘性事件、数据倒灌痛点,提供 SingleLiveEvent 企业级解决方案,附计数器、表单校验等完整可运行代码。
2026-07-14 14:56:46
355
原创 【Jetpack 内核实战 02】ViewModel:生命周期管理与数据持久化核心实战
本文从源码视角深度拆解 ViewModel 核心机制,覆盖生命周期原理、ViewModelStore 底层实现、带参 Factory 封装、Fragment 间数据共享、AndroidViewModel 选型等核心内容,全程地道 Kotlin 写法,配套记事本项目预集成代码与高频避坑指南。
2026-07-05 10:30:00
527
原创 【Jetpack 内核实战 01】开篇:Jetpack 组件全家桶核心逻辑与专栏完整规划
本文是《Jetpack内核实战》专栏的开篇,主要介绍了Jetpack架构组件的核心价值与学习规划。文章首先分析了传统Android开发在生命周期管理、内存泄漏、代码耦合和数据持久化等方面的痛点,引出Jetpack架构组件的必要性。随后详细介绍了本专栏重点讲解的四大核心组件:ViewModel(UI数据管理)、LiveData(响应式数据通信)、Room(数据库抽象层)和DataStore(现代化轻量存储),并展示了最终的记事本实战项目架构。 专栏共包含12篇文章,采用"原理→组件→整合→优化"的学习路径,每
2026-07-03 15:18:12
526
原创 第 12 篇|项目整合与打包发布 —— 从 Demo 到可安装 APK 的完整收官指南
Android 零基础系列收官篇,整合记事本、天气预报、设置等模块打造生活百宝箱 App,详解 BottomNavigationView 项目架构、代码混淆规则、Release 签名生成与 Gradle 自动签名配置,附多渠道打包基础与进阶学习路线图,手把手把 Demo 变成可安装 APK。
2026-07-02 09:42:10
320
原创 第 11 篇|常用 View 组件大阅兵与自定义 View 初体验
Android 常用控件 + 自定义 View 实战,详解 EditText/CheckBox/SeekBar 等核心控件,配合 include/merge/ViewStub 布局优化与触摸事件入门,手写圆形进度条并完成闹钟设置界面综合案例,零基础也能写出漂亮 UI。
2026-07-01 14:47:49
184
原创 第 10 篇|权限处理与相机相册调用 —— 打通系统功能壁垒
Android 运行时权限 + 相机相册实战,详解权限申请标准流程与 ActivityResultContracts 简化方案,全版本适配分区存储与 FileProvider,附个人头像设置完整案例,实现拍照/选图获取原图、旋转校正与圆形显示,新手避坑必读。
2026-06-18 10:53:38
321
原创 第 9 篇|网络请求基础 —— 从 HttpURLConnection 到 OkHttp
本文摘要: 本文系统介绍了Android网络请求开发的关键知识,从基础原理到主流框架实践。首先强调了两大开发铁律:禁止主线程联网和必须声明网络权限。接着详细讲解了原生HttpURLConnection的GET/POST实现方式,并指出其繁琐性。重点介绍了OkHttp框架的使用,包括同步/异步请求、POST提交JSON数据、拦截器应用等核心功能,并提供了线程切换的解决方案。文章还特别提醒了Android 9.0+对HTTP明文流量的限制及适配方法。最后介绍了如何通过拦截器实现统一Header管理和全局OkHt
2026-06-17 09:22:17
347
原创 第 8 篇|本地存储技术选型 —— SP 与文件读写
文章摘要 本文系统介绍了Android本地存储技术,重点讲解了轻量级存储方案SharedPreferences的使用方法和三大常见坑点(commit/apply区别、多进程不可靠、潜在ANR风险)。同时详细解析了Android存储目录体系,包括内部存储与外部存储的区别,以及分区存储的适配方案。文章还提供了Kotlin文件读写的简洁方式,并介绍了SP的高性能替代方案MMKV的基本使用。最后通过一个笔记草稿箱案例,将各类存储技术串联应用,帮助开发者掌握Android数据持久化的核心技能。
2026-06-11 09:02:05
376
原创 第 7 篇|列表王者 RecyclerView 完全指南 —— 从新手到灵活运用
RecyclerView 完全指南摘要 本文是一份全面的 RecyclerView 开发指南,从基础到高级应用。首先对比了 RecyclerView 和 ListView 的优劣,重点介绍 RecyclerView 的四级缓存机制带来性能优势。然后通过四步搭建备忘录列表案例:添加依赖、编写 Item 布局、创建 ViewHolder 和 Adapter、配置 LayoutManager。代码示例展示了如何实现点击事件、数据绑定和删除功能。文章强调 RecyclerView 的解耦设计,包括 LayoutMa
2026-06-10 14:41:28
247
原创 专栏导航 | Android NDK开发:从入门到前沿,构建你的Native竞争力
本专栏系统梳理Android Native开发核心知识体系,从JNI交互、CMake构建、多线程同步,到LLDB调试、Crash分析、OpenCV/FFmpeg集成,再到代码安全加固与Rust前沿实战,每一篇均结合真实场景提供可落地的代码方案。无论你是NDK初学者还是希望进阶的开发者,这份导航都能帮你精准定位学习路径,快速构建Native竞争力。
2026-05-01 15:08:43
296
原创 NDK新趋势——Rust与Android深度集成实战
长久以来,Android NDK 开发几乎被 C/C++ 垄断,凭借高性能支撑着底层音视频、加密、图形等核心模块。然而手动内存管理带来的野指针、缓冲区溢出等安全顽疾始终是高悬的达摩克利斯之剑。近年来,Google 官方大力推动 Rust 进入移动端生态,将其纳入 Android 原生开发技术栈。本文将从传统 NDK 痛点切入,深度解析 Rust 的内存安全、高性能与工具链配置,详解 JNI 跨层调用原理,并通过完整的加法实战案例,带你掌握 Rust 替代 C/C++ 编写 Android 原生模块的全流程,
2026-04-30 14:40:45
624
1
原创 第 6 篇|Fragment 碎片化艺术 —— 构建灵活可复用 UI 模块
Fragment 从入门到实战,一文讲透加载方式、生命周期、与 Activity 通信的最佳实践,附「新闻分类界面」完整案例,实现底部导航切换且保留页面状态不重绘,零基础也能快速上手。
2026-04-29 15:41:05
431
原创 实战项目一——实现一个高性能图片滤镜App
本文带你从零构建一个高性能图片滤镜App,完整演示如何通过JNI将Bitmap传入Native层,利用C++直接操作像素缓冲区,实现灰度、怀旧、高斯模糊三种经典滤镜。文章对比了Java与Native实现的耗时,展示6倍以上的性能提升,并针对超大图片分享了降采样、分块处理、多线程及NEON优化的实战技巧。阅读本文,你将掌握NDK图像处理的核心流水线,为视频特效、视觉渲染等进阶场景打下坚实基础。
2026-04-28 13:24:27
383
原创 第 5 篇|Service 与 BroadcastReceiver 实战 —— 后台任务与全局广播
Android 后台开发核心篇,详解 Service 启动/绑定两种模式及主线程限制,BroadcastReceiver 动静态注册与 Android 8.0+ 适配方案。附「定时提醒小助手」完整案例,涵盖前台 Service、自定义广播、通知栏与权限适配,新手直接复用零失败。
2026-04-27 15:55:51
394
原创 100篇,从第一条评论“赞一个,加油”说起
《100篇技术博客的成长之路》摘要:作者回顾了从2017年第一篇博客到2026年完成100篇技术文章的心路历程。最初仅收获一条"赞一个,加油"的评论,如今已积累433位粉丝、近8万阅读量。文章涵盖14个Android开发专栏,其中工具类文章最受欢迎。作者坚持"可落地解决方案"的写作原则,5篇最受欢迎文章都具备直接复用的代码示例。未来将继续聚焦Android全栈实战与进阶方向,包括Kotlin协程、Jetpack组件等专题。这段持续9年的技术写作之旅,见证了从解决自身问
2026-04-24 13:53:44
485
原创 第 4 篇|Activity 生命周期与页面跳转 —— 应用的门面担当
Android 四大组件之首 Activity 详解,一文讲透生命周期回调、显式/隐式 Intent 跳转、putExtra 与 Activity Result API 数据传递,附「登录+主页」双页面实战案例与避坑指南,零基础轻松掌握。
2026-04-24 13:46:25
1012
原创 第 3 篇|Android 项目结构解析与第一个界面 —— Hello, CSDN!
零基础入门 Android 界面开发必读!本文手把手拆解 Android 项目核心目录(AndroidManifest、res/layout、build.gradle),通俗讲解 Context 环境句柄的作用,并通过 ConstraintLayout 拖拽+代码混合开发,带你搭建第一个「Hello, CSDN!」界面。附赠 SDK 路径、HAXM 加速、模拟器创建三大环境避坑指南,以及个人名片综合小案例,新手照做就能把 App 跑起来。
2026-04-23 14:06:06
526
原创 Native代码安全——保护你的核心算法
本文深入剖析移动应用Native层面临的三大安全威胁:动态调试、内存dump与.so文件替换,并系统讲解对应的防护手段。内容涵盖字符串混淆、控制流平坦化、反调试检测等核心技术的实现原理与代码示例,重点介绍Obfuscator-LLVM混淆工具链的集成方法,同时给出基于哈希自校验的完整性保护方案。旨在帮助开发者构建多层防御体系,有效守护核心算法安全。
2026-04-23 10:37:07
634
原创 第 2 篇|Kotlin 进阶 —— 集合、循环与条件表达式
Kotlin集合框架与流程控制摘要(149字) Kotlin集合框架通过不可变/可变分离设计解决了Java集合痛点,提供编译期安全保障。核心优势包括: 明确的可变性控制(listOf/mutableListOf) 深度集成的空安全机制 丰富的高阶函数实现链式调用(filter/map等) 极简的工厂方法初始化集合 完美的Java互操作性 流程控制方面,when表达式替代switch,range表达式简化循环,配合集合操作符实现声明式编程。通过不可变集合优先原则和类型推断,Kotlin能用1行代码完成Java
2026-04-22 10:14:48
469
原创 第 1 篇|Kotlin 基础入门 —— 变量、函数与空安全
本文介绍了Kotlin语言的基础知识,重点包括变量声明、函数编写和空安全机制。文章首先分析了Kotlin作为Android开发首选语言的优势,包括官方支持、语法简洁性和安全性。通过"Hello World"示例展示了基本语法结构,详细讲解了val和var变量的区别及使用场景。在数据类型部分,介绍了Int、Double、Boolean和String四种常用类型,以及字符串模板的便捷用法。最后重点阐述了Kotlin的空安全机制,这是其避免空指针异常的核心特性
2026-04-21 10:24:02
429
原创 集成第三方 C/C++ 库到 Android NDK 项目:OpenCV 与 FFmpeg 实战指南
在 Android 音视频、图像处理等高性能开发领域,Java/Kotlin 的性能瓶颈日益凸显。集成 OpenCV、FFmpeg 等经过数十年优化的 C/C++ 开源库,是提升应用性能、快速实现复杂功能的必经之路。本文从编译原理出发,系统讲解 Android 平台集成第三方 C/C++ 库的完整方法论,通过 OpenCV 预编译库快速集成、FFmpeg 自定义编译与视频解码两个实战案例,深入剖析 CMake 配置、JNI 调用、库依赖管理及 ABI 兼容性等核心问题
2026-04-20 11:14:52
1190
2
原创 Native调试艺术——LLDB、日志与Crash分析
本文聚焦 Android Native 调试核心痛点,从 LLDB 调试器实操、Native 日志打印封装、崩溃解析工具(addr2line/ndk-stack)、Tombstone 文件解读四大维度,搭配可直接复用的代码示例、工具命令和避坑指南,详解 Native 层断点调试、内存监控、崩溃定位全流程。适配 Android Studio Hedgehog+NDK25+,覆盖开发 / 上线全场景,帮 NDK 开发者高效解决空指针、内存越界等疑难问题,快速掌握 Native 调试精髓,提升问题定位效率。
2026-04-17 10:00:00
446
原创 性能优化——让Native代码飞起来
本文介绍了Android开发中优化Native代码(C/C++)性能的两种核心技巧: 使用Direct ByteBuffer实现零拷贝:通过直接在Native堆分配内存,避免Java与Native层间的数据拷贝,性能提升85%,适用于音视频处理等高频数据交互场景。 减少JNI调用次数:通过批量处理数据替代频繁单次调用,将10000次JNI调用合并为1次,显著降低跨层开销。示例展示了如何批量处理像素数组。 两种方法可大幅提升Native代码执行效率,适用于NDK开发、跨平台Native开发等场景,所有示例代码
2026-04-14 09:59:41
594
原创 Native多线程与同步——在C++中安全地使用JNI
本文深入讲解 Android 平台下 C++ 结合 JNI 实现 Native 多线程开发的核心技术,重点剖析 JNIEnv 线程局部性、子线程回调 Java 的全局引用使用、AttachCurrentThread 线程绑定流程,并基于 C++11 的 std::mutex、condition_variable 实现线程安全同步。同时总结死锁、ANR 规避技巧与最佳实践,提供完整可运行工程代码,帮助开发者解决跨线程崩溃、内存泄漏、同步异常等问题,快速掌握安全高效的 JNI 多线程开发方案。
2026-04-11 09:30:00
1011
原创 JNI内存管理——引用类型与泄漏防范
摘要 本文系统介绍了Android NDK开发中JNI内存管理的核心要点,重点分析了三种JNI引用类型的特点及使用规范。局部引用自动回收但需注意循环中的溢出风险;全局引用需手动管理生命周期,是内存泄漏的高发区;弱全局引用不阻止GC回收,适合缓存可重建对象。文章详细讲解了各类引用的创建/释放API及最佳实践,并强调必须严格遵循"创建即释放"原则,同时提供了引用对比表帮助开发者正确选择引用类型。通过规范引用管理和工具检测,可有效预防JNI内存泄漏问题。
2026-04-08 10:13:06
443
原创 大模型落地实践:从零搭建企业级RAG知识库问答系统
本文系统梳理了在企业内部搭建RAG知识库问答系统的完整实践过程。作者对比了微调与RAG的技术选型,详细拆解了文档混合切片策略、混合检索(向量+关键词)与RRF融合算法、防幻觉Prompt设计等核心模块的实现细节。文章还重点剖析了企业级落地中的关键挑战,包括多跳推理的Agent机制、基于标签的行级权限控制等,并分享了评估体系与未来演进方向。本文为希望在保证数据安全与事实准确的前提下,盘活企业内部知识资产的技术团队提供了扎实的工程化参考。
2026-04-03 10:00:00
484
原创 从Copilot到Cursor:AI编程工具如何重塑我的全栈开发工作流
本文结合作者全栈开发实践,深度剖析AI编程工具如何从代码补全进化为结对编程伙伴。文章对比了GitHub Copilot与Cursor的核心差异,详细介绍了基于AI辅助的“需求理解-代码生成-测试验证-重构优化”全流程工作法,涵盖接口定义、Service层生成、单元测试等关键环节。作者进一步探讨了AI对开发者角色与团队协作模式的深刻影响,指出提示词工程与系统设计能力正成为核心技能,并展望AI作为“数字成员”参与软件全生命周期的未来趋势。本文为开发者拥抱AI、重构高效工作流提供了可落地的实践参考。
2026-04-02 11:01:54
529
原创 Native代码与Java的交互艺术——访问字段、调用方法
本文摘要:本文深入讲解JNI开发中Java与Native代码的核心交互技术,包括: 1)字段操作:通过Get/SetFieldID实现Java对象字段读写,强调类型匹配和内存管理 2)方法调用:详解实例方法(CallXxxMethod)和静态方法(CallStaticXxxMethod)的调用流程 3)异常处理:演示JNI层如何检测和处理Java异常 4)性能优化:介绍ID缓存、局部引用管理等关键技巧 5)类型转换:重点说明字符串和数组的特殊处理方式 通过实际代码示例,帮助开发者掌握JNI双向通信的核心能力
2026-04-02 10:37:54
415
原创 CMake从入门到精通——构建脚本详解
本文深入解析 Android NDK 开发中 CMake 构建脚本的编写技巧。对比 CMake 与 ndk-build 优势,详解 add_library、target_link_libraries 等核心命令。涵盖多源文件管理、条件编译及 C++ 标准设置。重点通过实战案例,演示如何集成第三方静态库 (.a) 和动态库 (.so),解决链接错误与 ABI 适配问题。旨在帮助开发者掌握生产级 CMake 脚本编写能力,提升跨平台开发效率。
2026-03-30 15:51:21
498
原创 JNI完全指南——数据类型、函数签名与常见陷阱
JNI是Java与C/C++交互的桥梁,本文系统讲解其核心机制:基本类型与引用类型的映射规则、局部/全局引用管理、方法签名语法(如(ILjava/lang/String;)V),并剖析UnsatisfiedLinkError、类型转换错误、字符串内存泄漏等高频陷阱的根源与解决方案。通过规范命名、签名校验、资源成对释放及跨线程Env处理,可避开90%的JNI坑点。适合NDK开发与性能优化场景,助你快速掌握JNI底层规则,写出稳健的本地代码。
2026-03-29 09:30:00
422
原创 Android NDK开发从入门到实战:解锁应用性能的终极武器
Android NDK开发指南:从入门到实战 摘要:本文全面介绍Android NDK开发技术,涵盖NDK概述、环境搭建、JNI基础、构建系统和实战应用。NDK作为原生开发工具包,允许开发者使用C/C++编写高性能代码,通过JNI与Java/Kotlin交互。文章详细讲解了JNI数据类型映射、函数命名规则和内存管理,对比了ndk-build和CMake两种构建方案,并提供了完整的Android Studio NDK项目创建教程。适用于需要提升应用性能、复用C/C++代码或增强安全性的Android开发者,帮
2026-03-26 08:48:25
542
原创 自定义View组件库的搭建与维护:从混乱到规范的工程化实践
摘要:构建高效UI组件库的工程化实践 本文系统介绍了搭建和维护自定义View组件库的工程化方法。首先提出模块化设计原则,建议采用三层架构(基础层、基础组件层、业务组件层)实现组件复用最大化。在版本管理方面强调遵循SemVer规范,配合私有仓库分发和严格分支策略。其次重点阐述文档自动生成(使用Dokka/DocC等工具)和Demo App搭建的重要性,通过实时同步降低集成门槛。最后详述CI/CD流程的应用,包括代码检查、编译构建、测试验证和文档生成等自动化环节,确保组件库质量和稳定性。这套方法能有效解决UI组
2026-03-23 10:38:37
422
原创 自定义View在复杂业务场景中的实战
本文探讨移动应用开发中复杂业务场景下的自定义View实现技术,重点分析四大典型应用场景:直播礼物动画、地图覆盖物、金融K线图及视频编辑时间轴。文章详细拆解了直播礼物动画的实现方案,包括分层绘制、动画组合、并发管理等核心技术,并提供了Kotlin代码示例展示如何构建支持多种礼物类型、优先级的动画容器。通过分析这些高频业务场景,提炼出可复用的自定义View开发经验,帮助开发者提升复杂UI场景的技术落地能力。
2026-03-21 10:30:00
395
原创 高级渲染技术:OpenGL ES在自定义View中的应用
在Android移动端开发中,常规自定义View依赖Canvas 2D渲染,难以满足复杂3D视觉、高性能实时渲染、动态特效等场景需求。OpenGL ES作为移动端跨平台图形渲染标准,凭借底层硬件加速与可编程渲染管线,成为突破渲染性能瓶颈、实现高级视觉效果的核心技术。本文围绕Android自定义View场景,深度对比主流渲染视图的差异,详解OpenGL ES 2.0/3.0核心语法与Shader编程,拆解3D变换与相机视角的实现逻辑,针对性讲解性能优化方案,最后通过实战开发3D图表组件,完整呈现OpenGL
2026-03-18 16:34:19
487
原创 跨技术栈:在Flutter/Compose中应用自定义View思想
摘要: Android原生自定义View的开发经验可迁移至Flutter和Jetpack Compose,核心思想围绕测量、布局、绘制流程。Flutter通过Widget树实现声明式UI,与原生View的差异在于渲染机制和更新方式,但逻辑相通。Compose通过自定义Layout简化布局控制,支持混合开发模式。混合方案中,Flutter通过PlatformView嵌入原生控件,Compose则与原生View无缝互嵌。开发者需掌握跨技术栈的UI适配与通信机制,实现高效迁移与性能优化。
2026-03-16 10:52:24
472
原创 复杂手势识别与交互动效设计
本文系统讲解了Android平台复杂手势交互的实现方法。首先回顾了GestureDetector基础用法,介绍了如何组合单指和多点触控手势识别器;其次详细讲解了自定义手势识别的实现思路,包括触摸轨迹记录和特征分析;然后阐述了系统拖拽框架的核心组件和使用方法,展示了应用内拖拽的完整实现流程。文章结合代码示例,从基础到进阶,为开发专业级应用中的复杂手势交互提供了实用指导。
2026-03-15 09:45:00
414
本文介绍了一个高效的BaseFragment基类设计,主要解决Android开发中Fragment的常见问题
2026-01-24
详细介绍一个功能完善的多线程下载工具类,它基于线程池和OkHttp实现,支持任务管理、进度回调和SSL证书验证等特性
2026-01-24
分享一个实用的Android BaseActivity基类封装方案 该方案包含状态栏管理、ViewBinding集成、字体控制等核心功能,通过统一的状态栏配置、标准化的初始化流程和简洁的点击事件
2026-01-24
SerialPortLibrary.zip
2019-09-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅