Android Weekly #202515

Android Weekly 是一份专注于 Android 技术生态的周刊,每周一更新。本周刊深入挖掘 Android 系统架构、性能优化、跨平台开发、AI 等领域的高质量技术内容,为开发者提供持续的知识更新与技术洞察。

订阅渠道:[微信公众号] | [知乎专栏] | [掘金] | [RSS]

技术文章

  1. 移动 OS 设计之性能设计 7 - 扁鹊三兄弟中大哥型优化: 编程范式: 本文探讨了如何通过编程范式来约束应用程序行为,以实现更优的性能表现。通过"扁鹊三兄弟"故事的启发,提出了预防性设计的重要性,并分析了编程范式在操作系统性能优化中的应用。
  2. 基于预测模型的 GPU 绘制效率优化方法: 该文章介绍了一种基于预测模型的 GPU 绘制效率优化方法,旨在通过提前预测所需的 GPU 算力来提高绘制任务的执行速度。文章详细描述了绘制流程、影响 GPU 负载的关键指标以及具体的优化方案,包括单 APP 和多 APP 的性能预测。
  3. 性能优化:官方文档抓取开机 trace 给 perfetto 分析--Recording traces on Android boot: 这篇文章介绍了如何在 Android 设备开机时智能抓取 trace 以进行性能优化分析,尤其是在无法通过 adb 连接设备的情况下。文章详细讲解了配置文件的准备、推送、启用以及获取 trace 文件的步骤,并提供了相关链接供参考。
  4. 记录一次利用 perf 在线定位 BUG 代码位置的处理过程: 本文记录了一次使用 perf 工具在线定位 BUG 代码位置的处理过程。文章详细描述了问题的由来、核心代码、问题出现的情况、分析处理步骤以及最终的结论和建议。主要问题是程序在采样时 CPU 使用率过高,并最终通过 perf 工具定位到一个死循环问题,成功解决。
  5. 自适应流媒体(ABR)技术与算法解析: 自适应码率(ABR)流媒体技术能够根据用户的网络状况动态调整视频的质量和码率,以确保视频播放的流畅性和用户体验。本文介绍了 ABR 的背景、协议、目标、挑战以及常用的算法。
  6. [译]AI 算力民主化 第八部分:MLIR 编译器基础设施如何?: 本文讨论了 MLIR 编译器基础设施的起源、发展及其在 AI 算力民主化中的作用。尽管技术上取得了成功,MLIR 未能打破 CUDA 的垄断,原因在于政治博弈、权力斗争和技术妥协。文章还探讨了硬件公司在构建 AI 软件方面面临的挑战。
  7. 直播回放:native 程序如何高效 Debug 获取堆栈 perfetto+simpleperf/VSCode/CallStack: 直播回放介绍了如何高效 Debug 获取堆栈的几种方法,包括使用 perfetto、simpleperf、VSCode 和 CallStack。
  8. Android Weekly Issue #671: Android Weekly is a free newsletter that helps you to stay cutting-edge with your Android Development
  9. Linux | Misfit task migration: 本文讨论了 Linux 系统中"Misfit 任务迁移"的概念,特别是在异构 CPU 环境下如何优化任务调度以提升性能。文章详细解释了相关的代码实现和设计思路,并探讨了 MTK 对"Misfit"任务的定制化处理。
  10. Android V app 冷启动(9) Activity 生命周期调度: 本文分析了 Android V 应用的冷启动过程,特别是 Activity 生命周期的调度机制。文章详细描述了 Activity 从创建到恢复的整个过程,包括如何通过不同的 Java 代码实现各个生命周期阶段的转换。
  11. 【NowInAndroid 架构拆解】(9)重新审视 NowInAndroid 架构设计: 这篇文章对 NowInAndroid 项目的架构设计进行了详细的分析和总结,尤其关注了 ForYou 页面的实现。文章探讨了数据流和控制流在 UI 层和 Data 层之间的传递,描述了模块化和可测试性设计的重要性,并提供了具体的代码实现和设计思路。
  12. MMKV 的源码分析:为什么他的性能更高,为什么他比 SP 好,为什么他的数据更加的精简,比传统 IO 更高效的文件操作方式: 这篇文章分析了 MMKV 的源码,解释了为什么 MMKV 的性能比 SharedPreferences(SP)更高。文章详细讨论了 MMKV 的文件操作、数据格式和数据更新方式的优势,并通过性能测试对比了 MMKV 和 SP 的写入速度。
  13. Android 监听开机自启,是否在前后台,锁屏界面,息屏后自动亮屏,一直保持亮屏: 这篇文章详细介绍了如何在 Android 设备上开发广告应用,尤其是关于开机自启动、锁屏广告以及保持屏幕亮屏的技术实现。文章提供了代码示例,帮助开发者实现这些功能,并解释了相关权限的使用。
  14. Android 应用内存分析与优化 - 理论篇: 内存优化一直是一个很重要但却缺乏关注的点,内存作为程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。在你认真跟踪下来可能会发现内存出现问题的地方仅仅只是一个表现的地方,并非深层次的原因,因为内存问题相对比较复杂,它是一个逐渐挤压的过程,正好在你出现问题的代码那里爆了,所以针对应用的内存问题开发者必须多加关注。
  15. IntelliJ IDEA 2025.1 发布 ,默认 K2 模式 | Android Studio 也将跟进: IntelliJ IDEA 2025.1 版本发布,默认启用 K2 模式,同时 Android Studio 也将跟进。K2 模式带来了显著的性能提升,特别是在 Kotlin 代码分析、补全和导航速度上。尽管 K1 模式仍可使用,但未来将不再支持新语言特性和 IDE 优化。K2 编译器采用了模块化架构和并发容忍设计,消除了性能瓶颈,为未来的多线程分析奠定基础。K2 模式支持 Kotlin 2.0 及以上的新语言特性,开发者需注意插件的迁移适配。
  16. Android 副屏录制方案: 本文探讨了在 Android 系统中实现副屏录制的各种方案,分析了现有方案的优缺点,并提出了一种无需权限的终极方案。
  17. Jetpack Compose 的性能优化建议: 本文译自「Performance Optimization in Jetpack Compose」,原文链接 carrion.dev/en/posts/pe...,由 Ignacio Carrión,发布于 2025 年 4 月 8 日。Jetpack Compose 是一个优秀的声明式 UI 框架,对开发者非常友好,可以高效率的撸各种 UI 页面和 UI 元素。但它仍然并不是很成熟,有些事情还做不了,而且渲染性能也略输于原生的 View 方式,毕竟它比原生的 View 多了一层组合树和渲染树。因此,在享受声明式 UI 带来的便捷的同时,就需要深入地了解其内部的工作机制,和学习一些高级技巧,以提升运行时的渲染性能。另外,需要 注意虽然这篇文章是针对 for Android 的 Jetpack Compose,但大部分也适用于 Compose Multiplatform。
  18. The Fourth Beta of Android 16: Android 16 的第四个测试版已发布,这是计划中的最后一个测试版更新,开发者需要确保其应用程序或游戏已准备好适配 Android 16。该测试版为开发者提供了最终的 API 和应用行为,适用于更多设备类型,开发者应尽快进行兼容性测试和更新。文章强调了一些关键变化,如更严格的 JobScheduler 配额、广播和 ART 变化、Intent 安全性增强、16KB 页面大小要求、无障碍功能的更新等。此外,2025 年计划有两次 Android API 发布,Q2 的主要版本将引入行为变化,Q4 的次要版本则专注于功能更新和优化。
  19. Boost app performance and battery life: New Android Vitals Metrics are here: Android Developers Blog 文章介绍了新的 Android Vitals 指标,旨在提升应用性能和电池寿命。文章强调了与顶级 OEM 厂商(如三星)的合作,以利用他们的实际洞察来减少资源消耗。新指标的重点是过度唤醒锁定行为,该行为会导致电池过度消耗。开发者可以通过优化应用的唤醒锁定行为来改善用户满意度。文章还提到这些指标目前处于测试阶段,开发者可以提供反馈以帮助完善指标定义。
  20. ICLR&CVPR 2025 美团技术团队论文精选: ICLR 全称为 International Conference on Learning Representations 国际学习表征会议,是致力于推进人工智能分支中表示学习专业(通常也被称为深度学习)的顶级会议。ICLR 与 ICML 和 NeurIPS 并列为三大机器学习和人工智能会议,在 2025 谷歌学术期刊与会议影响力榜单中排名第 10。

杂记

  1. 来美国的两年后: 这篇文章记录了作者在美国生活两年的适应过程,分享了在衣食住行、语言、消费、心态、家庭等方面的体会和挑战。作者探讨了在新环境中如何找到适合自己的生活方式,并反思了身份焦虑和未来规划的问题。
  2. How To Remember Everything You Read With AI: 这篇文章探讨了如何利用人工智能(AI)来加深阅读理解,并强调阅读不仅仅是获取信息,而是通过接触新思想来改变思维方式和身份。文章指出,尽管 AI 可以提供信息,但真正的变化来自于行为和身份的改变,而不是简单的信息积累。
  3. 生命不息,折腾不止: 这一篇文章是 joojen Zhou 的个人日志,描述了他在生活和工作中的一些经历和思考。他提到了一些关于网站功能优化、阅读和运动数据统计的方法,以及学习英语的挑战。同时,他分享了如何利用技术工具来提高效率,并探讨了个人成长和自我驱动力的重要性。
  4. 技术狂飙下的冷思考:大模型的"科林格里奇困境": 文章探讨了大模型技术发展中的"科林格里奇困境",即技术在早期阶段的可控性与成熟阶段的失控性之间的矛盾。文章分析了大模型的现状、伦理治理问题、以及其面临的挑战,包括幻觉、偏见、可解释性和涌现现象等,并强调了技术与伦理治理之间的动态平衡的重要性。
  5. 感受即真理的人注定没朋友?: 这篇文章探讨了"拎得清"这个概念,涉及个人感受与群体感受之间的平衡,以及在社交场合中如何处理情绪和礼仪。通过一个具体的案例,文章分析了在群体中如何处理冲突和情绪,以及"我们"和"大家"这两种群体形式的区别。
  6. 小微团队是未来趋势: 小微团队是未来的发展趋势,尤其在科技和互联网行业。得益于人工智能和技术的进步,小规模团队甚至个人能够完成过去需要大团队才能完成的工作。这样的团队更易管理,创始人能专注于产品开发,而不必扩张公司规模。小型企业在管理成本和灵活性上具有优势,能够更好地应对市场变化和危机。
  7. Weekly Collections 14: Weekly Collections 是专门针对小报童订阅者发布的内容,主要是以周为粒度跟订阅者分享我读到的有意思的文章,看到的令我有感触的社交发文,比较实用的资源等等。有价值的文章和思考值得反复看,为了方便查找,后面的编号就是本年度的第几周,例如 12 表示今年的第 12 周的 weekly collection。

AI

  1. Vibe Coding 技术白皮书:技术平权时代的到来: 本文探讨了"Vibe Coding"(氛围编程)的概念,这是一种利用 AI 工具辅助生成代码的新兴编程方式。文章分析了 Vibe Coding 的优势与挑战,并介绍了其在行业中的应用案例和对软件研发生态的影响,同时探讨了技术伦理与风险防控等问题。
  2. MCP 协议深度解读:技术创新正以前所未有的速度突破: 本文深入解读了 MCP 协议,探讨其作为 AI 应用架构基础协议的技术原理和实际业务影响。MCP 协议通过标准化接口实现了大模型与工具的动态交互,提升了 AI 应用的效率和兼容性,并在多工具协作场景中得到了验证。
  3. 做 AI 产品两年,我得出的实操经验: 这篇文章总结了作者在过去两年中开发 AI 产品的实操经验,重点探讨了 AI 产品开发的难点、提示词工程的重要性以及如何构建 AI 产品团队。作者分享了许多具体的例子和经验,以帮助其他 AI 开发者更好地理解和应对 AI 产品开发中的挑战。
  4. 3 个重点讲清楚 GPT4.1:OpenAI 的新一代基础模型: OpenAI 最新发布的 GPT4.1 是其新一代基础模型,替换了之前的 4o。相比 4o,GPT4.1 在图像理解和代码能力方面表现更佳,并且价格降低了 20%。此外,GPT4.1 具备 1M 超长上下文能力,在用户实测中表现优异,尤其是在处理超长文本时。令人惊喜的是,GPT4.1 mini 的性能也非常不错,且价格便宜。虽然 GPT4.1 的代码能力超越 GPT4.5,但在推理能力上仍不及 o1 模型。
  5. 我是如何高效翻译 65 页 Google 官方提示工程白皮书 PDF 文件的: 这篇文章介绍了作者在翻译 65 页的 Google 官方提示工程白皮书 PDF 文件时的一些高效方法和经验。他主要使用了将 PDF 转成 Markdown 再翻译的方法,并分享了多种工具和技巧来优化翻译流程。
  6. 你在为 AI 工具付费?我只花了 100 美元就解锁了一大堆牛逼工具,详细教程在这里: 著名产品 Newsletter 主理人、播客主播 Lenny ,靠自己的人脉关系,联合一大堆牛逼 AI 工具产品搞捆绑销售。
  7. 【有嘴就能做开发】Cursor------AI 编辑器 使用详解: 这篇文章详细介绍了 Cursor,一个结合 AI 大模型的代码编辑器。Cursor 不仅支持代码补全、错误定位,还能通过自然语言生成代码,非常适合没有编程经验但有开发想法的人。文章还提到了 Cursor 的发展历程、融资情况以及其功能和使用技巧。
  8. Claude 编程最佳实践指南: 掌握智能体编程的核心技巧,提升工作流效率

鸡血

招聘信息

Android 开发工程师

职位描述:

  1. 负责 TikTok 产品 Android 客户端稳定性优化、技术攻关,打造极致用户体验;
  2. 参与调查和解决各类影响用户体验的疑难问题,如崩溃、ANR、内存、Native Crash;
  3. 参与开发稳定性和 ANR 优化的各类平台工具,提升排查效率;
  4. 和 QA、PMO、架构等多个团队共建流程体系,为高质量推出 TikTok 新版本负责;
  5. 参与技术预研,并将相关优化方案应用到 TikTok 的产品开发中;
  6. 参与厂商技术合作,共同提升客户端在各个厂商设备上的用户体验,同时提高 TikTok 在业界的技术影响力。

Requirements

  1. 3 年以上 Android 客户端或 Framework 开发经验;
  2. 熟练掌握 Java/Kotlin/C/C++/Rust 开发语言之一;
  3. 扎实的编程能力,熟悉多线程和网络编程,了解操作系统原理;
  4. 优秀的分析和解决问题能力,对解决具有挑战的问题充满激情;
  5. 加分项:有 Framework 开发经验/客户端安全领域/客户端架构/客户端基础技术/跨端 SDK 开发经验优先。

邮箱:zhanglin1@bytedance.com

iOS 优化工程师

抖音基建团队 iOS 体验方向招人啦,欢迎大家沟通,全程保密,无论是技术方向还是业务方向都欢迎沟通。base 地上海

【职位描述】

  1. 负责抖音系 iOS 用户体验和性能优化,包括但不限于启动速度、流畅度、系统资源优化、安装包大小、端智能、播放体验等方向。
  2. 负责性能监控及归因体系建设,包括问题拆解、指标搭建、诊断工具、平台等多个维度全链路建设。
  3. 参与设计和开发各类体验优化框架和效率工具,提供高可用通用解决方案,助力业务降低性能瓶颈。
  4. 积极跟进业内外先进技术,验证可行性和推进落地,总结相关经验和通用方案,提升技术影响力。

【职位要求】

  1. 本科及以上学历,计算机、通信等相关专业,不限定工作年限。
  2. 计算机基础扎实,熟悉 OC/Swift/C++ 或者具有快速学习新编程语言的能力,编码习惯良好。
  3. 有性能优化、APM、架构等经验者优先,有业务背景但对技术有深度追求者优先。
  4. 具备优秀的解决问题和逻辑思维能力、有强烈的责任心和团队精神,善于沟通和合作。

邮箱:chenjiawei.kisson@bytedance.com

投稿指南

欢迎投稿分享您的:

  • 技术博客
  • 实践经验
  • 工具推荐

投稿方式:

  • 公众号后台回复"投稿"
  • 本周刊下面留言
  • 发邮件 :dreamtale.jg@gmail.com
  • 微信联系:Gracker_Gao

关于作者

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 掘金 - Gracker:juejin.cn/user/181684...
  2. 知乎 - Grackerwww.zhihu.com/people/grac...
  3. 个人博客 - Android Performance: 写东西的地方
  4. 个人介绍 - 欢迎加微信群组多多交流 :里面有个人的微信和微信群链接。
  5. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  6. 微信公众号 Android Performance
  7. Android 性能优化知识星球 : 个人运营的一个知识星球,欢迎加入,多谢支持~

版权声明

  • 本周刊遵循 CC BY-NC-SA 4.0 协议
  • 转载请注明出处:Android Weekly 第 X 期
  • 欢迎订阅、分享,让更多开发者受益
相关推荐
Lei活在当下3 小时前
【业务场景架构实战】7. 多代智能手表适配:Android APP 表盘编辑页的功能驱动设计
android·设计模式·架构
手机不死我是天子7 小时前
《Android 核心组件深度系列 · 第 2 篇 Service》
android
前行的小黑炭7 小时前
Compose页面切换的几种方式:Navigation、NavigationBar+HorizontalPager,会导致LaunchedEffect执行?
android·kotlin·app
前行的小黑炭8 小时前
Android :Comnpose各种副作用的使用
android·kotlin·app
BD_Marathon21 小时前
【MySQL】函数
android·数据库·mysql
西西学代码1 天前
安卓开发---耳机的按键设置的UI实例
android·ui
maki0771 天前
虚幻版Pico大空间VR入门教程 05 —— 原点坐标和项目优化技巧整理
android·游戏引擎·vr·虚幻·pico·htc vive·大空间
千里马学框架1 天前
音频焦点学习之AudioFocusRequest.Builder类剖析
android·面试·智能手机·车载系统·音视频·安卓framework开发·audio
fundroid1 天前
掌握 Compose 性能优化三步法
android·android jetpack
TeleostNaCl1 天前
如何在 IDEA 中使用 Proguard 自动混淆 Gradle 编译的Java 项目
android·java·经验分享·kotlin·gradle·intellij-idea