MobileOrg Android:从 API 17 迁移到 API 34 的实战记录

💡 原文中文,约6800字,阅读约需17分钟。
📝

内容提要

本文记录了 MobileOrg Android 从 API 17 迁移到 API 34 的过程,分为构建系统升级、AndroidX 迁移和运行时兼容性修复三个阶段。在迁移过程中遇到菜单图标消失、NotificationChannel 崩溃、权限检查等问题,提供了详细的修复经验和教训。强调静默失效比崩溃更可怕,建议全局搜索同类问题,以确保代码在新环境下正常运行。

🎯

关键要点

  • MobileOrg Android 从 API 17 迁移到 API 34 的过程分为三个阶段:构建系统升级、AndroidX 迁移和运行时兼容性修复。

  • 在迁移过程中遇到多个问题,包括菜单图标消失、NotificationChannel 崩溃和权限检查等。

  • 静默失效比崩溃更可怕,功能静默消失不会在日志中显示,需依赖人工测试发现。

  • 建议在迁移后全局搜索同类问题,确保所有相关代码都得到修复。

  • 编译通过并不代表运行正确,需在目标设备上逐个测试。

  • 使用 CI 构建而非本地构建,以避免环境差异导致的问题。

延伸问答

MobileOrg Android 迁移到 API 34 的主要阶段有哪些?

迁移过程分为构建系统升级、AndroidX 迁移和运行时兼容性修复三个阶段。

在迁移过程中遇到了哪些主要问题?

主要问题包括菜单图标消失、NotificationChannel 崩溃和权限检查等。

为什么静默失效比崩溃更可怕?

静默失效不会在日志中显示,功能消失只能依赖人工测试发现,导致用户体验下降。

如何确保代码在新环境下正常运行?

建议在迁移后全局搜索同类问题,并逐个在目标设备上测试代码。

使用 CI 构建的好处是什么?

使用 CI 构建可以避免本地构建环境差异导致的问题,确保构建的一致性。

在迁移过程中如何处理权限检查问题?

需要在运行时请求危险权限,确保在 Service 中检查权限后再执行相关操作。

➡️

继续阅读