本文译自Understanding Memory Leaks in Android & How LeakCanary Can Help,原文发布于2024年12月27日。
译者注: 关于内存优化,笔者也曾经写过两篇文章,侧重于内存问题的深入分析,如有兴趣可以作为拓展阅读:让你不再惧怕内存优化和Android应用性能剖析全攻略。
本文译自Understanding Memory Leaks in Android & How LeakCanary Can Help,原文发布于2024年12月27日。
译者注: 关于内存优化,笔者也曾经写过两篇文章,侧重于内存问题的深入分析,如有兴趣可以作为拓展阅读:让你不再惧怕内存优化和Android应用性能剖析全攻略。
本文译自When to Use Retrofit and When to Use Ktor: A Guide for Android Developers
作为 Android 开发人员,为你的项目选择正确的 HTTP 客户端是一项关键的决定。当今最受欢迎的两个选项莫过于 Retrofit 和 Ktor。虽然Retrofit 多年来一直是事实上的标准,但 Ktor 因其现代架构和灵活性而势头强劲。
本文译自OkHttp’s Gzip Compression,原文发布于2020年5月1日。本文假定读者对HTTP有基本的了解,以及使用过OkHttp,否则理解起来可能会一点困难。
译注: OkHttp确实会自动添加gzip并处理响应。但如果显示的给请求添加除了gzip之外的字段,如”Accept-Encoding: gzip, deflate, br”,那么就需要手动处理响应。其实一般时候我们并不需要手动设置,除非是模拟浏览器时(比如用了浏览器的UA),或者某些服务器强制deflate字段。更多的信息可以看这里。
本文译自《DiffUtils, Myers’ Algorithm and Jetpack Compose》,原文发布于2024年12月27日。
在 Android UI 开发领域,DiffUtils 是优化 RecyclerView 中列表更新的必备工具。DiffUtils 是一个实用程序类,它计算将一个列表转换为另一个列表所需的最小更改,并仅更新 UI 中已更改的部分,从而节省性能并减少不必要的重绘。这个强大的工具依赖于Myers算法,这是一种在两个序列之间找到最短编辑脚本(Shortest edit script)的有效方法。
译注: 这篇文章虽然比较短,但提到的问题还是比较具体和典型的,针对CMP项目的一些配置还是很有借鉴意义的。
2025年的Android新版本来的比2024年稍早了一些。今年Google非常反常地提前就发布了Android的新版本Android 16 Baklava,整体的计划比往年提前了2~3个月。另外,谷歌把Android 16的代码命名为「Baklava」,这与先前的字母表顺序的点心食物命名方式截然不同,不过「Baklava」巴克拉瓦,又称果仁蜜饼,是一种口味浓郁、甜蜜的土耳其酥皮点心。
通过前面两篇文章的学习,我们已经对CMP有了一定的了解,接下来要进入实战阶段。在现实的世界中极小数项目会从0开始,今天重点研究一下如何把一个现成的用Jetpack Compose开发的Android项目转成CMP项目。
在前面的一篇文章赶紧上车开启Compose大前端之路中我们学习了CMP的基本概念以及如何创建一个CMP项目。今天将继续学习CMP,深入研究项目的配置方法,了解CMP的内部机制并总结一些CMP开发的最佳实践。
在前面的文章中,我们一再强调Jetpack Compose是一个声明式的UI框架,尽管我们都是基于Android开发来实战的,但Compose并不局限于Android开发,它其实与特定的开发平台没有关系,是可以做到跨平台开发的。事实上JetBrains早就已经准备好了一套工具,以让Compose跨平台,开发多端应用,跻身于大前端的一员。今天就来学习一下如何使用Compose进行大前端开发。