5

在决定如何继续设计 J2ME 应用程序的 UI 时,我一直很困惑。基本上我已经完成了算法、函数和数据库的工作,但我无法为它带来一个好的 UI。我有两个想法:

  1. 让它成为一个 j2me 应用程序,它可以轻松地帮助我利用 Web 压缩技术实现快速和廉价的互联网访问(核心需求)。

  2. 让它成为一个网络应用程序,让它成为一种浏览器应用程序,只会加载在线应用程序。这个选项显然可以轻松地不用担心升级和 UI 功能,但是互联网成本和速度是限制因素。

我正在尝试使用第一个选项,而我的第一个方法是 LWUIT,但沿着这条线它变得很重,我什至在调试应用程序时遇到了麻烦,更不用说在小型手机上部署它了。事实上,在线搜索使问题变得更糟。似乎对 J2ME 应用程序的兴趣急剧下降,而且大多数关于它的讨论已经过时。事实上,很多人确实问过我同样的问题,我在网上看到了极具视觉吸引力的 J2ME 应用程序,但我似乎无法弄清楚它们的“秘密”

所以 我想听听有人开发了一个漂亮的J2ME 应用程序吗?开发一个外观漂亮的小应用程序的最佳方法是什么? 具体来说,我想链接到有用的工具和文章。谢谢!!


编辑:当前的发展...

在对如何最好地开发标准的现代J2ME 应用程序进行了长时间的思考和研究之后,我突然意识到最好的选择是一个统一的平台,也许这将使我能够轻松地将 HTML5 应用程序移植到 J2ME。然而,到目前为止我的搜索是徒劳的。我发现的唯一有趣的东西是CodeNameOneJava 的 Avatar One。然而,CodeNameOne 并没有真正提供我一直在寻找的解决方案,而 Oracle 似乎仍然忙于 Avatar One一年多。我想知道我是否遗漏了什么。看到了开源 LWUIT的功能,我认为开发一个 HTML5 渲染器不会太难,这将有助于将基于 HTML5 的应用程序移植到对 HTML5 有很好理解的 J2ME。那么我有什么遗漏吗?我可以参与的任何正在进行的开源项目还是什么?

谢谢!

4

2 回答 2

4

已经经历了我之前在这里的建议,我不一定推荐它,但你问了。


如果您想要一个看起来与使用 LWUIT 开发的一样好的应用程序,但在一个较小的 jar 文件中并且更容易为您调试,一种解决方案是根据在 LCDUI 上绘制的基本几何形状和图像开发 GUI Canvas

为了实现这 3 个目标,您将牺牲可扩展性和开发时间。

GUI 将变得更容易为您调试,因为您将在编写代码时学习代码,而不必学习 LWUIT。

您要么花时间尽早设计 GUI 引擎,要么花更多时间在以后重写代码。

与使用 LWUIT 相比,将应用程序移植到不同的屏幕尺寸需要更多的工作。

如果其他人在您的代码上工作,您将不得不教他们如何工作。

任何 GUI 修改都可能意味着必须更新底层代码以添加或删除组件。

GUI 的通用性越低,应用程序 jar 就越小。您可能最终放弃了面向对象编程的一些好处,只是为了减小应用程序的大小。


就现代方法而言,JavaME 并不真正适用于测试驱动开发方法,但有一种近似它的方法可能会带来一些好处。

编写许多微小的测试 MIDlet。它们中的每一个都与最多一个可能的用户交互。它们都为您的算法、多线程、存储、网络共享通用引擎代码......

通用代码将用于最终产品。

完成所有“单元测试”后,开始组合它们。每种组合仅用于测试 2 个较小的功能集之间的交互。

制作一个由更大的 MIDlet 组成的金字塔,并在此过程中对其进行测试。

金字塔的顶端是您一直想要生产的 MIDlet。


不幸的是,大多数 JavaME 测试都是手动完成的。

有两种方法可以对 MIDlet 执行一些自动化测试。

  • 使用 Keynote Device Anywhere 脚本工具。设置这将非常耗时,并且使用该服务不是免费的,但测试会尽可能接近真实世界的条件,而无需购买手机及其 SIM 卡。

  • 使用 Microemulator 的源代码并对其进行修改,以便自动运行您的测试 MIDlet 并报告测试结果,大概是作为 Jenkins 实例的一部分。使 Microemulator 适应您的需求可能不是一项简单的开发任务,您需要先测试新的自动化系统,然后才能在 MIDlet 上运行第一个测试。

于 2012-08-04T12:58:46.103 回答
0

我终于决定用 HTML5 编写一个移动网络应用程序。启用 HTML5 缓存后,您可以为大多数手机进行开发,但会牺牲原生功能。如果没有任何变化,我计划在未来为每种类型的移动操作系统开发不同的应用程序。

于 2012-09-13T09:10:32.417 回答