我一直很困惑决定如何继续设计J2ME应用程序的UI。基本上我已经完成了算法,函数和数据库的工作,但是我很难为它提供一个好的UI。我有两个想法:
制作一个j2me应用程序,可以轻松帮助我利用网络压缩技术实现快速便宜的互联网访问(核心需求)。
将其设为网络应用,并使其成为一种只加载在线应用的浏览器应用。这个选项显然很容易不用担心升级和UI功能,但互联网成本和速度是限制因素。
我正在尝试使用第一个选项,我的第一个方式是LWUIT,但沿着线条变得沉重,我甚至无法调试应用程序,更不用在小型手机上部署它。事实上,在线搜索使问题变得更糟。似乎对J2ME应用程序的兴趣大大减少,而且大多数 talk 关于它已经过时了。事实上,很多人都问我同样的问题,我在网上看到了非常吸引人的J2ME应用,但我似乎无法弄清楚他们的'秘密'。
SO 我想听听那些开发了漂亮的 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。 那么我缺少什么?我可以参与哪些正在进行的开源项目?
谢谢!
答案 0 :(得分:3)
在完成了我之前建议的内容之后,我不一定会推荐它,但是你问过。
如果你想要一个看起来像用LWUIT开发但是在一个较小的jar文件中并且更容易为你调试的应用程序,一个解决方案是从基本的几何形状和绘制在a上的图像开发GUI。 LCDUI Canvas
。
为了实现这3个目标,您将牺牲可扩展性和开发时间。
GUI将变得更容易为您调试,因为您将在编写代码时学习代码,而不必学习LWUIT。
您要么花时间尽早设计GUI引擎,要么稍后再重写代码。
将应用程序移植到不同的屏幕尺寸需要比使用LWUIT更多的工作。
如果其他人处理您的代码,您将必须教他们如何运作。
任何GUI修改都可能意味着必须更新底层代码以添加或删除组件。
GUI的功能越少,应用程序jar就越小。您最终可能会放弃面向对象编程的一些好处,只是为了减小应用程序的大小。
就现代方法而言,JavaME并不真正适用于测试驱动开发方法,但有一种方法可以对其进行近似,这可能会带来一些好处。
编写许多微小的测试MIDlet。它们中的每一个都具有最多一个可能的用户交互。它们都共享您的算法,多线程,存储,网络的通用引擎代码......
公共代码将用于最终产品。
完成所有“单元测试”后,开始组合它们。每个组合仅仅是测试两组较小功能之间的相互作用。
制作一个更大的MIDlet金字塔并沿途测试它们。
金字塔顶部是您一直希望生成的MIDlet。
不幸的是,大多数JavaME测试都是手动完成的。
有两种方法可以对MIDlet执行一些自动化测试。
使用Keynote Device Anywhere脚本工具。设置这项工作将非常耗时,并且使用该服务并非免费,但测试的运行情况与实际情况相近,无需购买手机及其SIM卡即可。
使用Microemulator的源代码并对其进行修改,以便自动运行测试MIDlet并报告测试结果,可能是Jenkins实例的一部分。根据您的需要调整Microemulator可能不是一项简单的开发任务,您需要先测试新的自动化系统,然后才能在MIDlet上运行第一次测试。
答案 1 :(得分:0)
我终于决定用HTML5编写移动网络应用程序。启用HTML5缓存后,您可以针对大多数移动设备进行开发,但牺牲了原生功能。将来,如果没有任何变化,我计划为每种类型的移动操作系统开发不同的应用程序。