跳转至

Android 性能优化技术月报 | 2025 年 9 月

每个月都会有一些 Android 性能优化相关的优质内容发布,然而,碎片化阅读使得这些知识难以形成完整体系,且容易被遗忘。为解决这些问题,我决定尝试使用技术月报的形式,总结我在最近一个月内查阅的 Android 性能优化相关的优质内容。

月报的主要内容包括:整理展示我在最近一个月所查阅的 Android 性能优化领域的最新技术动态、精选博客,精选视频等内容。

精选博客

Android Studio 新功能 Journey Test:借助 AI 实现基于自然语言的 UI 测试用例编写

在 Android 应用开发中,大家经常使用单元测试框架进行 UI 测试。随着技术演进,Android Studio 推出的 Journey Test 功能,依托 Gemini AI,为 UI 测试带来了全新的范式转变。

  • 核心能力创新:Journey Test 打破传统 UI 测试需编写复杂代码的模式,借助自然语言和 Gemini AI 能力。开发者像产品经理或 QA 描述计划一样,用自然语言描述如 “在邮箱输入框输入内容并验证错误提示”,Gemini AI 就能转化为可执行测试用例,兼顾人类可读性与机器精准执行,为 UI 测试带来全新思路。
  • 完整工作流程:创建 Journey 文件通过特定步骤在 Android Studio 生成 XML 文件;编辑测试步骤可在 Design 视图友好操作或在 Code 视图编写自然语言指令,如登录界面测试的 XML 示例展示了全面测试流程;运行与调试时选设备运行,Android Studio 部署应用、调用 Gemini AI 执行并生成便于调试的报告。
  • 编写技巧与适用场景:编写时分离断言与操作、利用滑动操作指引 Gemini、避免复杂交互能提升测试效率。它适用于需求文档与测试用例协同对齐、原型阶段 UI 流程验证及补充现有测试,不适用于生产环境 CI/CD 流水线、性能敏感高频测试及复杂交互测试,在特定场景下能发挥重要作用。
<action>Type "user@example.com" into the email field.</action>
<action>Verify that an error message "Email is required" is displayed.</action>

盘点近期LLVM加持的国内编译技术新趋势

近期国内编译界热点频出,字节发布 KMP 运行时与 GC 相关文章、开源 Lynx RN 跨平台引擎;华为在 HDC 2025 开源仓颉编程语言及其编译器、运行时与标准库;蚂蚁开源基于 LLVM 的 JVM JIT 编译器 Jeandle;OPPO 发布 “繁星编译器”。这些技术大多复用 LLVM 编译优化能力,避免了从零自研的巨大工作量,利用开源技术在有限人力下达成业务目标。随着 LLVM 技术发展,编译技术将在更多业务场景发挥作用。

  • 仓颉语言开源:2025年7月30日华为在HDC 2025开源仓颉语言,涵盖编译器、运行时与标准库。编译器前端含LLVM IR代码生成器,中后端改进适配LLVM以减少工作量。运行时以高性能、轻量化为目标,提供自动内存管理等功能,且继承方舟编译器成果,体现技术传承。
  • 字节Lynx RN跨平台引擎:今年3月字节开源Lynx引擎,其中JS引擎基于QuickJS改进,在解释器、JIT和内存管理方面有优化。其PrimJS也已开源。同时字节发表KMP相关文章,介绍在GC方面的问题与解决方法。
  • KMP适配鸿蒙:安卓应用适配鸿蒙,因Kotlin与Java可自由转换,KMP结合Compose成为较优选择。通过提供K/N Runtime支撑Kotlin Native二进制运行,编译Kotlin代码为LLVM IR并添加支撑函数,再由LLVM后端编译成iOS或鸿蒙二进制,实现代码复用,但KMP在GC性能等方面仍需完善。
  • 蚂蚁开源Jeandle:8月蚂蚁开源基于LLVM的JVM JIT编译器Jeandle,该技术原是Azul公司强项,蚂蚁开源运作开发并给出明确Roadmap,预计2026年底有较大进展,致力于融合JVM和LLVM两套系统。
  • OPPO繁星编译器:9月OPPO发布“繁星编译器”,通过将dex转换为LLVM IR复用其编译优化能力,但引入编译时长和codesize问题,后续可能需大量工程工作来解决以推动技术推广。

哔哩哔哩Android视频编辑页的架构升级

本文介绍了哔哩哔哩Android视频编辑页的架构升级项目。背景是旧版编辑页存在界面冗余、代码耦合和维护困难等问题,产品团队提出轻量化升级需求,聚焦界面布局、用户交互、功能优化和新增功能(如Redo/Undo)。解决方案采用MVVM+UDF架构,分层设计为UI层、业务层和数据层,实现模块化拆分和单向数据流,依赖注入框架Hilt管理对象。关键功能点包括兼容旧业务面板、统一管理底部功能面板、设计高性能视频轨道控件,以及基于备忘录模式的Redo/Undo功能。项目历时半年,代码修改量9万+,强调团队协作和架构设计原则,如重构时机选择与避免过度复杂化。

  • (1)整体采用MVVM进行架构设计。
  • (2)遵循数据模型(UiState)驱动界面的原则。
  • (3)基本遵循单一可信数据源的原则。(SSOT:Single Source of Truth)
  • (4)遵循单向数据流原则。(UDF:Unidirectional Data Flow)
  • (5)对业务进行模块拆分,提高模块内的代码内聚,降低模块间的代码耦合。
  • (6)使用依赖注入,提高代码复用性,解决对象依赖问题。


最后更新: October 15, 2025