Android Weekly 是一份专注于 Android 技术生态的周刊,每周一更新。本周刊深入挖掘 Android 系统架构、性能优化、跨平台开发、AI 等领域的高质量技术内容,为开发者提供持续的知识更新与技术洞察。
订阅渠道:[微信公众号] | [知乎专栏] | [掘金] | [RSS]
技术文章
- Android× 鸿蒙 ×AI 技术周刊 - 第 1 期: 周刊的主题为:Android、鸿蒙、AI 相关的科普、技术文、开源项目、近期热点等。
- 播放器系列 1——总概述: 这篇文章主要讨论了一个播放器项目的核心架构及其实现细节,包括文件读取、解复用、音视频解码、渲染、音效处理以及音视频同步等模块的实现方法,涉及到的技术工具包括 FFmpeg、SDL、QML 等。
- 移动 OS 设计之性能设计 1 - 应用程序与 OS 之间的边界思考: 移动操作系统设计之性能设计:应用程序与操作系统的边界探讨
- 记 Android12 上一个原生 BUG 引起的系统重启: 文章分析了 Android 12 系统中一个原生 BUG,该 BUG 在特定的手势操作下会导致系统重启。通过日志分析、代码阅读和复现问题,作者详细探讨了该问题的原因,并指出是因为事件处理过程中 Java 层和 Native 层的异常处理逻辑不一致,导致同一事件触发了两次 sendFinishedSignal。最后提到谷歌已经修复了该问题。
- https://androidweekly.net/issues/issue-664: Android Weekly Issue #664
- 深入聊聊 Flutter 里最接近官方的热更新方案:Shorebird: 本文深入探讨了 Flutter 的热更新方案 Shorebird。介绍了其作为 Flutter 前创始人的商业项目,是最接近 RN code push 的存在。阐述了其实现方式,包括对 Flutter Engine 和 Dart VM 的“魔改”,通过下发“二进制”patch 文件实现热更新,Android 和 iOS 平台的不同表现及原理,还提及了局限和优势,如不能更新 Native 代码、不支持跨版本等,但其版本跟进快,退出机制几乎无损。
- 揭开 Android View 的神秘面纱:深入探索工作原理: 这篇文章深入探讨了 Android View 的工作原理,包括架构基础、测量、布局、绘制、事件分发机制等环节,还介绍了自定义 View 的常见类型和实战应用,并对其工作原理进行了总结回顾与未来展望,提及新技术如 Kotlin、Jetpack Compose 对 View 开发的影响及发展趋势。
- Comprehensive Guide: Get User Location on Android with Jetpack Compose: 通过本文,作者详细介绍了如何在 Android 中使用 Google 的融合位置提供程序(Fused Location Provider)与 Jetpack Compose 来获取用户位置。文章涵盖了融合位置提供程序的优势、权限处理、位置请求参数设置,以及通过回调接收位置更新的完整实现,并提供了一个示例应用程序的代码链接。
- Android build structure: Android 项目的构建结构和文件说明,包括最佳实践和文件用途。
- 揭开 Flutter Slider 中 Shapes 的神秘面纱: Slider 是 Flutter 中使用非常多的一个组件,通常设计师都会对 Slider 做很多的自定义设计,在 Android 中,我们其实是很难通过配置 xml 来改变 Slider 的外观的,而在 Flutter 中,我们可以很方便的组合整个实现,当然,前提是你需要对 Slider 的整体概念有个清晰的认识。
- Level Up Your App: Why Android Widgets are a Game-Changer: Android 开发者博客最新文章讨论了在 Android 应用中集成小部件(Widgets)的重要性以及其对应用成功的影响。
- 257 - Future of AndroidDev in an AI world with Vinay Gaba: Join us as we talk with Vinay Gaba, Android GDE and leading voice in Android development, about the future of the field. Vinay shares insights from interviews with top Android devs on their three-year predictions, and offers his own perspective. We cover AI’s impact, evolving development roles, and crucial future skills.
- 腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台: 腾讯即将开源 Kuikly 跨端框架,该框架基于 Kotlin 开发,支持多平台开发(Android、iOS、H5、小程序、PC 等)。Kuikly 采用声明式+响应式开发模式,输出的产物映射到系统原生控件,支持动态化更新,同时具有轻量化特性。Kuikly 的核心设计是通过薄原生渲染层减少两端代码不一致的问题,显著降低开发代码量。是否完全接入 Compose MultiPlatform 仍需等待开源后确认。
- Memory ordering: Armv8-A 架构采用弱内存排序架构,允许无依赖的内存访问以不同于程序顺序的顺序完成,从而提高处理器效率。文章重点讨论了内存重排序的行为、限制,以及如何通过屏障指令来强制排序以确保正确性。
- 再学安卓 - binder 之驱动函数 ioctl: binder_ioctl 是 Binder 驱动中最核心的函数,没有之一,它负责通信两端 IPC 数据的收发以及 Binder 参数的设置。在 IPC 通信过程中,进程调用此函数执行相关命令,达成传输的目的。因此,我们单独用一篇文章的篇幅来分析它。本文内容较多,大致分为基础结构体、C 端流程和 S 端流程三部分,建议分段阅读。推荐前往掘金(PC web 端)获得更好的阅读体验。
- Tool and library interdependencies : 这篇文章详细介绍了 Android 构建系统中的工具和库之间的相互依赖关系,包括源代码、库依赖、工具、Gradle 插件、编译器、Android SDK 和 JDK 等。文章解释了语义版本控制、依赖管理、构建关系以及如何优化和扩展构建过程。
- 随心所动,厂商的 CPU 核管理策略介绍: 随着 CPU 架构的发展,工艺的升级,带来性能提升,能效的提升(同性能下)。但是由于极限性能的增加,也带来了 peak 功耗的增加(大部分情况下,能效比的提升无法抵消这部分),CPU 功耗优化一直是广大 SOC 厂商比较头疼的问题。
- CPU 的分支预测: 本文详细讲解了现代 CPU 中的分支预测技术,包括其重要性、基本概念、方向预测和目标地址预测的具体方法,以及相关的硬件设计,如 BTB(分支目标缓冲区)和 RAS(返回地址堆栈)。分支预测对于提高处理器性能至关重要,通过预测分支指令的方向和目标地址,可以减少流水线清空的次数,从而提高执行效率。
- WMS 无焦点窗口的 ANR 问题【Android 14】: 这篇文章分析了 Android 14 中 WMS 无焦点窗口导致 ANR(应用无响应)的问题,详细探讨了问题的复现、原因和解决方案,并对相关日志和代码进行了深入剖析。
- Dalvik, ART, JIT, and AOT in Android: 这篇文章详细介绍了 Android 中的 Dalvik、ART、JIT 和 AOT 的概念及其演变过程,并分析了它们的优缺点以及如何通过后续优化(如 Profile-guided Compilation、ART Cloud Profiles 和 Baseline Profiles)解决相关性能问题。
- 大模型时代手机的杀手锏功能思考: 大模型技术的兴起将彻底改变手机的功能和使用方式,作者提出了“杀手锏功能”的概念,即利用大模型技术提升手机的信息消化效率,使其成为整合和处理多模态信息的核心工具。
- 聊一聊 Android 的消息机制: 本文详细介绍了 Android 平台的消息机制,包括 Looper、Handler 和 MessageQueue 的运行原理及相互关系。通过分析源码和示意图,深入剖析了消息发送、处理、队列管理以及阻塞机制的实现方式,帮助读者理解 Android 消息机制的核心逻辑。
- CS61C 系列-计算体系结构的伟大思想: 浮点数的表示 IEEE 754-Lecture 07: 本文深入探讨了 IEEE 754 浮点数表示标准及其在 AI、深度学习等领域的应用,介绍了不同精度类型(FP32、FP16、BF16 等)的特性和应用场景,重点分析了低精度量化技术(如 Q4)对模型效率和性能的优化。文章还展望了未来精度技术的发展趋势,包括动态精度调度和新型数字格式。
- kotlin-weekly-449: kotlin-weekly-449
- 烽火连营——爆杀 Jank 闪烁卡顿: 这篇文章主要探讨了预览高清图切换时出现明显闪烁卡顿的问题。分析表明卡顿由 GPU 计算、频繁 GC 等导致,提出优化策略,如用 FadeInImage 替换 AssetImage,其后台异步解码、缓存复用等特性降低了 CPU 负载和 Jank 频次。还提到若放开图片资源限制,可进行图片压缩和按需加载等优化。
- 解锁 Linux 共享内存:进程通信的极速引擎: 本文详细介绍了 Linux 系统中共享内存的概念、核心原理、使用方法以及其在实际场景中的应用。共享内存是一种高效的进程间通信方式,允许多个进程通过访问同一块内存区域实现数据共享。文章还分析了共享内存的优势、常见问题及解决方案,并通过多个实际案例展示了其在多进程数据共享和实时处理中的重要作用。
杂记
- ColorOS 动画曲线粗浅分析:为何有的地方怪,怪在哪里?: 在体验 ColorOS 15(下文简称「c15」)的过程中,我注意到它的部分动画有一点奇怪,但当时我并没有非常深入地去理解 c15 的曲线设计意图。直到有了官方给出的图例可以参考,作为动画爱好者,我自然是来了兴趣。更加深入地思考加上每天多次刻意的动画系曲线观察,我想我应该也能将我的想法比较通俗易懂地解释出来,带大家些微窥见 c15 设计的一角。
- 如何看待当前的「前端已死」的论调?: 文章围绕“前端已死”的论调展开讨论,从技术发展、行业现状、AI 影响等多角度分析了前端开发的现状与未来趋势。作者认为前端并未死亡,而是进入了一个稳定发展阶段,并在 AI 时代焕发出新的生机。文章还提出了应对行业变化的策略和发展建议。
- 程序员阅读清单:我喜欢的 100 篇技术文章(41-50): 程序员们也许是互联网上最爱分享的群体之一,他们不仅喜欢开源自己写的软件,也爱通过写文章来分享知识。从业以来,我阅读过大量技术文章,其中不乏一些佳作。这些佳作中,有些凭借深刻的技术洞见令我深受启发,也有些以庖丁解牛般的精湛手法解释一项技术,让我读后大呼过瘾。作为“爱分享”的程序员中的一份子,我想当一次推荐人,将读过的好文章分享给大家。我给这个系列起名为 《程序员阅读清单:我喜欢的 100 篇技术文章》。
- vol34.等待时什么都不要做,只需要等待: 文章探讨了耐心等待的重要性,尤其是在现代社会中,过度干预和急于求成反而可能带来负面结果。同时,文章还涉及了人工智能代理的潜力、产品开发策略、决策瘫痪的应对方法,以及想象力与创造力的区别等内容。
AI
- 一个提示词 claude 生成一个 app 的 ui/ux: 本文讨论了作者利用 Claude 生成 app 的 UI/UX 的相关实践,分享了不同阶段的操作方法、提示词运用、与设计软件协作方式等内容。
- 关于 AI 的一些实践和思考: 这篇文章分享了作者在 AI 时代的实践与思考,探讨了 AI 如何改变生活、工作方式以及对个人成长的影响。作者通过使用生成式 AI,提升了编程、写作等多方面的效率,同时也强调了初心和好奇心的重要性,并提出构建数字资产和个人数据库的必要性。
- 【科普】程序员必看,AI 时代新协议 MCP 正在连接吞噬一切,20+资源全收录!: 文章介绍了新兴的 AI 时代协议 MCP(Model Context Protocol),其核心是为 AI 模型提供标准化的上下文连接方式,类似于 USB-C 接口在硬件中的作用。文章详细阐述了 MCP 的概念、运行机制、核心组件、实际应用场景,以及相关资源和学习资料。
- MCP 是何方神圣?——给 AI 世界装上“万能插头”的幕后大佬: MCP 是 AI 世界的“万能插头”,由 Anthropic 于 2024 年底推出,旨在解决 AI 与不同数据源和工具对接的复杂性。它通过统一协议,让 AI 能轻松访问和操作各种资源,从本地文件到云端数据,极大提升了效率和功能扩展性。MCP 的四大组成部分(主机、客户端、服务器、资源库)协同工作,使 AI 能更智能地完成任务,同时保障数据安全。未来,MCP 将让普通人也能轻松指挥 AI,推动智能化生活的普及。
- llama.cpp 源码解读–推理流程总览: 本篇文章将会对 llama.cpp 在推理时的流程进行总览介绍,关于 llama.cpp 的概念介绍与 GGML(llama.cpp 框架使用的张量计算库)的相关内容见往期文章。
- 70% 困境:AI 辅助开发的残酷真相: 这篇文章探讨了 AI 辅助开发的现状及其局限性,提出了“70% 问题”和“知识悖论”,并分析了 AI 对不同经验水平开发者的影响。作者还分享了实际有效的 AI 使用模式,以及对未来 AI 在软件开发中角色的展望。
- AIGC Weekly #111: Claude 3.7 和 GPT-4.5 相继发布,前者在编码和网页开发方面有显著改进,后者则提升了知识库和用户意图理解能力。Deepseek 开源周推出多项高效模型训练库,多个 AI 产品和工具更新,展示了 AI 技术的快速发展和应用潜力。
鸡血
书籍推荐
《Android 性能优化之道》——从底层原理到一线实践: 本书围绕 Android 性能优化展开,阐述了其重要性,包括提升程序价值和增强开发者竞争力。讲解了做好性能优化的本质,即充分合理使用硬件资源和取得收益,并从应用层、系统层、硬件层三个维度分析,还指出性能优化的难点体现在知识储备、思考角度、思考方式和优化流程。同时介绍了本书特色、主要内容、读者对象及阅读方式,涵盖内存、速度等全面优化内容,适合不同阶段读者。
投稿指南
欢迎投稿分享您的:
- 技术博客
- 实践经验
- 工具推荐
投稿方式:
- 公众号后台回复”投稿”
- 本周刊下面留言
- 发邮件 :dreamtale.jg@gmail.com
- 微信联系:Gracker_Gao
关于作者
下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!
- 掘金 - Gracker:https://juejin.cn/user/1816846860560749
- 知乎 - Gracker:https://www.zhihu.com/people/gracker
- 个人博客 - Android Performance : 写东西的地方
- 个人介绍 - 欢迎加微信群组多多交流 :里面有个人的微信和微信群链接。
- 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
- 微信公众号 Android Performance :
- Android 性能优化知识星球 : 个人运营的一个知识星球,欢迎加入,多谢支持~
版权声明
- 本周刊遵循 CC BY-NC-SA 4.0 协议
- 转载请注明出处:Android Weekly 第 X 期
- 欢迎订阅、分享,让更多开发者受益