开发现代 J2ME 应用程序的最佳方式是啥? [关闭]
Posted
技术标签:
【中文标题】开发现代 J2ME 应用程序的最佳方式是啥? [关闭]【英文标题】:What's the best way to go about developing a modern J2ME app? [closed]开发现代 J2ME 应用程序的最佳方式是什么? [关闭] 【发布时间】:2012-08-03 21:53:44 【问题描述】:在决定如何着手设计 J2ME 应用程序的 UI 时,我一直很困惑。基本上我已经完成了算法、函数和数据库的工作,但我无法为它带来一个好的 UI。我有两个想法:
让它成为一个 j2me 应用程序,可以轻松帮助我利用 Web 压缩技术实现快速且廉价的互联网访问(核心需求)。
让它成为一个网络应用程序,让它成为一种浏览器应用程序,只加载在线应用程序。这个选项显然可以让您轻松不必担心升级和 UI 功能,但互联网成本和速度是限制因素。
我正在尝试使用第一个选项,我的第一个方法是 LWUIT,但随着时间的推移,它变得很重,我什至在调试应用程序时遇到了麻烦,更不用说在小型手机上部署它了。事实上,在线搜索使问题变得更糟。似乎对 J2ME 应用程序的兴趣急剧下降,而且大多数关于它的讨论 已经过时了。事实上,很多人确实问过我同样的问题,我在网上看到非常具有视觉吸引力的 J2ME 应用程序,但我似乎无法弄清楚它们的“秘密”。
所以 我想听听开发了好看 J2ME 应用程序的人的意见? 开发一款外观精美的小型应用程序的最佳方法是什么? 特别是我想要一些有用的工具和文章的链接。谢谢!!
编辑:当前的发展...
在对how best to develop a standard modern J2ME app 进行了长时间的思考和研究之后,我突然意识到最好的选择是一个统一的平台,这也许可以让我轻松地将 html5 应用程序移植到 J2ME。然而,到目前为止我的搜索是徒劳的。我发现的唯一有趣的事情是CodeNameOne 和Java's Avatar One。然而,CodeNameOne 并没有真正提供我一直在寻找的解决方案,而 Oracle 似乎仍然忙于 Avatar One 已经一年多了。我想知道我是否遗漏了什么。看到the open source LWUIT 的功能后,我认为开发一个HTML5 渲染器将帮助将基于HTML5 的应用程序移植到对HTML5 有很好理解的J2ME 不会太难。 那么我有什么遗漏吗?我可以参与的任何正在进行的开源项目或其他什么?
谢谢!
【问题讨论】:
【参考方案1】:已经完成了我之前在这里的建议,我不一定推荐它,但你问了。
如果您想要一个看起来与使用 LWUIT 开发的一样好的应用程序,但在一个较小的 jar 文件中并且更容易为您调试,一种解决方案是从基本几何形状和绘制在图形上的图像开发 GUI LCDUICanvas
.
为了实现这 3 个目标,您将牺牲可扩展性和开发时间。
GUI 将变得更容易为您调试,因为您将在编写代码时学习代码,而不必学习 LWUIT。
您要么在早期花时间设计 GUI 引擎,要么在以后花更多时间重写代码。
与使用 LWUIT 相比,将应用程序移植到不同的屏幕尺寸需要更多的工作。
如果其他人在处理您的代码,您必须教他们如何工作。
任何 GUI 修改都可能意味着必须更新底层代码以添加或删除组件。
您的 GUI 功能越少,应用程序 jar 就越小。您最终可能会为了减小应用程序的大小而放弃面向对象编程的一些好处。
就现代方法而言,JavaME 并不真正适用于测试驱动开发方法,但有一种近似它的方法可能会带来一些好处。
编写许多小型测试 MIDlet。它们中的每一个都与最多一个可能的用户交互。它们都为您的算法、多线程、存储、网络共享通用引擎代码...
通用代码将在最终产品中使用。
一旦你完成了所有的“单元测试”,就可以开始组合它们了。每种组合仅用于测试两组较小的功能之间的交互。
制作一个由更大的 MIDlet 组成的金字塔,并在此过程中对其进行测试。
金字塔的顶端是您一直想要生产的 MIDlet。
不幸的是,大多数 JavaME 测试都是手动完成的。
有两种方法可以对 MIDlet 执行一些自动化测试。
使用 Keynote Device Anywhere 脚本工具。设置会很耗时,而且使用该服务不是免费的,但测试会尽可能接近真实世界的条件,而无需购买手机及其 SIM 卡。
使用 Microemulator 的源代码并对其进行修改,以便自动运行您的测试 MIDlet 并报告测试结果,大概是作为 Jenkins 实例的一部分。使 Microemulator 适应您的需求可能不是一项简单的开发任务,您需要先测试新的自动化系统,然后才能在 MIDlet 上运行第一个测试。
【讨论】:
好的,这非常有用和可怕。基本上你说,我知道你要去哪里,但不要考虑......我只是在网上做了更多关于 LWUIT 的研究并制作了非常薄/小的应用程序,我认为那里有机会,也许使用和修改 LWUIT源将工作。你怎么看?你有没有使用 LWUIT 做过类似的项目?谢谢 哦,你肯定需要修改 LWUIT 本身。它包含错误,缺少重要功能,并且有明显未优化的区域。每个人都为了自己的目的修改 LWUIT 的源代码。不幸的是,很少有组织随后将其更改提交回 LWUIT 项目。【参考方案2】:我终于决定用 HTML5 编写一个移动网络应用程序。启用 HTML5 缓存后,您可以为大多数手机进行开发,但会牺牲原生功能。如果没有任何变化,我计划在未来为每种类型的移动操作系统开发不同的应用程序。
【讨论】:
以上是关于开发现代 J2ME 应用程序的最佳方式是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章