- 博客(919)
- 收藏
- 关注
原创 写在前面
课程参考资料Android的学习是一个有趣而辛苦的过程,以下提供一些学习参考资料:Android参考资料Google Android官方资料: https://developer.android.com/index.html (cn网站:https://developer.android.google.cn/develop/index.html)CSDN关于Android的知识...
2016-12-19 09:50:52
2749
原创 揭秘Android性能优化:从卡顿到流畅
我们将剖析 Android 14 带来的追踪技术革命,并通过一个源自真实项目的、复杂的 UI 列表滚动卡顿案例,手把手演示如何定位并根治深层次的性能瓶颈,最终将“感觉”转化为可量化、可复现、可解决的数据指标。优化过程中的权衡与决策:在引入异步加载后,我们遇到了新的问题——“数据冲刷”(Data Flooding):快速滚动时,后台任务堆积,当它们完成后可能更新已经滚出屏幕的视图,造成逻辑错乱和数据浪费。同时,针对不同的视图类型,设置独立的 `RecyclerView` 视图缓存池,提高视图复用命中率。
2026-01-30 10:20:59
697
原创 Android+AI技术融合
Android端侧AI技术的发展正在开启移动应用开发的新纪元。通过TensorFlow Lite的性能优化、端侧大模型的普及、多模态识别的增强以及MediaPipe等工具的成熟,开发者现在能够在移动设备上构建前所未有的智能体验。然而,技术的进步也带来了新的挑战:如何在有限的资源下实现最佳性能,如何在保护隐私的同时提供智能服务,如何在碎片化的Android生态中保证一致的用户体验。随着硬件能力的持续提升和算法的不断优化,我们有理由相信,未来的Android应用将更加智能、更加个性化、更加高效。
2026-01-30 10:13:43
620
原创 Coroutines协程在Android中的简易应用与解析:替代传统多线程的优秀方案
现如今,随着项目开发的规模逐渐增大,项目在性能上也会愈发接近瓶颈,在解决性能方面的问题时,常常会考虑两种方案:一种常常是以算法为导向的算法复杂度的性能优化;另一种常常是以提升系统并发程度为导向为导向的系统并发程度的优化。而后者是在项目开发中最为常见的。在Android开发中,初具规模的项目一般都绕不开异步编程——网络请求、文件IO、数据库操作等耗时任务必须脱离主线程,否则会导致ANR。
2026-01-30 10:05:41
558
原创 探索 Flow 在 Android 开发中的应用
Flow 可以通俗理解为 可暂停的数据流管道 它能像水管输送水一样,持续发射数据(比如网络请求结果、数据库变化、用户输入),而收集者(比如 UI)就像水龙头,只有打开(开始收集),数据流才会流动(发射数据),关闭则停止,这就是 Flow 的核心特性:冷流(Cold Stream)。Flow 提供了很多实用的操作符,用于过滤、转换、限制数据流,初学者先掌握 3 个最常用的:filter(过滤)、map(转换)、debounce(防抖),用链式调用组合使用。
2026-01-29 20:03:38
562
原创 手机、平板、车载协同开发趋势
简单来说,就是让不同的设备能够"团队合作"。这种无缝切换的体验,背后需要强大的技术支撑。现在我们每天都在使用各种智能设备——手机看新闻,平板记笔记,开车时用车载系统导航听音乐。本文将探讨手机、平板、车载设备协同开发的技术趋势。手机、平板、车载协同开发正在重塑移动应用的开发模式。从技术实现来看,统一的开发框架、可靠的数据同步机制和安全的设备连接是核心要素。随着5G、AI等技术的发展,设备间的协同会更加智能和无缝。手机、平板、车载协同开发趋势:多屏时代的无缝体验。React Native示例。
2026-01-16 14:51:46
890
原创 Hilt 依赖注入:为何能成为Android开发主流新技术?
相较于Dagger2,Hilt的低学习成本和少模板代码,能显著提升开发效率,尤其适合组件化/模块化项目。它并非完全重构Dagger2,而是在Dagger2的基础上,通过“约定大于配置”的设计理念,简化了Android场景下的DI配置流程,同时解决了传统Dagger2在Android开发中的诸多痛点。核心结论:Hilt并非颠覆Dagger2,而是对Dagger2在Android场景下的“二次封装与优化”,保留了Dagger2编译期注入、类型安全的优势,同时降低了使用门槛,这是它能快速成为主流的核心前提。
2026-01-16 14:41:21
639
原创 现代 Android 后台应用读取剪贴板最佳实践
实现了通过 MethodChannel 处理分享功能的完整方案,解决了冷热启动数据丢失、引擎未就绪等核心痛点。此问题是博主的一个开源项目PocketMind中遇到的挑战,由于AI训练的语料有问题,所以最终花了一番功夫解决了这个难题。接下来将注重于如何从系统下拉菜单(Quick Settings Tile)直接将剪切板内容保存到 Flutter 应用中。这意味着传统的"启动后台 Service 读取剪贴板"方案已完全失效。,因此 Android 系统会认为它们是"后台操作"。
2026-01-16 14:24:25
976
原创 Android开发入门:从布局到组件的实战指南
在移动应用开发领域,Android凭借其开放性和庞大的用户基础,始终是开发者不可忽视的平台。今天,我将分享一些关于Android核心组件的学习心得,特别是布局、自适应设计以及常见UI组件(如菜单和按钮)的使用技巧。一、Android布局系统:构建UI的基石1. 常用布局类型在res/values/dimens.xml中定义:2. 限定符的使用。
2026-01-16 14:07:15
968
原创 关于近期安卓开发心得
长期维护成本则与代码质量、模块化与架构决策息息相关。解决这类问题不仅需要微观层面的优化(图片压缩、异步处理、避免主线程阻塞、使用合适的数据结构),更要在设计层面做出权衡:哪些交互是用户真正关心的、哪些效果可以延迟加载或降级体验、核心路径如何保证稳定与流畅。要化解这一问题,需要把工程实践制度化:建立统一的代码规范、模板化项目结构、强制代码评审流程、把重要知识点纳入团队内部培训与技术分享,并采用轻量级但持续的文档策略(例如可执行的 README、示例工程、以及自动生成的接口文档)。用户体验与性能权衡中的难题。
2026-01-16 13:55:49
630
原创 RecyclerView 进阶实践:ListAdapter + DiffUtil 实现增量刷新(含按钮增删改打乱与常见问题排查)
在移动应用开发中,“列表界面”几乎无处不在:课程清单、商品列表、聊天记录、消息通知……在学习《移动软件开发》过程中,我第一次接触到 RecyclerView。它相比早期的 ListView 更灵活,能够通过 ViewHolder 复用提高性能,并且可以扩展出网格、瀑布流等多种布局。为了让这篇课程博客更有“技术特点”和“实践价值”,我在完成 RecyclerView 基础展示后,继续学习并实践了 ListAdapter + DiffUtil:
2026-01-16 13:53:42
843
原创 Kt-Notepad 2.0 开发实录:从传统 Android 到 Jetpack Compose 的现代化重构
我们将深入探讨 **单向数据流架构的设计**、**Android 分区存储(Scoped Storage)的攻坚**、**遗留数据的无缝迁移策略**以及**桌面级键盘快捷键的支持**。所有的用户操作(点击、输入)都被视为 **Action**,而所有的界面更新都主要依赖于 **State** 的快照。Kt-Notepad 2.0 的重构不仅仅是技术的堆砌,更是对 **Clean Architecture**、**Modern Android Development (MAD)** 理念的一次完整实践。
2026-01-16 13:40:46
1001
原创 探索Android+AI:端侧大模型普及下的技术革命与应用浪潮
前两年问‘AI能做什么’,答案是‘打开App问ChatGPT’;现在问‘Android手机上的AI能做什么’,答案是‘没网也能实时翻译、修图、写文案,甚至帮你整理会议纪要’。这背后的关键变化,是大模型从‘云端’走到了‘端侧’——当Android遇上本地运行的大模型,手机不再是‘联网终端’,而是有了‘独立思考的大脑’。
2026-01-15 23:46:14
995
原创 用 Rust 重构 Android 底层:安全、性能与未来的交汇点
引言长期以来,Android 系统底层主要由 C/C++ 编写,虽然性能优异,但内存安全问题频发——缓冲区溢出、空指针解引用、Use-After-Free 等漏洞屡见不鲜。为应对这一挑战,Google 自 2022 年起逐步在 Android 系统中引入 Rust 语言,用于替代部分高风险的 C/C++ 模块。这不仅是编程语言的更替,更是 Android 安全架构的一次重大演进。本文将深入探讨 Rust 在 Android 中的应用现状、技术优势、集成方式,并附上一个完整的 Rust + NDK 开发示例
2026-01-15 23:28:24
747
原创 解析 Android Jetpack Core-Animation 与 SeekableAnimatedVectorDrawable:性能、差异与未来
Jetpack Core-Animation不是一个直接面向 UI 的动画 API(如 Compose Animation 或 ObjectAnimator),它是一个现代化的、基于 Kotlin 的底层动画引擎,可以将其理解为一个强大的“动画发动机”。我们有理由相信,随着库的成熟,它将成为 Compose 动画乃至整个 Android 平台的底层基石,与更多的 Jetpack 组件深度集成,共同塑造 Android UI 的未来。在数字产品的世界里,优秀的动画不仅仅是装饰,它是用户体验的灵魂。
2026-01-15 22:55:27
606
原创 探索 Flow 在 Android 开发中的应用
对于初学者而言,Flow 的核心价值在于 “用简单的方式处理复杂的异步数据流”—— 无需记忆复杂的框架 API,仅通过 “创建 - 处理 - 收集” 三步,就能解决用户输入、网络请求、状态管理等常见场景。Flow 作为 Kotlin 协程生态的核心,是 Android 开发的 “必备技能”。掌握它后,你会发现异步数据处理变得简单、直观,后续学习 Jetpack 组件(如 Room、ViewModel)时也能更轻松地实现 “数据驱动 UI”。作者:陈晟探索 Flow 在 Android 开发中的应用。
2026-01-04 17:47:10
1089
原创 Android 新开发模式深度实践:Kotlin + 协程 + Flow+MVVM
手动创建的CoroutineScope(Dispatchers.IO)无生命周期关联,即使 ViewModel 销毁,协程仍在 IO 线程执行,且协程内部若引用了 ViewModel 的属性(如uiState),会导致 ViewModel 无法被 GC 回收。Flow 是 Kotlin 提供的响应式编程框架,用于处理 “连续的异步数据流”(如网络请求结果、数据库数据变化、UI 输入变化等),核心是 “数据发射 - 中间处理 - 接收响应” 的流程。如何解决 Flow 的 “背压” 导致的数据丢失?
2026-01-04 17:45:02
713
原创 Android Jetpack核心组件协同实战:Navigation 3.X+Lifecycle+Flow+Hilt的架构革新
Jetpack核心组件的协同开发,本质是通过“标准化组件+规范化流程”解决Android开发的复杂性。其核心价值在于:解耦彻底,各组件职责单一;开发高效,减少模板代码;稳定可靠,框架兜底生命周期和内存问题;可扩展性强,适配多终端、跨平台、AI等未来趋势。新项目直接采用“Navigation 3.X+Hilt+ViewModel+Flow”核心架构,搭配Compose提升开发效率;旧项目迁移采用“渐进式替换”:先替换ViewModel和Repository层,再迁移UI和导航层,避免一次性重构风险;
2026-01-04 17:41:07
1077
原创 Coroutines协程在Android中的应用与详解:替代传统多线程的优秀方案
Kotlin协程(Coroutines)是Kotlin 语言提供的语言级异步编程方案,也是Google官方推荐的Android异步编程核心技术。它并非替代线程,而是对线程的 “轻量级封装与优化”,旨在解决传统多线程(Thread/Handler)、回调式异步带来的可读性差、资源开销大、生命周期管理复杂等痛点,让开发者以 “同步代码的写法实现异步逻辑”。轻量级:数万个协程无性能压力,适配高并发场景;简洁:同步写法实现异步,告别回调地狱;安全:结构化并发自动管理生命周期,杜绝内存泄漏;
2026-01-04 16:24:50
748
原创 Android + AI 端侧智能深度解析:从系统架构到端侧大模型实践
端侧 AI 并不是简单地“给应用加一点智能”,而是一次涉及系统架构、硬件能力和工程实践的深度变革。随着端侧大模型和实时感知能力的成熟,Android 正逐步演变为一个真正意义上的 AI Runtime。系统机制:生命周期、进程管理、硬件抽象层硬件特性:不同芯片的 AI 加速能力、内存架构、功耗特性AI 工程:模型优化、推理引擎、数据流水线设计用户体验:实时性、流畅度、隐私保护的综合平衡这,正清晰地勾勒出 Android 技术进化与生态发展的下一个前沿阵地。
2026-01-04 16:19:49
1033
原创 告别XML:用Jetpack Compose开启Android声明式UI新时代
正是这些痛点的长期存在,催生了Jetpack Compose的诞生——它通过声明式UI范式状态驱动更新和完全Kotlin化的DSL,从根本上解决了上述问题。在Compose中,UI是代码,代码也是UI,二者终于实现了真正的统一。(2)Jetpack Compose的出现:一次开发思维的革新①从“命令式”到“声明式”的范式转移1:传统Android开发的“命令式”思维命令式UI的核心问题:开发者必须关注每一个细节步骤,告诉系统“如何做”。2:Jetpack Compose的“声明式”思维。
2026-01-04 16:18:11
861
原创 端侧大模型(On-device LLM)开始普及:Android 端侧推理的技术细节分析
端侧大模型的普及,并不是单一技术突破的结果,而是模型工程、推理框架和硬件能力协同演进的产物。从 Android 平台的发展趋势来看,On-device LLM 正在逐步成为操作系统层面的智能基础设施,为移动端应用提供低延迟、隐私友好的语言理解能力。这也意味着,未来 Android 开发者将不可避免地与端侧 AI 技术产生更深层次的交集。作者:林周淦端侧大模型(On-device LLM)开始普及:Android 端侧推理的技术细节分析。
2026-01-04 16:10:38
651
原创 Android Studio接入Jetpack Compose UI
在实际项目中,AI 提供的是加速器而非替代者:生成的 Compose UI 和 Kotlin 代码需要人工 review,关注性能、可维护性和设计规范。为避免依赖过重,应保留手写核心逻辑与关键架构设计。对涉及隐私和安全的业务代码,要避免向云端模型提交敏感数据,可通过局部选择、脱敏示例或只对抽象逻辑请求建议等方式降低风险。
2026-01-03 17:35:03
778
原创 在安卓中使用Firebase ML Kit实现中文OCR识别功能
Firebase是由Google提供的实时全方位的移动后端云服务平台,这是一个主要功能都基于云端的服务平台,其提供多项远程功能如:远程数据库、认证、云存储、云函数;同样也提供一些本地功能如:本地数据库,性能检测,崩溃策略。本文提到的MLkit也是其提供的本地客户端功能之一ML Kit是谷歌官方提供的一款机器学习 SDK,同样的也提供了“设备端”和“云端”两种API。它包含了一系列预训练模型,提供诸如文字/人脸/条码识别、图像标注、智能回复等功能,帮助开发者在移动端上快速添加机器学习功能。
2026-01-03 17:29:19
673
原创 用 Rust 重构 Android 底层:安全、性能与未来的交汇点
内存安全零成本抽象:通过所有权(Ownership)、借用(Borrowing)和生命周期(Lifetime)机制,在编译期杜绝大多数内存错误;无垃圾回收(GC):适合嵌入式与实时系统;与 C ABI 兼容:可无缝调用现有 C/C++ 代码,便于渐进式迁移。Google 官方数据显示,在 Android 开源项目(AOSP)中,70% 以上的高危安全漏洞源于内存安全问题。而 Rust 能从根本上消除这类问题,因此成为理想替代方案。Rust 不仅是一种语言,更是一种安全哲学。
2026-01-03 17:26:28
849
原创 Jetpack响应式全家桶深度整合实践:构建高性能本地数据(新闻管理)应用
通过本次课程实践,我完整掌握了Jetpack响应式全家桶的整合逻辑,核心收获有三:一是理解了各组件底层原理,摆脱单纯API调用的局限;二是解决了多个实战深坑,积累了响应式开发的实际经验;三是探索了技术组合创新,提升开发效率与应用性能。这套技术栈是Android响应式开发的主流方案,可扩展至网络请求、跨端通信等场景。后续将持续关注Jetpack生态更新,深入学习Compose Multiplatform、Room JSON原生支持等新技术,提升移动开发能力。
2026-01-03 17:21:47
1009
原创 Compose 状态管理避坑指南:remember 和 ViewModel 到底怎么选
然而,面对多元化的状态管理方案,我们在实际应用中往往面临选择困境:比如基于 remember的状态管理虽然简洁,但在某些情境下容易出现状态失效的现象;本文主要描述的是,系统分析 remember与 ViewModel在状态管理层面的差异,并提供一套清晰的决策框架,以帮助开发者在适应Compose 应用中更复杂的各种状态管理挑战。作为业务逻辑与UI的桥梁,负责管理屏幕级状态和数据。原理:viewModel() 是 Compose 提供的作用域感知工厂函数,必须通过它获取,而非 MyViewModel()。
2026-01-03 17:19:09
1029
原创 138-徐国梁-blog
作为一名深耕Java后端且会前端开发的全栈学生开发者,我习惯了Spring Boot的开发方式,也能熟练使用Vue和React。这学期课程要求学习Android开发,本以为是“误闯天家”,会很麻烦,还得从零学新语言。实际发现核心开发语言居然是Java——当然更推荐kotlin。这份意外之喜让我瞬间来了兴致。不过Android开发虽沿用Java,但其开发模式、核心关注点和我熟的后端接口开发、前端页面构建完全是两码事。
2026-01-03 17:16:15
613
原创 Jetpack Compose + ViewModel:实践现代化Android计数器
修改状态对象的.value–> Compose 检测到状态变化 --> 触发受影响的 Composable 函数重组(Recomposition) --> UI 自动更新。Compose以状态驱动界面更新,没有了XML繁琐的操作,大幅提升开发效率。ViewModel则实现数据与UI生命周期解耦,确保屏幕旋转等配置更改时状态持久不丢失。两者结合形成单向数据流,逻辑更清晰、测试更简单、维护更便捷。这种组合不仅代码量减少50%以上,还提供了实时预览、类型安全等现代开发体验。作者:张槿俞。
2026-01-03 17:12:58
646
原创 基于 Room + Kotlin Flow 的 Android 离线数据同步
在开发笔记类 App 的过程中,离线可用、联网自动同步是用户诉求之一。基于这个需求,我们实现了一套以本地数据库为唯一数据源为核心的离线优先数据同步机制,核心依赖 Room 和 Kotlin Flow,配合 SyncState 状态更新,实现断网待同步,联网同步的数据存储情形。本项目基于 Room + Kotlin Flow 构建的离线优先数据同步机制,通过本地数据库为核心 ,同步状态机 ,后台同步调度更新状态的设计,解决了断网可用 + 联网同步的需求。Room 简化了数据库操作;
2026-01-03 16:39:54
619
原创 Android架构演进与MVVM实践
MVVM搭配Jetpack组件,已成为现代Android开发的事实标准架构。它不仅仅是代码的组织方式,更代表了一种响应式、声明式的UI开发范式。随着Jetpack Compose的普及,这种范式得到了进一步的强化——Compose函数本身就是对ViewModel状态的直接反应,使得MVVM架构变得更加自然和强大。从MVC到MVP再到MVVM,Android架构的演进史就是一部解耦与复用的进化史。掌握MVVM,意味着掌握了构建健壮、可测试、可维护的现代化Android应用的核心能力。
2026-01-03 16:35:18
966
原创 从XML“缠毛线”到Compose“搭积木”
XML时代,我们像是流水线上的装配工,必须亲自把每个螺丝(视图)拧到指定位置(父布局),并记录下每个零件的编号(id)。当然,我明白,对于已有的庞大项目,XML依然是基石。毕竟,好的工具,不应该成为我们和创意之间的那堵墙,而应该是通往它的,最舒服的那座桥。所以,如果你也在安卓UI的入门阶段,被XML绕得有点头晕,别犹豫,直接打开Android Studio,新建一个Compose项目试试。只不过,我给它戴了顶。
2026-01-03 16:25:49
531
原创 Android Studio 综合实验设计与实现
为了实现更灵活的界面效果,实验中还采用了自定义对话框的方式。通过单独定义对话框布局文件,并在创建对话框时加载该布局,使对话框内容不再局限于简单文本,而是可以包含多个控件。这种方式在实际开发中应用较为广泛,能够满足更加复杂的交互需求。菜单功能通过在资源文件中定义菜单项完成,这样可以将菜单结构与代码逻辑分离,增强代码的可读性。Activity 在创建时加载菜单资源,从而在界面右上角显示菜单按钮。本次实验将多个 Android 常见功能进行整合,实现了一个结构完整的示例应用。
2026-01-02 23:41:13
600
原创 Jetpack Compose 与 Android UI 架构演进
使用统一代码结构支持多种屏幕形态布局逻辑集中,界面层级更加清晰降低多设备适配带来的维护成本综合以上分析可以看出,Jetpack Compose 并非对传统 UI 技术的简单替换,而是 Android UI 构建方式在长期实践基础上的一次重要演进。其声明式 UI 模型通过强化界面与状态之间的对应关系,在一定程度上缓解了传统 View 体系在状态管理和多设备适配方面的复杂性问题。
2026-01-02 23:37:12
555
原创 探索Android+AI:端侧大模型普及下的技术革命与应用浪潮
新增案例:零售行业,步步高超市的Android智能收银设备,端侧模型本地识别商品条形码、称重数据,同时分析购物车商品关联(如买面包的用户常买牛奶),实时推送优惠券,结算速度提升30%;系统级效率提升:Android 15的“AI应用启动优化”,端侧模型学习你的使用习惯,预判你要打开的App,提前加载,启动速度提升20%;新增案例:零售行业,步步高超市的Android智能收银设备,端侧模型本地识别商品条形码、称重数据,同时分析购物车商品关联(如买面包的用户常买牛奶),实时推送优惠券,结算速度提升30%;
2026-01-02 23:35:56
896
原创 Android 实验实战:NotePad 记事本应用功能扩展全解析(含 UI 美化 + 实用功能升级)
开源项目的优势是架构清晰,适合在此基础上进行功能扩展,但原生 UI 较为简陋,部分功能(如搜索、分类)缺失,正好作为本次实验的优化方向。从创新性来看,将便签悬浮窗与传统记事本结合,实现了 “快速记录” 的场景需求,属于成熟技术的新应用,符合博客评分标准中 “创新性强” 的要求。,悬浮窗功能涉及 Android 系统权限和窗口管理机制,属于较复杂的技术实践;从创新性来看,将便签悬浮窗与传统记事本结合,实现了 “快速记录” 的场景需求,属于成熟技术的新应用,符合博客评分标准中 “创新性强” 的要求。
2026-01-02 23:31:47
821
原创 使用Jetpack Compose创建简单的Android界面布局
Jetpack Compose 提供了丰富的基础组件,覆盖了 “展示内容、交互操作、布局容器” 等场景,以下是最常用的核心组件的代码示例和参数介绍:一、Text:文本展示组件(替代传统TextView)Text(",text:文本内容;modifier:可选,控制组件的布局、样式、交互;:控制文字的颜色、大小、粗细;:控制文本行数和超出部分的显示方式;textAlign:文字在组件内的对齐方式。二、Column/Row:线性布局组件(替代传统 LinearLayout)Column(垂直排列)和。
2026-01-02 23:27:01
610
原创 TFLite——从模型训练到部署,实现Android图像分类功能
由此我们实现了TFLite——从训练一个超轻量化模型开始,到部署到Android中,实现了一个图像分类功能,作为TFLite的入门学习,这有助于加深Android开发者使用TFLite在移动端实现AI功能的理解。作者:练泽宇TFLite——从模型训练到部署,实现Android图像分类功能。
2026-01-02 23:25:06
1078
原创 Android Room持久化库详解-基础使用
作为 Jetpack 生态的核心成员,Google 推出的 Room 持久化库,正是为了彻底解决这些痛点——它在 SQLite 之上提供了一层优雅封装,既保留了原生的高性能,又具备了 ORM 框架的便捷性。Room作为Android官方的ORM框架,用注解简化了SQLite的使用,同时保留了原生性能,是本地结构化存储的最优解。本文通过“原理+实战”的方式,带大家实现了User表的CRUD,核心是掌握 Entity、DAO、Database三个组件的协同工作逻辑。
2026-01-02 23:20:08
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅