<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>ccc2</title><link>https://ccc2.icu/</link><atom:link href="https://ccc2.icu/rss.xml" rel="self" type="application/rss+xml"/><description>探 索 星 辰 大 海</description><generator>Halo v2.24.2</generator><language>zh-cn</language><image><url>https://ccc2.icu/upload/~/.halo2/attachments/upload/site/image.png</url><title>ccc2</title><link>https://ccc2.icu/</link></image><lastBuildDate>Thu, 13 Aug 2026 15:17:41 GMT</lastBuildDate><item><title><![CDATA[Jetpack Navigation 的 Compose 集成深度，深层链接的坑修完了吗]]></title><link>https://ccc2.icu/archives/jetpack-navigation-%E7%9A%84-compose-%E9%9B%86%E6%88%90%E6%B7%B1%E5%BA%A6%E6%B7%B1%E5%B1%82%E9%93%BE%E6%8E%A5%E7%9A%84%E5%9D%91%E4%BF%AE%E5%AE%8C%E4%BA%86%E5%90%97</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Jetpack%20Navigation%20%E7%9A%84%20Compose%20%E9%9B%86%E6%88%90%E6%B7%B1%E5%BA%A6%EF%BC%8C%E6%B7%B1%E5%B1%82%E9%93%BE%E6%8E%A5%E7%9A%84%E5%9D%91%E4%BF%AE%E5%AE%8C%E4%BA%86%E5%90%97&amp;url=/archives/jetpack-navigation-%E7%9A%84-compose-%E9%9B%86%E6%88%90%E6%B7%B1%E5%BA%A6%E6%B7%B1%E5%B1%82%E9%93%BE%E6%8E%A5%E7%9A%84%E5%9D%91%E4%BF%AE%E5%AE%8C%E4%BA%86%E5%90%97" width="1" height="1" alt="" style="opacity:0;">Jetpack Navigation 的 Compose 集成深度，深层链接的坑修完了吗 Jetpack Navigation 的 Compose 集成深度，深层链接的坑修完了吗 如果你的应用还在用单 Activity + Compose 的架构，大概率已经踩过这个坑：用户从通知栏点进来，或者从外部]]></description><guid isPermaLink="false">/archives/jetpack-navigation-%E7%9A%84-compose-%E9%9B%86%E6%88%90%E6%B7%B1%E5%BA%A6%E6%B7%B1%E5%B1%82%E9%93%BE%E6%8E%A5%E7%9A%84%E5%9D%91%E4%BF%AE%E5%AE%8C%E4%BA%86%E5%90%97</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-VMwz.png&amp;size=m" type="image/jpeg" length="171947"/><category>随笔</category><pubDate>Mon, 10 Aug 2026 08:44:03 GMT</pubDate></item><item><title><![CDATA[Material You 动态取色，实际项目中落地难点]]></title><link>https://ccc2.icu/archives/material-you-%E5%8A%A8%E6%80%81%E5%8F%96%E8%89%B2%E5%AE%9E%E9%99%85%E9%A1%B9%E7%9B%AE%E4%B8%AD%E8%90%BD%E5%9C%B0%E9%9A%BE%E7%82%B9</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Material%20You%20%E5%8A%A8%E6%80%81%E5%8F%96%E8%89%B2%EF%BC%8C%E5%AE%9E%E9%99%85%E9%A1%B9%E7%9B%AE%E4%B8%AD%E8%90%BD%E5%9C%B0%E9%9A%BE%E7%82%B9&amp;url=/archives/material-you-%E5%8A%A8%E6%80%81%E5%8F%96%E8%89%B2%E5%AE%9E%E9%99%85%E9%A1%B9%E7%9B%AE%E4%B8%AD%E8%90%BD%E5%9C%B0%E9%9A%BE%E7%82%B9" width="1" height="1" alt="" style="opacity:0;">Material You 动态取色，实际项目中落地难点 Material You 动态取色，实际项目中落地难点 去年把主工程 Material Components 从 1.5.0 升到 1.9.0 时，我们顺手打开了 DynamicColors。测试包发出去第二天，设计组就在企业微信里扔了一张截图]]></description><guid isPermaLink="false">/archives/material-you-%E5%8A%A8%E6%80%81%E5%8F%96%E8%89%B2%E5%AE%9E%E9%99%85%E9%A1%B9%E7%9B%AE%E4%B8%AD%E8%90%BD%E5%9C%B0%E9%9A%BE%E7%82%B9</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-baay.png&amp;size=m" type="image/jpeg" length="116707"/><category>Android</category><pubDate>Mon, 10 Aug 2026 08:44:03 GMT</pubDate></item><item><title><![CDATA[鸿蒙生态对 Android 开发者意味着什么]]></title><link>https://ccc2.icu/archives/%E9%B8%BF%E8%92%99%E7%94%9F%E6%80%81%E5%AF%B9-android-%E5%BC%80%E5%8F%91%E8%80%85%E6%84%8F%E5%91%B3%E7%9D%80%E4%BB%80%E4%B9%88</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=%E9%B8%BF%E8%92%99%E7%94%9F%E6%80%81%E5%AF%B9%20Android%20%E5%BC%80%E5%8F%91%E8%80%85%E6%84%8F%E5%91%B3%E7%9D%80%E4%BB%80%E4%B9%88&amp;url=/archives/%E9%B8%BF%E8%92%99%E7%94%9F%E6%80%81%E5%AF%B9-android-%E5%BC%80%E5%8F%91%E8%80%85%E6%84%8F%E5%91%B3%E7%9D%80%E4%BB%80%E4%B9%88" width="1" height="1" alt="" style="opacity:0;">鸿蒙生态对 Android 开发者意味着什么 「鸿蒙生态对 Android 开发者意味着什么」 2024 年 10 月 22 日，HarmonyOS NEXT 5.0 随着 Mate 70 系列一起正式发布。这个版本有个技术细节在业内传得很开：系统镜像里彻底移除了 AOSP 兼容层，Linux 内核]]></description><guid isPermaLink="false">/archives/%E9%B8%BF%E8%92%99%E7%94%9F%E6%80%81%E5%AF%B9-android-%E5%BC%80%E5%8F%91%E8%80%85%E6%84%8F%E5%91%B3%E7%9D%80%E4%BB%80%E4%B9%88</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage.png&amp;size=m" type="image/jpeg" length="107024"/><category>随笔</category><pubDate>Mon, 10 Aug 2026 08:44:02 GMT</pubDate></item><item><title><![CDATA[Firebase Performance Monitoring，采集开销实测]]></title><link>https://ccc2.icu/archives/firebase-performance-monitoring%E9%87%87%E9%9B%86%E5%BC%80%E9%94%80%E5%AE%9E%E6%B5%8B</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Firebase%20Performance%20Monitoring%EF%BC%8C%E9%87%87%E9%9B%86%E5%BC%80%E9%94%80%E5%AE%9E%E6%B5%8B&amp;url=/archives/firebase-performance-monitoring%E9%87%87%E9%9B%86%E5%BC%80%E9%94%80%E5%AE%9E%E6%B5%8B" width="1" height="1" alt="" style="opacity:0;">Firebase Performance Monitoring，采集开销实测 Firebase Performance Monitoring，采集开销实测 最近把项目里的 Firebase BOM 从 31.5.0 升到 32.7.2 之后，冷启动数据开始出现一个奇怪的偏移。用 Macrobench]]></description><guid isPermaLink="false">/archives/firebase-performance-monitoring%E9%87%87%E9%9B%86%E5%BC%80%E9%94%80%E5%AE%9E%E6%B5%8B</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-BfNY.png&amp;size=m" type="image/jpeg" length="74986"/><category>Android</category><pubDate>Mon, 10 Aug 2026 08:44:02 GMT</pubDate></item><item><title><![CDATA[ kotlinx.serialization 的稳定性，生产环境敢用吗]]></title><link>https://ccc2.icu/archives/-kotlinxserialization-%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=%20kotlinx.serialization%20%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%EF%BC%8C%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97&amp;url=/archives/-kotlinxserialization-%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97" width="1" height="1" alt="" style="opacity:0;">kotlinx.serialization 的稳定性，生产环境敢用吗 kotlinx.serialization 的稳定性，生产环境敢用吗 把项目 Kotlin 版本从 1.8.22 升到 1.9.20 那次，CI 在编译阶段直接炸了。报错信息不是业务代码问题，而是一个来自 kotlinx-seri]]></description><guid isPermaLink="false">/archives/-kotlinxserialization-%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-TNng.png&amp;size=m" type="image/jpeg" length="74631"/><category>tool</category><pubDate>Mon, 10 Aug 2026 08:44:02 GMT</pubDate></item><item><title><![CDATA[ kotlinx.serialization 的稳定性，生产环境敢用吗]]></title><link>https://ccc2.icu/archives/-kotlinxserialization-%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=%20kotlinx.serialization%20%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%EF%BC%8C%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97&amp;url=/archives/-kotlinxserialization-%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97" width="1" height="1" alt="" style="opacity:0;">kotlinx.serialization 的稳定性，生产环境敢用吗 kotlinx.serialization 的稳定性，生产环境敢用吗 去年把团队项目里的网络层从 Moshi 切到 kotlinx.serialization 时，我踩到的第一个坑不是序列化逻辑本身，而是 Retrofit 抛出的]]></description><guid isPermaLink="false">/archives/-kotlinxserialization-%E7%9A%84%E7%A8%B3%E5%AE%9A%E6%80%A7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%95%A2%E7%94%A8%E5%90%97</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-EnvJ.png&amp;size=m" type="image/jpeg" length="308197"/><category>tool</category><pubDate>Mon, 10 Aug 2026 08:44:01 GMT</pubDate></item><item><title><![CDATA[AccessibilityService 的滥用检测，现在的限制有多严]]></title><link>https://ccc2.icu/archives/accessibilityservice-%E7%9A%84%E6%BB%A5%E7%94%A8%E6%A3%80%E6%B5%8B%E7%8E%B0%E5%9C%A8%E7%9A%84%E9%99%90%E5%88%B6%E6%9C%89%E5%A4%9A%E4%B8%A5</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=AccessibilityService%20%E7%9A%84%E6%BB%A5%E7%94%A8%E6%A3%80%E6%B5%8B%EF%BC%8C%E7%8E%B0%E5%9C%A8%E7%9A%84%E9%99%90%E5%88%B6%E6%9C%89%E5%A4%9A%E4%B8%A5&amp;url=/archives/accessibilityservice-%E7%9A%84%E6%BB%A5%E7%94%A8%E6%A3%80%E6%B5%8B%E7%8E%B0%E5%9C%A8%E7%9A%84%E9%99%90%E5%88%B6%E6%9C%89%E5%A4%9A%E4%B8%A5" width="1" height="1" alt="" style="opacity:0;">AccessibilityService 的滥用检测，现在的限制有多严 AccessibilityService 的滥用检测，现在的限制有多严 前阵子给一个内部工具做 Android 14 适配，核心功能依赖 AccessibilityService 遍历节点做自动化点击。代码在 Android 1]]></description><guid isPermaLink="false">/archives/accessibilityservice-%E7%9A%84%E6%BB%A5%E7%94%A8%E6%A3%80%E6%B5%8B%E7%8E%B0%E5%9C%A8%E7%9A%84%E9%99%90%E5%88%B6%E6%9C%89%E5%A4%9A%E4%B8%A5</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-FXYN.png&amp;size=m" type="image/jpeg" length="217642"/><category>Android</category><pubDate>Mon, 10 Aug 2026 08:44:01 GMT</pubDate></item><item><title><![CDATA[Jetpack Room 的 Kotlin 代码生成，KSP 迁移完成度]]></title><link>https://ccc2.icu/archives/jetpack-room-%E7%9A%84-kotlin-%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90ksp-%E8%BF%81%E7%A7%BB%E5%AE%8C%E6%88%90%E5%BA%A6</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Jetpack%20Room%20%E7%9A%84%20Kotlin%20%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%EF%BC%8CKSP%20%E8%BF%81%E7%A7%BB%E5%AE%8C%E6%88%90%E5%BA%A6&amp;url=/archives/jetpack-room-%E7%9A%84-kotlin-%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90ksp-%E8%BF%81%E7%A7%BB%E5%AE%8C%E6%88%90%E5%BA%A6" width="1" height="1" alt="" style="opacity:0;">Jetpack Room 的 Kotlin 代码生成，KSP 迁移完成度 Jetpack Room 的 Kotlin 代码生成，KSP 迁移完成度 KAPT 那个 kaptGenerateStubs Task 跑起来的时候，你是真的能感觉到编译管线在硬撑着。尤其是项目里 Room 的 Entity]]></description><guid isPermaLink="false">/archives/jetpack-room-%E7%9A%84-kotlin-%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90ksp-%E8%BF%81%E7%A7%BB%E5%AE%8C%E6%88%90%E5%BA%A6</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-TkmJ.png&amp;size=m" type="image/jpeg" length="338263"/><category>随笔</category><pubDate>Mon, 10 Aug 2026 08:44:01 GMT</pubDate></item><item><title><![CDATA[Square 开源库全家桶：OkHttp、Retrofit、Moshi]]></title><link>https://ccc2.icu/archives/square-%E5%BC%80%E6%BA%90%E5%BA%93%E5%85%A8%E5%AE%B6%E6%A1%B6okhttpretrofitmoshi</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Square%20%E5%BC%80%E6%BA%90%E5%BA%93%E5%85%A8%E5%AE%B6%E6%A1%B6%EF%BC%9AOkHttp%E3%80%81Retrofit%E3%80%81Moshi&amp;url=/archives/square-%E5%BC%80%E6%BA%90%E5%BA%93%E5%85%A8%E5%AE%B6%E6%A1%B6okhttpretrofitmoshi" width="1" height="1" alt="" style="opacity:0;">Square 开源库全家桶：OkHttp、Retrofit、Moshi Square 开源库全家桶：OkHttp、Retrofit、Moshi OkHttp 4.0 在 2019 年用 Kotlin 全面重写时，社区里出现了一种微妙的分裂。一部分人欢呼终于能在源码里看到地道的 Kotlin 惯用法，]]></description><guid isPermaLink="false">/archives/square-%E5%BC%80%E6%BA%90%E5%BA%93%E5%85%A8%E5%AE%B6%E6%A1%B6okhttpretrofitmoshi</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-ghSh.png&amp;size=m" type="image/jpeg" length="321068"/><category>tool</category><pubDate>Mon, 10 Aug 2026 08:44:01 GMT</pubDate></item><item><title><![CDATA[Kotlin 的 Power Assert 提案，测试断言写起来能爽多少]]></title><link>https://ccc2.icu/archives/kotlin-%E7%9A%84-power-assert-%E6%8F%90%E6%A1%88%E6%B5%8B%E8%AF%95%E6%96%AD%E8%A8%80%E5%86%99%E8%B5%B7%E6%9D%A5%E8%83%BD%E7%88%BD%E5%A4%9A%E5%B0%91</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Kotlin%20%E7%9A%84%20Power%20Assert%20%E6%8F%90%E6%A1%88%EF%BC%8C%E6%B5%8B%E8%AF%95%E6%96%AD%E8%A8%80%E5%86%99%E8%B5%B7%E6%9D%A5%E8%83%BD%E7%88%BD%E5%A4%9A%E5%B0%91&amp;url=/archives/kotlin-%E7%9A%84-power-assert-%E6%8F%90%E6%A1%88%E6%B5%8B%E8%AF%95%E6%96%AD%E8%A8%80%E5%86%99%E8%B5%B7%E6%9D%A5%E8%83%BD%E7%88%BD%E5%A4%9A%E5%B0%91" width="1" height="1" alt="" style="opacity:0;">Kotlin 的 Power Assert 提案，测试断言写起来能爽多少 Kotlin 的 Power Assert 提案，测试断言写起来能爽多少 写 Android 单元测试最窒息的瞬间，往往不是逻辑出错，而是 CI 日志里弹出一行 expected:&lt;User(name=John, age=30]]></description><guid isPermaLink="false">/archives/kotlin-%E7%9A%84-power-assert-%E6%8F%90%E6%A1%88%E6%B5%8B%E8%AF%95%E6%96%AD%E8%A8%80%E5%86%99%E8%B5%B7%E6%9D%A5%E8%83%BD%E7%88%BD%E5%A4%9A%E5%B0%91</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-eeKm.png&amp;size=m" type="image/jpeg" length="92838"/><category>随笔</category><pubDate>Mon, 10 Aug 2026 08:44:00 GMT</pubDate></item><item><title><![CDATA[IntelliJ IDEA 社区版开发 Android 的可行性]]></title><link>https://ccc2.icu/archives/intellij-idea-%E7%A4%BE%E5%8C%BA%E7%89%88%E5%BC%80%E5%8F%91-android-%E7%9A%84%E5%8F%AF%E8%A1%8C%E6%80%A7</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=IntelliJ%20IDEA%20%E7%A4%BE%E5%8C%BA%E7%89%88%E5%BC%80%E5%8F%91%20Android%20%E7%9A%84%E5%8F%AF%E8%A1%8C%E6%80%A7&amp;url=/archives/intellij-idea-%E7%A4%BE%E5%8C%BA%E7%89%88%E5%BC%80%E5%8F%91-android-%E7%9A%84%E5%8F%AF%E8%A1%8C%E6%80%A7" width="1" height="1" alt="" style="opacity:0;">IntelliJ IDEA 社区版开发 Android 的可行性 IntelliJ IDEA 社区版开发 Android 的可行性 Android Studio Iguana 解压后的体积已经逼近 3GB，启动后在 16GB 内存的机器上轻松吃掉 2.5GB 以上，再加上 Gradle Daemon]]></description><guid isPermaLink="false">/archives/intellij-idea-%E7%A4%BE%E5%8C%BA%E7%89%88%E5%BC%80%E5%8F%91-android-%E7%9A%84%E5%8F%AF%E8%A1%8C%E6%80%A7</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-UKDx.png&amp;size=m" type="image/jpeg" length="156698"/><category>tool</category><pubDate>Thu, 6 Aug 2026 01:25:57 GMT</pubDate></item><item><title><![CDATA[Google 的 Firebase 新产品线，从分析到实验的一体化]]></title><link>https://ccc2.icu/archives/google-%E7%9A%84-firebase-%E6%96%B0%E4%BA%A7%E5%93%81%E7%BA%BF%E4%BB%8E%E5%88%86%E6%9E%90%E5%88%B0%E5%AE%9E%E9%AA%8C%E7%9A%84%E4%B8%80%E4%BD%93%E5%8C%96</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Google%20%E7%9A%84%20Firebase%20%E6%96%B0%E4%BA%A7%E5%93%81%E7%BA%BF%EF%BC%8C%E4%BB%8E%E5%88%86%E6%9E%90%E5%88%B0%E5%AE%9E%E9%AA%8C%E7%9A%84%E4%B8%80%E4%BD%93%E5%8C%96&amp;url=/archives/google-%E7%9A%84-firebase-%E6%96%B0%E4%BA%A7%E5%93%81%E7%BA%BF%E4%BB%8E%E5%88%86%E6%9E%90%E5%88%B0%E5%AE%9E%E9%AA%8C%E7%9A%84%E4%B8%80%E4%BD%93%E5%8C%96" width="1" height="1" alt="" style="opacity:0;">Google 的 Firebase 新产品线，从分析到实验的一体化 Google 的 Firebase 新产品线，从分析到实验的一体化 2023 年 9 月 30 号之后，如果你还赖在 Google Optimize 的后台想改一个网页 A/B 测试，看到的只会是一封关服通知。Google 把这项服]]></description><guid isPermaLink="false">/archives/google-%E7%9A%84-firebase-%E6%96%B0%E4%BA%A7%E5%93%81%E7%BA%BF%E4%BB%8E%E5%88%86%E6%9E%90%E5%88%B0%E5%AE%9E%E9%AA%8C%E7%9A%84%E4%B8%80%E4%BD%93%E5%8C%96</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-rQTR.png&amp;size=m" type="image/jpeg" length="100299"/><category>随笔</category><pubDate>Thu, 6 Aug 2026 01:25:57 GMT</pubDate></item><item><title><![CDATA[Coil 和 Glide 的加载性能对比数据]]></title><link>https://ccc2.icu/archives/coil-%E5%92%8C-glide-%E7%9A%84%E5%8A%A0%E8%BD%BD%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94%E6%95%B0%E6%8D%AE</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Coil%20%E5%92%8C%20Glide%20%E7%9A%84%E5%8A%A0%E8%BD%BD%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94%E6%95%B0%E6%8D%AE&amp;url=/archives/coil-%E5%92%8C-glide-%E7%9A%84%E5%8A%A0%E8%BD%BD%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94%E6%95%B0%E6%8D%AE" width="1" height="1" alt="" style="opacity:0;">Coil 和 Glide 的加载性能对比数据 Coil 和 Glide 的加载性能对比数据 去年把一个新项目从 Glide 4.15.1 迁到 Coil 2.4.0 之后，我遇到过一个很诡异的性能回归。首页是一个三列的 RecyclerView，每个 item 带一张圆角网络图片，快速滑动时 GPU]]></description><guid isPermaLink="false">/archives/coil-%E5%92%8C-glide-%E7%9A%84%E5%8A%A0%E8%BD%BD%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94%E6%95%B0%E6%8D%AE</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-BfNY.png&amp;size=m" type="image/jpeg" length="74986"/><category>tool</category><pubDate>Thu, 6 Aug 2026 01:25:54 GMT</pubDate></item><item><title><![CDATA[ConcurrentLinkedQueue 的无锁队列，适合什么场景]]></title><link>https://ccc2.icu/archives/concurrentlinkedqueue-%E7%9A%84%E6%97%A0%E9%94%81%E9%98%9F%E5%88%97%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E5%9C%BA%E6%99%AF</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=ConcurrentLinkedQueue%20%E7%9A%84%E6%97%A0%E9%94%81%E9%98%9F%E5%88%97%EF%BC%8C%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E5%9C%BA%E6%99%AF&amp;url=/archives/concurrentlinkedqueue-%E7%9A%84%E6%97%A0%E9%94%81%E9%98%9F%E5%88%97%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E5%9C%BA%E6%99%AF" width="1" height="1" alt="" style="opacity:0;">ConcurrentLinkedQueue 的无锁队列，适合什么场景 「ConcurrentLinkedQueue 的无锁队列，适合什么场景」 去年在优化一个相机预览模块的帧缓冲区时，我把原来的 LinkedBlockingQueue 换成了 ConcurrentLinkedQueue。当时的想法很]]></description><guid isPermaLink="false">/archives/concurrentlinkedqueue-%E7%9A%84%E6%97%A0%E9%94%81%E9%98%9F%E5%88%97%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E5%9C%BA%E6%99%AF</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-ZEST.png&amp;size=m" type="image/jpeg" length="263393"/><category>Android</category><pubDate>Thu, 6 Aug 2026 01:25:54 GMT</pubDate></item><item><title><![CDATA[Shizuku 权限方案，无 Root 调用系统 API 的实践]]></title><link>https://ccc2.icu/archives/shizuku-%E6%9D%83%E9%99%90%E6%96%B9%E6%A1%88%E6%97%A0-root-%E8%B0%83%E7%94%A8%E7%B3%BB%E7%BB%9F-api-%E7%9A%84%E5%AE%9E%E8%B7%B5</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Shizuku%20%E6%9D%83%E9%99%90%E6%96%B9%E6%A1%88%EF%BC%8C%E6%97%A0%20Root%20%E8%B0%83%E7%94%A8%E7%B3%BB%E7%BB%9F%20API%20%E7%9A%84%E5%AE%9E%E8%B7%B5&amp;url=/archives/shizuku-%E6%9D%83%E9%99%90%E6%96%B9%E6%A1%88%E6%97%A0-root-%E8%B0%83%E7%94%A8%E7%B3%BB%E7%BB%9F-api-%E7%9A%84%E5%AE%9E%E8%B7%B5" width="1" height="1" alt="" style="opacity:0;">Shizuku 权限方案，无 Root 调用系统 API 的实践 「Shizuku 权限方案，无 Root 调用系统 API 的实践」 Android 14 上，我尝试在应用内直接通过反射关闭另一个应用的通知权限。代码刚跑起来就收到了一个无情的 SecurityException，日志很直白：uid]]></description><guid isPermaLink="false">/archives/shizuku-%E6%9D%83%E9%99%90%E6%96%B9%E6%A1%88%E6%97%A0-root-%E8%B0%83%E7%94%A8%E7%B3%BB%E7%BB%9F-api-%E7%9A%84%E5%AE%9E%E8%B7%B5</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-eeKm.png&amp;size=m" type="image/jpeg" length="92838"/><category>Android</category><pubDate>Thu, 6 Aug 2026 01:25:54 GMT</pubDate></item><item><title><![CDATA[Compose Compiler 新版本的性能优化，编译时间缩短了吗]]></title><link>https://ccc2.icu/archives/compose-compiler-%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%BC%96%E8%AF%91%E6%97%B6%E9%97%B4%E7%BC%A9%E7%9F%AD%E4%BA%86%E5%90%97</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Compose%20Compiler%20%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%EF%BC%8C%E7%BC%96%E8%AF%91%E6%97%B6%E9%97%B4%E7%BC%A9%E7%9F%AD%E4%BA%86%E5%90%97&amp;url=/archives/compose-compiler-%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%BC%96%E8%AF%91%E6%97%B6%E9%97%B4%E7%BC%A9%E7%9F%AD%E4%BA%86%E5%90%97" width="1" height="1" alt="" style="opacity:0;">Compose Compiler 新版本的性能优化，编译时间缩短了吗 Compose Compiler 新版本的性能优化，编译时间缩短了吗 Compose Compiler 2.0.0 跟着 Kotlin 2.0 一起落地已经有一段时间了。JetBrains 在 K2 编译器的发布博客里把性能提升吹]]></description><guid isPermaLink="false">/archives/compose-compiler-%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%BC%96%E8%AF%91%E6%97%B6%E9%97%B4%E7%BC%A9%E7%9F%AD%E4%BA%86%E5%90%97</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-TNng.png&amp;size=m" type="image/jpeg" length="74631"/><category>随笔</category><pubDate>Thu, 6 Aug 2026 01:25:54 GMT</pubDate></item><item><title><![CDATA[Android 的 Auto Fill 服务安全性，密码管理器的新要求]]></title><link>https://ccc2.icu/archives/android-%E7%9A%84-auto-fill-%E6%9C%8D%E5%8A%A1%E5%AE%89%E5%85%A8%E6%80%A7%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%99%A8%E7%9A%84%E6%96%B0%E8%A6%81%E6%B1%82</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Android%20%E7%9A%84%20Auto%20Fill%20%E6%9C%8D%E5%8A%A1%E5%AE%89%E5%85%A8%E6%80%A7%EF%BC%8C%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%99%A8%E7%9A%84%E6%96%B0%E8%A6%81%E6%B1%82&amp;url=/archives/android-%E7%9A%84-auto-fill-%E6%9C%8D%E5%8A%A1%E5%AE%89%E5%85%A8%E6%80%A7%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%99%A8%E7%9A%84%E6%96%B0%E8%A6%81%E6%B1%82" width="1" height="1" alt="" style="opacity:0;">Android 的 Auto Fill 服务安全性，密码管理器的新要求 Android 的 Auto Fill 服务安全性，密码管理器的新要求 Android 15 的 Developer Preview 放出来之后，我扫了一遍 Autofill 相关的 API diff。没发现什么振奋人心的大更新]]></description><guid isPermaLink="false">/archives/android-%E7%9A%84-auto-fill-%E6%9C%8D%E5%8A%A1%E5%AE%89%E5%85%A8%E6%80%A7%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%99%A8%E7%9A%84%E6%96%B0%E8%A6%81%E6%B1%82</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage.png&amp;size=m" type="image/jpeg" length="107024"/><category>随笔</category><pubDate>Thu, 6 Aug 2026 01:25:54 GMT</pubDate></item><item><title><![CDATA[KtLint 和 Detekt 的代码规范配置]]></title><link>https://ccc2.icu/archives/ktlint-%E5%92%8C-detekt-%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%E9%85%8D%E7%BD%AE</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=KtLint%20%E5%92%8C%20Detekt%20%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%E9%85%8D%E7%BD%AE&amp;url=/archives/ktlint-%E5%92%8C-detekt-%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%E9%85%8D%E7%BD%AE" width="1" height="1" alt="" style="opacity:0;">KtLint 和 Detekt 的代码规范配置 KtLint 和 Detekt 的代码规范配置：一个"过度配置"项目的踩坑记录 上个月把项目从 AGP 7.4 迁到 8.2，Gradle 升到 8.5，顺手把 KtLint 从 0.49.1 更新到 1.1.1。本地 ./gradlew spotle]]></description><guid isPermaLink="false">/archives/ktlint-%E5%92%8C-detekt-%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%E9%85%8D%E7%BD%AE</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-rQTR.png&amp;size=m" type="image/jpeg" length="100299"/><category>tool</category><pubDate>Mon, 3 Aug 2026 00:43:05 GMT</pubDate></item><item><title><![CDATA[DocumentsContract 的树形文档访问，SAF 的局限]]></title><link>https://ccc2.icu/archives/documentscontract-%E7%9A%84%E6%A0%91%E5%BD%A2%E6%96%87%E6%A1%A3%E8%AE%BF%E9%97%AEsaf-%E7%9A%84%E5%B1%80%E9%99%90</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=DocumentsContract%20%E7%9A%84%E6%A0%91%E5%BD%A2%E6%96%87%E6%A1%A3%E8%AE%BF%E9%97%AE%EF%BC%8CSAF%20%E7%9A%84%E5%B1%80%E9%99%90&amp;url=/archives/documentscontract-%E7%9A%84%E6%A0%91%E5%BD%A2%E6%96%87%E6%A1%A3%E8%AE%BF%E9%97%AEsaf-%E7%9A%84%E5%B1%80%E9%99%90" width="1" height="1" alt="" style="opacity:0;">DocumentsContract 的树形文档访问，SAF 的局限 「DocumentsContract 的树形文档访问，SAF 的局限」 去年把文件管理模块重构到纯 SAF（Storage Access Framework）方案时，我在 Android 11 的测试机上遇到一个极其诡异的权限崩溃。]]></description><guid isPermaLink="false">/archives/documentscontract-%E7%9A%84%E6%A0%91%E5%BD%A2%E6%96%87%E6%A1%A3%E8%AE%BF%E9%97%AEsaf-%E7%9A%84%E5%B1%80%E9%99%90</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-ZEST.png&amp;size=m" type="image/jpeg" length="263393"/><category>Android</category><pubDate>Mon, 3 Aug 2026 00:43:05 GMT</pubDate></item><item><title><![CDATA[Android 开发从 Java 8 到 17 的迁移，还有多少老项目没动]]></title><link>https://ccc2.icu/archives/android-%E5%BC%80%E5%8F%91%E4%BB%8E-java-8-%E5%88%B0-17-%E7%9A%84%E8%BF%81%E7%A7%BB%E8%BF%98%E6%9C%89%E5%A4%9A%E5%B0%91%E8%80%81%E9%A1%B9%E7%9B%AE%E6%B2%A1%E5%8A%A8</link><description><![CDATA[<img src="https://ccc2.icu/plugins/feed/assets/telemetry.gif?title=Android%20%E5%BC%80%E5%8F%91%E4%BB%8E%20Java%208%20%E5%88%B0%2017%20%E7%9A%84%E8%BF%81%E7%A7%BB%EF%BC%8C%E8%BF%98%E6%9C%89%E5%A4%9A%E5%B0%91%E8%80%81%E9%A1%B9%E7%9B%AE%E6%B2%A1%E5%8A%A8&amp;url=/archives/android-%E5%BC%80%E5%8F%91%E4%BB%8E-java-8-%E5%88%B0-17-%E7%9A%84%E8%BF%81%E7%A7%BB%E8%BF%98%E6%9C%89%E5%A4%9A%E5%B0%91%E8%80%81%E9%A1%B9%E7%9B%AE%E6%B2%A1%E5%8A%A8" width="1" height="1" alt="" style="opacity:0;">Android 开发从 Java 8 到 17 的迁移，还有多少老项目没动 Android 开发从 Java 8 到 17 的迁移，还有多少老项目没动 AGP 8.0 发布已经一年半了，Google 那把刀早就磨好。从 2023 年 4 月开始，Android Gradle Plugin 8.0 明]]></description><guid isPermaLink="false">/archives/android-%E5%BC%80%E5%8F%91%E4%BB%8E-java-8-%E5%88%B0-17-%E7%9A%84%E8%BF%81%E7%A7%BB%E8%BF%98%E6%9C%89%E5%A4%9A%E5%B0%91%E8%80%81%E9%A1%B9%E7%9B%AE%E6%B2%A1%E5%8A%A8</guid><dc:creator>bt</dc:creator><enclosure url="https://ccc2.icu/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fccc2.icu%2Fupload%2F~%2F.halo2%2Fattachments%2Fupload%2Fcover%2Fimage-rQTR.png&amp;size=m" type="image/jpeg" length="100299"/><category>随笔</category><pubDate>Mon, 3 Aug 2026 00:43:04 GMT</pubDate></item></channel></rss>