kotlin

汪海游龙1 小时前
android·性能优化·kotlin
流式回复结尾的那一下闪:逐帧定位 Compose 聊天列表的三处布局跳动给 chatbase-kmp(一个 KMP 聊天 UI 库)接入 LaTeX 公式渲染后,跑基准测试时发现:AI 回复流式输出到快结束的时候,整条消息会上下闪一下。原速下只看得到「抖了一下」,左边是修复前,右边是修复后:
传奇开心果编程3 小时前
kotlin·移动开发·跨平台·编程语言理论·开发范式·编程框架·声明式ui
【Compose Multiplatform跨端声明式UI实用技术】第20课:CMP跨平台经典示例深度解析前十九课系统覆盖了CMP从环境搭建到部署发布的完整技术栈。本课作为系列的收官之作,将以JetBrains官方示例和社区标杆项目为样本,逐层拆解CMP在真实项目中的架构决策、平台互操作策略与工程化实践。本课内容基于CMP 1.12.1与Kotlin 2.3.20。
敲代码的瓦龙5 小时前
android·kotlin
Jetpack?lifecycle!!!平时写页面的时候,经常要在onStart开启轮询、定位、动画,再去onStop停止。所有逻辑写在 Activity/Fragment 里,代码臃肿,还很容易忘记释放资源引发内存泄漏。
Kapaseker9 小时前
android·kotlin
为什么程序员始终无法彻底解决内存泄漏?各位编程爱好者们,早上好!我最近思考了一个很有意思的问题。我们已经有了 C++ 的 RAII、Java 的 GC、Rust 的所有权机制,甚至还有各种内存分析工具,为什么几十年过去了,程序员仍然无法彻底解决内存泄漏?
汤姆宝库9 小时前
android·开发语言·kotlin
推理工程深拆:调度、量化与投机解码训练完成的那一刻,成本才刚开始发生。推理是把训练投资变现的环节,也是工程优化的主战场:同等能力的单 Token 价格在两三年里下降了两个数量级,而支撑这个数字的不是模型变小,而是服务侧工程的一整套组合拳——调度、显存管理、量化、投机解码。把这些技术拆开看,它们全部服从同一条第一性原理:解码阶段瓶颈在显存带宽而非算力,一切优化都在省字节、摊字节,或用空闲算力换字节。本文先证明这条原理,再看每项技术如何演绎它。
传奇开心果1 天前
android·kotlin
【Compose Multiplatform跨端声明式UI实用技术】第9课:跨平台 ViewModel 与状态架构第8课完成了 Compose 状态管理基础的学习。本课将状态管理从组件级提升到应用架构级:深入跨平台 ViewModel 的依赖配置与初始化器约束,ViewModelStoreOwner 的作用域管理,单一状态对象模式与事件接收模式的设计,状态收集的平台差异处理,以及生产级实践中的依赖注入与测试策略。本课内容基于 CMP 1.12.1、Lifecycle 2.10.0 与 Navigation 3。 文末附有15道配套习题与本课知识点总结。
andyweike1 天前
android·开发语言·kotlin
kotlin dsl library工程怎么配置配置 Kotlin DSL 的 Android Library 工程主要涉及两个核心文件:模块级的 build.gradle.kts 和根目录的配置文件。以下是基于现代 Android 开发标准(AGP 8.x + Gradle 8.x)的配置指南。
high一马平川2 天前
android·java·kotlin
# SystemUI Dagger2 精读 · 第 2 章 @Inject:1200 处构造注入,和 1 处例外一句话结论:@Inject 只做一件事——告诉 Dagger “这个类的这个位置由你来填”。填在构造函数上叫构造注入,填在字段上叫成员注入,两者的时机和约束完全不同。
小铁-Android2 天前
android·kotlin
CompletableDeferred:Kotlin 协程中用于一次性挂起通信的工具很适合处理“等待某个操作完成后再继续”的场景,CompletableDeferred 有两个状态:未完成:调用 await() 的协程会挂起等待。 已完成:await() 立即返回结果,且后续 await() 都会拿到同一个结果。
撩得Android一次心动3 天前
android·笔记·学习·kotlin·compose
Jetpack Compose 知识点整理2【个人用】目录一、常见布局1.Row1.1 核心属性1.2 子元素专属修饰符(RowScope内使用)1.2.1 权重分配 - weight()
Ehtan_Zheng3 天前
kotlin
Kotlin 伴生块:Android 项目怎么用,迁移时要注意什么写 Android 代码时,我们经常把常量、日志用的 TAG、工厂方法,以及 Fragment 的 newInstance() 放进 companion object。调用时直接写 类名.方法名(),很容易让人把它理解成 Java 的静态成员。 但伴生对象确实是一个对象。它背后的单例和嵌套类,会影响 Java 调用方式、反射、ProGuard 保留规则,以及生成的字节码。
JMchen3 天前
kotlin·android studio·android jetpack
【Jetpack 内核实战 02】ViewModel:生命周期管理与数据持久化核心实战在上一篇中,我们完成了 Jetpack 专栏的环境搭建与工程初始化,统一了 Kotlin + Gradle Kotlin DSL + Version Catalog 的现代开发规范。从本篇开始,我们将正式进入核心组件的深度实战。
撩得Android一次心动3 天前
android·笔记·学习·kotlin·android compose
Jetpack Compose 知识点整理3【个人用】“副作用”指的是:你在写UI代码时,偷偷干了和“画界面”无关的事情。在 Compose 的声明式模型中,可组合函数 (@Composable 函数) 会被框架频繁调用(重组)。很多时候我们不仅仅需要在可组合函数的内部进行UI操作,可能还会进行一些和UI无关的操作。例如:资源初始化和释放、异步操作等等。如果直接在可组合函数体内执行这些副作用,会导致严重问题:
Kapaseker3 天前
android·kotlin
别再只会写 <T>:Kotlin 泛型的实战用法上一篇介绍了 Kotlin 泛型的基础。这一篇,我们先看类型参数之间的关系与约束,再把它们用于数据容器、结果包装、对象构建和数据转换,最后讨论运行时类型检查与反射的边界。
alexhilton4 天前
android·kotlin·android jetpack
Room Fts4:全文搜索替代 SQL LIKE本文译自「Scaling Android Search: Room @Fts4 vs SQL LIKE」,原文链接proandroiddev.com/scaling-and…,由Oğuzhan Aslan发布于2026年10月11日。
hai_android4 天前
android·kotlin·android jetpack
把 Android App 打包成系统应用(System App)只有被平台私钥签名的 APK,放到 /system/priv-app/ 下并设置 android:sharedUserId="android.uid.system",才能成为真正的系统应用,获得 READ_PRIVILEGED_PHONE_STATE、MOUNT_UNMOUNT_FILESYSTEMS 等特权权限。
JMchen4 天前
android·kotlin·android jetpack
【Jetpack 内核实战 01】开篇:Jetpack 组件全家桶核心逻辑与专栏完整规划各位 Android 开发者好,欢迎来到《Jetpack 内核实战:ViewModel + LiveData + Room + DataStore 通关指南》系列专栏。 如果你还在为屏幕旋转导致数据丢失头疼,为 SharedPreferences 的 ANR 问题烦心,为项目代码耦合严重难以维护发愁,那么这套专栏正是为你准备的。我们将从 0 到 1 拆解 Google 官方推荐的架构组件,以一个完整的记事本 App 为实战载体,带你彻底吃透 ViewModel、LiveData、Room、DataStor
mmsx4 天前
android·kotlin
Android 静默失败实录:五个没有日志的线上事故崩溃会留下堆栈,静默失败只留下一个"点了没反应"——后者才是最贵的。线上报来一个问题:"点某个功能没反应,每天都有一两次。"三条常规排查路同时走空——崩溃上报平台一条记录都没有,logcat 抓复现只有一堆正常日志、没有 FATAL EXCEPTION,本地加打印也只看到一句 D/Test: uncaughtException: 之后进程就没了,冒号后面是空的。异常对象根本没进日志。