首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中创建一个面向移动、多平台、共享的库?

如何在Java中创建一个面向移动、多平台、共享的库?
EN

Stack Overflow用户
提问于 2011-03-07 08:25:27
回答 4查看 747关注 0票数 7

我有一个运行在BlackBerry (JDE4.5)上的Java应用程序。我想把这个应用程序移植到Android,并且能够同时维护这两个应用程序。我还可能希望将此应用程序移植到其他Java (J2ME ?)。

我理解代码的很大一部分必须针对每个平台(UI和其他东西)。但我也觉得很多代码可以(应该)共享(域相关类)。

实现这一目标的最佳途径是什么,要避免的陷阱是什么?

到目前为止,我已经能够使用所有共享类创建一个JAR,从而能够集成到我的BlackBerry应用程序中(使用preverifyrapc)。但是:

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-07 14:55:12

如今,以这种方式共享代码的最大障碍是BlackBerry VM和Android都支持不同版本的Java。BlackBerry使用Java1.3的子集,Android使用Java1.5的子集。(顺便说一句,这两个平台都没有实现Java,它们都使用自己的VM。使用Java作为编程语言。Java字节码必须转换为适当的原生VM格式,然后才能在平台上运行。)

作为库实现者,您会发现最大的不同是,BlackBerry缺少1.5中引入的东西,比如泛型和枚举。更糟糕的是,BlackBerry中缺少了集合类。这是不幸的,但这是很长一段时间以来的情况。

这意味着要真正可移植,您必须编写到最低的公共分母,这意味着使用(非常)老风格的类,如Hashtable和Vector,而不是泛型,滚动自己的枚举(如在第1版的有效Java)等等。

或者您构建了两个库,一个是用于Android的现代版本,另一个是用于BlackBerry的精简版本(仅提供您所需的基本内容)。

很难说什么是适合你的。

票数 2
EN

Stack Overflow用户

发布于 2011-03-07 08:48:25

这可能是很困难的:

  • 正如您已经确定的,每个平台的UI代码必须是不同的。
  • Java / Android和基于Java的平台之间有很大的区别。例如,ME没有集合框架,也没有java.iojava.nio堆栈。

从您提供的信息中很难预测,但是很有可能您将花费更多的时间与平台依赖进行斗争,而不是通过共享代码库来节省。

票数 4
EN

Stack Overflow用户

发布于 2011-03-07 10:06:11

与其预先打包您的共享库,我将考虑共享库项目,并将其作为您的移动应用程序构建过程中的依赖项。这将允许您共享代码库,但让适当的构建器为目标设备构建代码库。有了一些IDE的魔力和对细节的关注,您应该能够在发布任何东西之前发现错误。

或者,将您的库项目设置为使用两个单独的构建器来获取错误。这将允许更干净的分发,但您可能会遇到问题,试图说服IDE将项目视为特定于设备的项目,以便识别问题区域。

很可能你最终会支持最低的公共分母设备(咳嗽黑莓),并且放弃Android上更广泛的Java实现的附加功能。

不幸的是,答案将是一个实验。试试看会发生什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5217400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档