我正在开发一个 Android 应用程序,我认为它的功能可能在其他(运行 Java 的)平台上也有用(比如普通的桌面应用程序——尽管我希望涉及的其他平台对问题不重要)。
UI 不太可能以任何方式可移植(好的触摸屏幕 UI 和鼠标键盘 19 英寸屏幕 UI 之间差别太大了),所以我愿意单独重新实现 UI 部分。
然而,“业务逻辑”(呃,可怕的词)和模型(数据存储)类可以在管理核心应用程序时,在理论上被重复使用。我发现我写的类中很少有不引用一些 Android 特定部分的(例如 XML 资源文件、图像和 SQLite 数据库)。基本上我到目前为止写的所有内容都至少有一个与 Android 相关的导入。
我的问题有两个方面:
- 有哪些工具可用来帮助我在非 Android 平台上使用 Android 相关类和特性(例如资源、数据库);以及
- 由于不可移植性,应该完全避免使用 Android 平台的哪些类、特性等(出于简单起见,我们排除 UI 相关项),并且应该使用什么来提高可移植性。
只要提供一些理由,回答“哈哈哈,你注定要失败”的都可以。
(附言:如果社区维基仍然可用,我会将这个问题变成社区维基的。对于我来说,这似乎是一个完美的社区维基问题—— Android 可移植性技巧和工具列表)