MQTT是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的“机器到机器”(M2M)或物联网(IoT)
系列文章《客户端可观测性进阶实战》第 3 篇 推荐阅读时间:10 分钟 前言 前两篇讲了 Trace 和 Metric。Trace 还原时间线,Metric 反映全局趋势,但线上排障时最常用的还是 Log。用户反馈一个问题,你打开后台面板,第一件事就是搜日志。 问题是,大多数团队的日志体系是这样的:
系列文章《客户端可观测性进阶实战》第 2 篇 推荐阅读时间:10 分钟 前言 上一篇讲了 Trace,它能还原一次操作的时间线。但 Trace 有个问题:它太重了。你不可能对每个用户每次操作都跑 Perfetto,线上只能采样 0.1% 的设备。 Metric 体系解决的是另一面的问题:全局趋势。启
系列文章《客户端可观测性进阶实战》第 1 篇 推荐阅读时间:10 分钟 前言 之前《客户端质量与稳定性实战》系列讲过可观测性的基础概念,但那篇更多是"是什么"层面的科普。实际线上排障时,团队里问得最多的还是这种问题: 用户反馈"点了一下就卡了",你能看到什么? 启动慢了 800 毫秒,到底慢在 Ap
系列文章《Android Gradle 构建体系深度实践(续)》第 3 篇 推荐阅读时间:10 分钟 前言 前面两篇聊了远程构建缓存和 CI 分片。这一篇进入最后一个场景:Gradle 与 Kotlin Multiplatform(KMP)的协同构建。 KMP 工程不是“一个 Android 项目多
系列文章《Android Gradle 构建体系深度实践(续)》第 2 篇 推荐阅读时间:10 分钟 前言 上一篇聊了远程构建缓存,它能把“编译”这件事的成本压到很低。项目再大一点,瓶颈就会转移: 单台 CI 机器跑完整套构建要 40 分钟,远程缓存也救不了“最后一个链接 Task” 单元测试和集成
系列文章《Android Gradle 构建体系深度实践(续)》第 1 篇 推荐阅读时间:10 分钟 前言 上一季我们把 Gradle 生命周期、Transform/Artifacts API 和自定义插件聊完了。这一季我们把镜头往前挪一点,看看构建提速里最容易被低估、也最容易踩坑的一环——构建缓存
前言 写第 100 篇的时候,回头看了一下目录——从 Activity 生命周期到 AI 时代的技能重构,整整 100 篇。 100 篇不可能穷尽 Android 工程的所有细节,但能让你知道学什么、怎么学、学到什么程度停下。这一篇不是新的知识点,是一个地图。 一、为什么是 100 篇 公众号做技术
前言 2026 年的 Q2,AI 已经让 30% 以上的"机械性编码工作"变简单了。一年前你想半小时才写得出来的 RecyclerView Adapter,今天 Cursor 5 秒给你 8 个版本。 很多 Android 工程师开始焦虑:"我是不是要被淘汰了?" 不会。但懒的工程师会被淘汰。这篇文
前言 工程界有句调侃:"会写代码的千千万,会写字的万里挑一。" 事实是:能写好代码又能让别人看懂你写什么的人——比只会写代码的人平均收入高出 30-50%(Stack Overflow Developer Survey 2024 数据,写技术博客的开发者薪资分布确实显著高)。 这篇文章不讲怎么写爆款