kotlin

alexhilton3 小时前
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_android9 小时前
android·kotlin·android jetpack
把 Android App 打包成系统应用(System App)只有被平台私钥签名的 APK,放到 /system/priv-app/ 下并设置 android:sharedUserId="android.uid.system",才能成为真正的系统应用,获得 READ_PRIVILEGED_PHONE_STATE、MOUNT_UNMOUNT_FILESYSTEMS 等特权权限。
JMchen9 小时前
android·kotlin·android jetpack
【Jetpack 内核实战 01】开篇:Jetpack 组件全家桶核心逻辑与专栏完整规划各位 Android 开发者好,欢迎来到《Jetpack 内核实战:ViewModel + LiveData + Room + DataStore 通关指南》系列专栏。 如果你还在为屏幕旋转导致数据丢失头疼,为 SharedPreferences 的 ANR 问题烦心,为项目代码耦合严重难以维护发愁,那么这套专栏正是为你准备的。我们将从 0 到 1 拆解 Google 官方推荐的架构组件,以一个完整的记事本 App 为实战载体,带你彻底吃透 ViewModel、LiveData、Room、DataStor
mmsx12 小时前
android·kotlin
Android 静默失败实录:五个没有日志的线上事故崩溃会留下堆栈,静默失败只留下一个"点了没反应"——后者才是最贵的。线上报来一个问题:"点某个功能没反应,每天都有一两次。"三条常规排查路同时走空——崩溃上报平台一条记录都没有,logcat 抓复现只有一堆正常日志、没有 FATAL EXCEPTION,本地加打印也只看到一句 D/Test: uncaughtException: 之后进程就没了,冒号后面是空的。异常对象根本没进日志。
hai_android13 小时前
android·kotlin·android jetpack
从零实现一个支持跨进程(IPC)的自定义 Toast本文基于一个真实 MVVM 项目(Kotlin + ViewBinding),完整讲解如何手写一个"长得像 Toast、但完全可控、还能跨进程调用"的消息提示组件。 全文采用 代码 + 逐行注释 的方式展开,所有代码均可直接运行。
熊猫钓鱼>_>14 小时前
开发语言·kotlin·agent·harmonyos·openharmony·适配·华为云码道
Kotlin Multiplatform for OpenHarmony 实战:kotlinx-coroutines 结构化并发适配本文记录 kotlinx.coroutines(Kotlin 官方协程库)在 OpenHarmony 上的真实适配过程。核心思路是语义等价复刻:ArkTS 本身是单线程异步模型(事件循环 + Promise),与 Kotlin 协程“挂起不阻塞线程”的心智完全同构,因此无需重写协程运行时,只需用 ArkTS 原生 Promise 承载挂起/并发语义,把 API 形状与原库对齐。全文按三层架构展开:语义层(Coroutines.ets 定义 CoroutineScope / Job / Deferred<T
熊猫钓鱼>_>15 小时前
开发语言·华为·kotlin·华为云·json·harmonyos·code
Kotlin Multiplatform for OpenHarmony 实战:kotlinx-serialization JSON 适配本文属于 KMP 三方库鸿蒙化适配合集,聚焦 Kotlin 官方序列化库 kotlinx.serialization 在 OpenHarmony 上的适配实践。文章提出「语义层 + 引擎层 + 验收页」的三层架构:语义层用 JsonElement 树与 KSerializer<T> 契约保留原库的纯映射,引擎层复用 ArkTS 自带的 JSON 设施完成最终编解码,验收页在真机上验证嵌套对象的序列化与反序列化。全文只讲本仓库真实落地的代码,并总结了 JSON.parse 类型摩擦、严格模式禁参数属性、手写
倚楼听风语1 天前
java·算法·kotlin
Kotlin 协程与 suspend 原理详解从"怎么写"到"编译器把它变成什么",再到"运行时怎么调度"的完整知识文档。suspend 是 Kotlin 用来标记可以被挂起的函数的修饰符。它的特点:
事圆则缓1 天前
开发语言·windows·kotlin
Kotlin 集合与序列:给页面一份清楚的数据Android 消息页从仓库取回通知列表,准备筛出未读项并按会话显示。代码里参数类型写着 List,页面却可能在下一次刷新前看到内容变化;图片接口要的是 ByteArray,手上的 List<Byte> 又不能直接传。问题牵涉的并非一套“集合语法”,而是数据能否被修改、怎样组织、何时计算。以下以 Kotlin 2.4.21 及 Android 的 JVM 目标为基线。
事圆则缓1 天前
android·开发语言·kotlin
Kotlin 异步与并发:从一次搜索请求走到状态流搜索页连续输入两个关键词,第二次结果先回来,第一次结果随后把界面覆盖了。给网络函数加上 suspend 并不能自动解决这个问题:请求属于谁、旧任务何时取消、结果怎样送到界面,是三件需要一起设计的事。**协程用作用域组织任务,用挂起函数表达等待,用 Flow 传递随时间变化的值;共享可变状态还要单独处理并发访问。**本文以 Kotlin 2.4.21 为语言基线,launch、Flow、Mutex 来自 kotlinx.coroutines,Android 生命周期 API 来自 AndroidX。
事圆则缓2 天前
android·开发语言·kotlin
Kotlin学习导航:从知识树走到项目与面试一个 Android 页面同时碰到接口空值、列表转换、Java SDK、协程请求和 Compose 状态时,按语法关键词查资料很容易越查越散:?. 看懂了,仍不知道平台类型从哪里来;Flow 会收集了,页面退出后任务却还在跑。这八篇按“数据边界 → 行为与状态 → 平台边界 → 并发与交付”串起来读,每篇解决一个明确的问题,也能单独打开查阅。
mmsx2 天前
android·kotlin
Android 插件化架构:40 个 Gradle 模块的拆分、通信与共存拆是几天的活,守是每一天的活——难的不是拆出 40 个模块,而是让每条边界一直有人守着。一个 40 个 Gradle 模块的 Android 工程,最初只有一个 app module。几百个 Activity 挤在同一棵源码树里,改一行公共类,全量编译 8 分钟起步。真正压垮团队的不是这 8 分钟本身,而是它带来的行为变化:没人敢动公共类了,改动被攒到下班前才编译一次,为了省掉一次编译,两个毫不相关的需求被塞进同一个分支。
mmsx2 天前
android·kotlin
Android 不改一行源码:用 AspectJ 做三类拦截AspectJ 织入的是 Java 字节码的调用点,不是方法的实现体。有些麻烦,你第一反应绝不会是「去改别人的源码」。
熊猫钓鱼>_>2 天前
开发语言·人工智能·华为·kotlin·harmonyos·鸿蒙
开源鸿蒙平台 KMP 三方库 kotlin-csv 适配全流程:从编码假设到沙箱真机互通验证欢迎加入 KMP&CMP 鸿蒙社区:https://atomgit.com/CPF-KMP-CMP适配后仓库地址(AtomGit,待提交):https://atomgit.com/oh-tpc/ohos_kotlin-csv
事圆则缓3 天前
kotlin
Kotlin 类型与空安全:从接口数据到页面状态Android 页面从 Intent 读取商品 ID,再把接口返回的价格和标题显示出来:ID 可能缺失,价格单位可能是“分”,标题可能来自没有可空标注的 Java SDK。把这些值都交给类型推断,编译器也无法替业务判断“缺失”和“无效”是否一样。先用类型表达数据范围,再在外部边界收敛 null 和无效值,页面里的计算才有可靠前提。
墨天梦3 天前
gitee·kotlin
D19_系统分享与文件URI发布摘要:先分享文章标题和链接,再用最小 FileProvider 配置分享导出的文本文件,理解 Intent、URI 和临时授权。标签:Intent、FileProvider、Android、文件分享。
应用市场3 天前
android·kotlin·游戏开发
离线小游戏做“每日挑战”:日期当随机种子,整局存成 JSON,再加一个“我不是机器人”说明:这个小游戏是和 AI 编程助手协作开发的,本文也由 AI 协助整理成文。文中代码摘自项目源码(注释改成了中文,有删节),数字来自单元测试的输出。游戏内容纯属虚构,和任何 AI 公司无关。
hai_android3 天前
android·kotlin·android jetpack
LiveEventBusCore 跨 Activity 通讯源码解析源码版本:JeremyLiao / LiveEventBus(master 分支) 核心文件:Activity A 登录成功后需要通知 Activity B 刷新用户头像,常规做法是:
维克兜率天3 天前
android·开发语言·python·算法·kotlin
【维克】统计套利建模:从因子到信号的完整流程上期我们聊了统计套利的基本概念——市场存在短期定价偏差,偏差会均值回归,你从中获利。很多读者看完留言说:"概念我懂了,但到底怎么建一个能跑的模型?"