我正在为 Android 开发一个应用程序,我认为它的功能可能在其他(运行 Java 的)平台上有用(例如常规桌面应用程序 - 尽管我希望所涉及的其他平台对于手头的问题)。
UI 不太可能以任何方式便携(良好的触摸功能 4 英寸屏幕 UI 与鼠标和键盘 19 英寸屏幕 UI 之间的差异太大),所以我很高兴重新实现这一点分别地。
然而,理论上,核心“业务逻辑”(呃,可怕的词)和模型(数据存储)类可以在管理核心应用程序时重用。我注意到我正在编写的很多类最终都会引用一些 Android 特定的位(我有 XML 资源文件、图像和 SQLite 数据库作为示例)。基本上我到目前为止所写的所有内容都至少有一个与 Android 相关的导入。
我的问题有两个:
- 有哪些工具可以帮助我在非 Android 平台上使用 Android 相关的类和功能(例如资源、数据库);和
- 由于不可移植性,我应该完全避免使用 Android 平台的哪些类、功能等(为了简单起见,我们排除与 UI 相关的项目),以及我应该使用什么来提高可移植性。
只要提供一些理由,包含“哈哈哈哈,你注定失败”的答案就可以。
(P.S. 如果这个社区 wiki 仍然可用的话,我会制作这个社区 wiki;对我来说,这似乎是一个完美的 CW 问题——Android 可移植性技巧和工具的列表)
看起来您已经通过将 UI 和业务逻辑/模型分开来确定关键点。
而且 sqlite 本身不仅在 Android 中使用。当然,您与之交互的方式(例如 SQLDBOpenHelper)又有所不同。
因此,我认为将业务逻辑和模型尽可能分开是可行的方法。
然后,您可以在它周围放置一个包装器(例如,与特定数据库对话的“数据访问对象”模式)。
请记住,当您在 UI 方面尽可能具体地针对某个平台时,用户体验是最好的。
示例:Android市场上有一个App(Push & Ride),它似乎运行在J2ME模拟器中。所以屏幕输入并没有使用设备的普通软(或硬)键盘,而是模拟手机键盘,数字键上有“abc”“def”组合,这使得数据输入有点奇怪。
这个应用程序确实非常便携(而且它的功能真的很棒),但它就是感觉不太对劲。
当您想要使用多平台时,您可能还会考虑 Appcelerator 或 Adobe AIR 之类的东西
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)