kotlin

mmsx3 小时前
android·kotlin
Android 自定义 View 三关:触摸分发、绘制与坐标错位自定义 View 真正的坑,几乎都来自坐标系和事件流没对齐。你写了一个自定义 View,布局里量得好好的尺寸,真机上却对不齐;你做了一个侧滑删除,发现手指一碰,点击和滑动就打架,菜单还和上一行同时开着;你实现了"点输入框外面收起键盘",结果键盘弹起后,明明点在了输入框外,键盘却死活不收。
JMchen3 小时前
android·kotlin·canvas
自定义View在复杂业务场景中的实战在移动应用开发中,系统原生View往往难以满足复杂业务场景的个性化需求,自定义View作为实现UI差异化、提升用户体验的核心技术,广泛应用于直播、地图、金融、视频编辑等各类主流App中。不同于基础的自定义View开发,复杂业务场景下的自定义View不仅需要掌握绘制原理、事件分发等核心知识点,更要兼顾性能优化、业务适配、兼容性等关键问题。
hai_android3 小时前
android·kotlin·android jetpack
RecyclerView 缓存机制详解一个聊天列表有 100 条消息,屏幕只能显示 8 条。手指向上滑,新消息不断从底部进入屏幕。如果没有缓存,每条新消息都要走两步:
花开路口10 小时前
java·kotlin
深入理解 Java/Kotlin 协变与逆变型变(Variance)是泛型编程中最容易让人困惑的概念之一。本文从问题出发,讲清原理,落到实战。直觉上 Cat 是 Animal 的子类,List<Cat> 应该也能赋值给 List<Animal>。但编译器拒绝了——为什么?
mmsx10 小时前
android·kotlin·app
Android 一个设备多个 App 抢:跨进程共享服务的架构设计设备的独占性消除不了,进程隔离只是把「竞争」变成「排队」。你手上有一台外接的定位设备,只有一个物理串口或蓝牙连接。UI 主进程要连它收定位,后台同步进程也要读它的实时状态,同厂的另一个 App 还想拿同一份数据。每个进程都说「这是我的」——可硬件只认一个主人。
hai_android10 小时前
android·kotlin·android jetpack
深入理解 Java 的四种引用:强引用、软引用、弱引用、虚引用写 Java 时我们每天都在 new 对象,但很少想过一个问题:这个对象什么时候会被 GC 回收? 答案取决于"谁在引用它,以及引用有多强"。JVM 把引用分为四个等级:强引用 > 软引用 > 弱引用 > 虚引用。下面逐个介绍,每讲完一种就给出对应的测试代码,跑一遍印象更深。
ai2work6 天前
kotlin
ch23 综合复刻:从零做一个最小可用版本(capstone)学习目标 读完本章,你应当能够:前置:全书。特别是 ch04(应用骨架)、ch08(Flow)、ch13(JNI)、 ch15(加载)、ch16(推理循环)、ch20(构建) 对应源码 / 文档:
ai2work6 天前
kotlin
ch21 签名、校验与发版学习目标 读完本章,你应当能够:前置:ch20(构建体系) 对应源码 / 文档:⚠️ 安全声明 本章只讲签名机制与命令。真实的密钥库密码、别名密码、密钥文件内容属于机密, 保存在项目根 keystore.properties(已在 .gitignore 中)。 本书任何位置都不会写出真实密码。 你也应当把它们当作"比源码更重要的资产"对待——原因见 21.4。
JMchen6 天前
android·kotlin·canvas
属性动画原理与高级动画实现在Android应用开发中,动画是提升用户体验的重要手段。从早期Android版本提供的补间动画(Tween Animation)和帧动画(Frame Animation),到Android 3.0引入的属性动画(Property Animation),动画框架不断演进,赋予开发者更强大、更灵活的动画控制能力。本文将深入探讨属性动画的原理,并与传统动画进行对比,然后逐步讲解如何自定义插值器与估值器,实现动画的暂停、恢复、反转与组合,最后介绍物理动画(Spring、Fling)的实现,并整合实战案例,构建一
Android打工仔6 天前
android·kotlin
Kotlin 协程源码解析:协程是如何切换线程的?之前我们已经研究过协程的挂起和恢复。当一个协程挂起之后,某个事件发生,例如 delay() 到期、网络请求返回,最终都会调用 Continuation.resume(),让协程继续执行。
ai2work6 天前
kotlin
附录 D 速查索引与阅读指南这个附录解决两个问题另外还有 D.3 阅读指南(路线、节奏、每章前置知识自检)和 D.4 一张"从零到发布"的全景图。
ai2work6 天前
kotlin
ch22 诊断方法论:三个真实事故的根因分析学习目标 读完本章,你应当能够:前置:ch17(模板)、ch18(移窗)、ch08(Flow) 对应源码 / 文档:
Kapaseker6 天前
android·kotlin
你有搞明白 Volatile 什么意思吗?为什么我加了 @Volatile,结果还是不对? 你都没懂 @Volatile 什么意思,能对就有鬼了!
alexhilton7 天前
android·kotlin·android jetpack
藏在设备上的秘密,终究藏不住本文译自「You Can’t Hide Secrets in Your Android App. Here’s What to Do Instead.」,原文链接proandroiddev.com/you-cant-hi…,由Anang Suwasto发布于2026年8月25日。
ai2work7 天前
kotlin
ch15 加载模型与初始化上下文学习目标 读完本章,你应当能够:前置:ch14(GGUF 格式)、ch13(JNI) 对应源码:🧭 读本章前,请先确认
hai_android7 天前
android·java·kotlin
Kotlin / Android 常用函数使用示例手册涵盖:作用域函数(let / run / with / apply / also)、委托(by)、惰性初始化(lazy)、 以及 takeIf、runCatching、use 等高频工具函数。
hai_android7 天前
android·java·kotlin
Android MeasureSpec 详解MeasureSpec 是父容器向子 View 传递尺寸约束的唯一载体:一个 32 位 int,高 2 位是测量模式,低 30 位是测量尺寸。
ai2work7 天前
kotlin
ch11 持久化:DataStore + Gson 多会话学习目标 读完本章,你应当能够:前置:ch09(状态容器)、ch10(收尾) 对应源码(本章会逐个打开):
JMchen7 天前
android·kotlin·canvas
实战案例:实现120fps流畅的渐变进度条✅ 启用硬件加速 (setLayerType(LAYER_TYPE_HARDWARE, null))✅ 避免在onDraw中创建对象
传奇开心果编程8 天前
android·学习·ui·kotlin·android jetpack
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态上一课学习了 if 条件渲染和 LazyColumn 懒加载列表,掌握动态UI与长列表渲染。 我们一直用 remember 保存状态,但它有一个致命缺陷:手机旋转屏幕、系统因内存不足重建Activity时,remember保存的数据会全部丢失,重置为初始值。 本课学习 rememberSaveable ,它能在系统重建(配置变更、进程重启)时自动保存和恢复状态,是真实安卓开发必须掌握的知识点。