将 Java 应用程序移植到 Android 平台

Porting java apps to Android platform

我知道 Java 应用程序可以在 Android 中运行。但我想知道的是:我有一个完全正常的 Java 应用程序,我想将它移植到一个 android 平台。我需要在 GUI 和其他代码方面对我的应用程序进行哪些更改才能使其在 Android 中可用?我知道 Android 使用 XML 文件来控制其应用程序的外观。那么我需要完全改变我的GUI吗?

我只想知道如何进行移植的一般概述。如果有人能指出我正确的资源,那就太好了。另外,为了您的信息,我是开发android应用程序的新手,所以请耐心等待我:)

更新:两个非常有用的答案。谢谢!


简短的回答是,您只需从头开始为 Android 重写所有 GUI。它只是使用了一个完全不同的 UI 框架。虽然基本上所有的核心 Java 库都在那里,但 Swing 和 AWT 库却没有。

如果您希望自动翻译部分内容,我认为没有这样的工具。您将要构建一个全新的 Android GUI。

真的,这是有道理的。这些框架服务于相当不同的平台和需求(桌面与手机)。您可能需要重新设计您的应用程序才能从台式机变成手机。

好消息是非 GUI 部分应该按原样工作,没有任何变化,除非他们做了一些不寻常的事情。如果您的代码使用第三方库,您可能必须将它们打包到您的项目中。


我预计移植将是大量工作,因为您的应用程序与 Android 的工作方式会有所不同。

您可能还会遇到一些问题,因为并非 Java 中的所有内容都受支持,因为它是一种移动设备,但功能比 JavaME 更多。

如果你能解释一下这个应用程序会有所帮助,因为它需要与用户交互多少或设备上的任何其他资源将决定如何移植以及涉及多少工作。

不过,最好的办法是了解如何在 Android 上学习编程,并且有几本关于该主题的好书。我从 Manning 出版物中得到了一份我觉得很有帮助的。

您可能想查看本文中的评论,因为我认为这对于您了解可能需要更改的内容是一个很好的起点:

http://www.anddev.org/problem_in_android_project_conversion-t1633.html


相关推荐

  • Spring部署设置openshift

    Springdeploymentsettingsopenshift我有一个问题让我抓狂了三天。我根据OpenShift帐户上的教程部署了spring-eap6-quickstart代码。我已配置调试选项,并且已将Eclipse工作区与OpehShift服务器同步-服务器上的一切工作正常,但在Eclipse中出现无法消除的错误。我有这个错误:cvc-complex-type.2.4.a:Invali…
    2025-04-161
  • 检查Java中正则表达式中模式的第n次出现

    CheckfornthoccurrenceofpatterninregularexpressioninJava本问题已经有最佳答案,请猛点这里访问。我想使用Java正则表达式检查输入字符串中特定模式的第n次出现。你能建议怎么做吗?这应该可以工作:MatchResultfindNthOccurance(intn,Patternp,CharSequencesrc){Matcherm=p.matcher…
    2025-04-161
  • 如何让 JTable 停留在已编辑的单元格上

    HowtohaveJTablestayingontheeditedcell如果有人编辑JTable的单元格内容并按Enter,则内容会被修改并且表格选择会移动到下一行。是否可以禁止JTable在单元格编辑后转到下一行?原因是我的程序使用ListSelectionListener在单元格选择上同步了其他一些小部件,并且我不想在编辑当前单元格后选择下一行。Enter的默认绑定是名为selectNext…
    2025-04-161
  • Weblogic 12c 部署

    Weblogic12cdeploy我正在尝试将我的应用程序从Tomcat迁移到Weblogic12.2.1.3.0。我能够毫无错误地部署应用程序,但我遇到了与持久性提供程序相关的运行时错误。这是堆栈跟踪:javax.validation.ValidationException:CalltoTraversableResolver.isReachable()threwanexceptionatorg.…
    2025-04-161
  • Resteasy Content-Type 默认值

    ResteasyContent-Typedefaults我正在使用Resteasy编写一个可以返回JSON和XML的应用程序,但可以选择默认为XML。这是我的方法:@GET@Path("/content")@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})publicStringcontentListRequestXm…
    2025-04-161
  • 代码不会停止运行,在 Java 中

    thecodedoesn'tstoprunning,inJava我正在用Java解决项目Euler中的问题10,即"Thesumoftheprimesbelow10is2+3+5+7=17.Findthesumofalltheprimesbelowtwomillion."我的代码是packageprojecteuler_1;importjava.math.BigInteger;importjava…
    2025-04-161
  • Out of memory java heap space

    Outofmemoryjavaheapspace我正在尝试将大量文件从服务器发送到多个客户端。当我尝试发送大小为700mb的文件时,它显示了"OutOfMemoryjavaheapspace"错误。我正在使用Netbeans7.1.2版本。我还在属性中尝试了VMoption。但仍然发生同样的错误。我认为阅读整个文件存在一些问题。下面的代码最多可用于300mb。请给我一些建议。提前致谢publicc…
    2025-04-161
  • Log4j 记录到共享日志文件

    Log4jLoggingtoaSharedLogFile有没有办法将log4j日志记录事件写入也被其他应用程序写入的日志文件。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化?Log4j有一个SocketAppender,它将向服务发送事件,您可以自己实现或使用与Log4j捆绑的简单实现。它还支持syslogd和Windows事件日志,这对于尝试将日志输出与来自非Java应用程序…
    2025-04-161