kotlin

传奇开心果编程8 小时前
android·学习·ui·kotlin·android jetpack
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向前言本套教程从第1课从零搭建Compose开始,依次学习基础布局、Modifier修饰器、状态与交互、 remember ‑ rememberSaveable 、副作用Effect、下拉弹窗、MVI架构、性能优化、Navigation导航、SavedStateHandle、项目分包模块化,最后第13课完成简易笔记App实战。 本节课整体复盘整套知识点;梳理高频踩坑清单;给出后续学习路线。
花开路口16 小时前
java·kotlin
线程安全完全指南:从 Java 到 Kotlin,一文吃透并发编程多线程环境下,一行看似无害的 count++ 就可能导致结果出错。这篇文章从「问题根源」出发,系统梳理 Java 和 Kotlin 中的线程安全方案,帮你建立完整的知识体系,而不是零散地记 API。
hai_android16 小时前
android·kotlin·android jetpack
子 View 被压小时,如何向父容器"告状"?——MEASURED_STATE_TOO_SMALL 向上传递机制一句话结论:MEASURED_STATE_TOO_SMALL = 0x01000000,它占用测量结果高 8 位中的最低位,用来标记"子 View 想要的尺寸比父容器给的多"。
怪奇云呼军17 小时前
android·大数据·运维·服务器·网络·人工智能·kotlin
从 ElevenLabs 看工具调用:闪电智能 Voice Agent 的企业集成验收设计把预约改到周五下午,语音 Agent 发出了请求,预约系统返回“已受理”。十几秒后,客户挂断了电话。预约有没有改成功?如果成功了,负责回访的同事能不能在 CRM 里看到新时间?如果没有,谁继续查?
mmsx20 小时前
android·kotlin
Android UI 复用体系:泛型基类、骨架与插槽UI 复用的关键不是抽基类,而是先想清楚哪一层是不变的。当一个 App 迭代到第三年,你会发现最贵的根本不是写新页面,而是"改一个风格要动几十个地方"。弹窗圆角改了,确认框还是方的;状态栏颜色换了,设置页顶栏还是旧的;扫码库要换成厂商能力,结果登录页、设置页、主页的扫码代码散成三份,谁都改不动。这些不是 bug,是"复用粒度"没选对留下的债。
alexhilton1 天前
android·kotlin·android jetpack
生命周期感知的多模块启动模式本文译自「The Android Startup Pattern: A Lifecycle-Aware, Multi-Module Approach」,原文链接medium.com/proandroidd…,由Ehab Elwan发布于2026年8月25日。
hai_android2 天前
android·java·kotlin
LruCache 图片浏览器内存缓存基于 android.util.LruCache 实现的图片浏览器内存缓存,主要特点:新增 maxBitmapBytes 参数,限制单张图片能进入缓存的最大字节数。超过上限的图片会被 put() 直接拒绝,防止一张超大图把整个缓存占满,导致其他图片频繁被淘汰。
mmsx2 天前
android·kotlin
Android 自定义 View 三关:触摸分发、绘制与坐标错位自定义 View 真正的坑,几乎都来自坐标系和事件流没对齐。你写了一个自定义 View,布局里量得好好的尺寸,真机上却对不齐;你做了一个侧滑删除,发现手指一碰,点击和滑动就打架,菜单还和上一行同时开着;你实现了"点输入框外面收起键盘",结果键盘弹起后,明明点在了输入框外,键盘却死活不收。
JMchen2 天前
android·kotlin·canvas
自定义View在复杂业务场景中的实战在移动应用开发中,系统原生View往往难以满足复杂业务场景的个性化需求,自定义View作为实现UI差异化、提升用户体验的核心技术,广泛应用于直播、地图、金融、视频编辑等各类主流App中。不同于基础的自定义View开发,复杂业务场景下的自定义View不仅需要掌握绘制原理、事件分发等核心知识点,更要兼顾性能优化、业务适配、兼容性等关键问题。
hai_android2 天前
android·kotlin·android jetpack
RecyclerView 缓存机制详解一个聊天列表有 100 条消息,屏幕只能显示 8 条。手指向上滑,新消息不断从底部进入屏幕。如果没有缓存,每条新消息都要走两步:
花开路口2 天前
java·kotlin
深入理解 Java/Kotlin 协变与逆变型变(Variance)是泛型编程中最容易让人困惑的概念之一。本文从问题出发,讲清原理,落到实战。直觉上 Cat 是 Animal 的子类,List<Cat> 应该也能赋值给 List<Animal>。但编译器拒绝了——为什么?
mmsx2 天前
android·kotlin·app
Android 一个设备多个 App 抢:跨进程共享服务的架构设计设备的独占性消除不了,进程隔离只是把「竞争」变成「排队」。你手上有一台外接的定位设备,只有一个物理串口或蓝牙连接。UI 主进程要连它收定位,后台同步进程也要读它的实时状态,同厂的另一个 App 还想拿同一份数据。每个进程都说「这是我的」——可硬件只认一个主人。
hai_android2 天前
android·kotlin·android jetpack
深入理解 Java 的四种引用:强引用、软引用、弱引用、虚引用写 Java 时我们每天都在 new 对象,但很少想过一个问题:这个对象什么时候会被 GC 回收? 答案取决于"谁在引用它,以及引用有多强"。JVM 把引用分为四个等级:强引用 > 软引用 > 弱引用 > 虚引用。下面逐个介绍,每讲完一种就给出对应的测试代码,跑一遍印象更深。
ai2work8 天前
kotlin
ch23 综合复刻:从零做一个最小可用版本(capstone)学习目标 读完本章,你应当能够:前置:全书。特别是 ch04(应用骨架)、ch08(Flow)、ch13(JNI)、 ch15(加载)、ch16(推理循环)、ch20(构建) 对应源码 / 文档:
ai2work8 天前
kotlin
ch21 签名、校验与发版学习目标 读完本章,你应当能够:前置:ch20(构建体系) 对应源码 / 文档:⚠️ 安全声明 本章只讲签名机制与命令。真实的密钥库密码、别名密码、密钥文件内容属于机密, 保存在项目根 keystore.properties(已在 .gitignore 中)。 本书任何位置都不会写出真实密码。 你也应当把它们当作"比源码更重要的资产"对待——原因见 21.4。
JMchen8 天前
android·kotlin·canvas
属性动画原理与高级动画实现在Android应用开发中,动画是提升用户体验的重要手段。从早期Android版本提供的补间动画(Tween Animation)和帧动画(Frame Animation),到Android 3.0引入的属性动画(Property Animation),动画框架不断演进,赋予开发者更强大、更灵活的动画控制能力。本文将深入探讨属性动画的原理,并与传统动画进行对比,然后逐步讲解如何自定义插值器与估值器,实现动画的暂停、恢复、反转与组合,最后介绍物理动画(Spring、Fling)的实现,并整合实战案例,构建一
Android打工仔8 天前
android·kotlin
Kotlin 协程源码解析:协程是如何切换线程的?之前我们已经研究过协程的挂起和恢复。当一个协程挂起之后,某个事件发生,例如 delay() 到期、网络请求返回,最终都会调用 Continuation.resume(),让协程继续执行。
ai2work8 天前
kotlin
附录 D 速查索引与阅读指南这个附录解决两个问题另外还有 D.3 阅读指南(路线、节奏、每章前置知识自检)和 D.4 一张"从零到发布"的全景图。
ai2work8 天前
kotlin
ch22 诊断方法论:三个真实事故的根因分析学习目标 读完本章,你应当能够:前置:ch17(模板)、ch18(移窗)、ch08(Flow) 对应源码 / 文档:
Kapaseker8 天前
android·kotlin
你有搞明白 Volatile 什么意思吗?为什么我加了 @Volatile,结果还是不对? 你都没懂 @Volatile 什么意思,能对就有鬼了!