这个问题的难点不在按钮,而在边界

Android 上做文件格式转换,真正复杂的地方不是页面,而是格式、权限、性能和失败兜底。用户想要的是”选文件、点转换、拿结果”,但底层要处理 URI、缓存目录、权限生命周期、导出路径和不同格式的兼容性。

本地处理还是云端 API

权衡原则
  • 本地:隐私更好、离线可用、延迟低,但能力受设备限制
  • 云端:格式能力更全、实现更快,但依赖网络和成本
  • 混合:简单格式本地做,复杂格式上云

我倾向于混合方案,因为它最接近真实产品:不要把所有功能都压给服务器,也不要为了”纯本地”把体验做得非常脆弱。

Compose 层的重点

UI 层最重要的是把”输入文件、处理中、导出成功、失败重试”这些状态做得非常明确。转换工具的信任感来自可预期,而不是装饰。

导出策略

  • 输出文件名要稳定且可识别
  • 失败时要保留原文件和错误上下文
  • 批量转换要有明确队列和进度状态

如果要把这个功能做成真正常用的工具,核心不在一个转换器,而在整条输入到输出链路是否可靠。