【问题标题】:Port Java Application to Android将 Java 应用程序移植到 Android
【发布时间】:2012-03-22 23:25:49
【问题描述】:

我不太确定这个问题或者我应该如何称呼我正在努力实现的目标。 我使用一个叫做 super sify 的拨号器。这是下载 - http://thegoan.com/supersify/supersify.zip 提取后它有两个用于 linux 的文件,一个是 .jar 文件,其中包含一些类。该应用程序是用 java 编写的。另一个是 .sh 文件,它是一个 shell 可执行文件,并接受一些参数,如用户名和密码以及机器 ID 等。 我想将此应用程序移植到android。我到底要做什么。 更多信息是 .jar 文件名为 supersify.jar 并且 .sh 文件被命名为 ss.sh 所以这里是 ss.sh 的代码

java -jar supersify.jar $*
if [ $? -eq 1 ]
then read
fi

请帮帮我。这是一个开源软件。所以我没有做任何非法修改。 我需要将此应用程序移植到 android,所以我必须重新编写整个东西还是只写其他东西。我知道一些基本的 hello world android 应用程序开发,并且我已经制作了一个添加两个数字的应用程序,我仍在成为一名 android 应用程序开发人员的路上,但我需要这个应用程序并且会学到很多东西来使这成为可能,除非它涉及重写所有java类。 先感谢您 如果您还有问题,我很乐意回答他们:D。

【问题讨论】:

  • “我到底该怎么做”方式超出了 StackOverflow 问题的范围。
  • "SuperSify 是用 Java 编写的,可以在 Windows、Linux 和 Mac 上运行" & 你不能让它在 Android 上运行,除非你重写/替换了很多 java
  • 我认为你移植应用程序会很困难,很多java库不兼容或在Android中被覆盖,所以你很可能会遇到编译器或依赖项错误。

标签: java android linux jar port


【解决方案1】:

方法很简单:

  • 创建一个新的 Android 项目,例如使用 Eclipse 的 Android 插件
  • 将 Jar 文件添加到项目中。
  • 与任何其他 Android 项目一样创建一个 Android 主 Activity
  • 查看jar文件,确定其默认的main方法是什么(在manifest中,或者直接在jar文件的classes中搜索静态方法main猜测一下)
  • 从您的主活动中调用该主方法。硬编码参数或创建一个对话框以从用户那里获取它们,或类似的东西。
  • 如果 main 方法返回 1,shell 脚本似乎从 stdin 读取了一行。如果不使用此行,不知道为什么会这样做,但如果有意义,请在您的主 Activity 中执行相同的操作main 方法返回值。

正如其他人指出的那样,如果 Jar 文件使用标准 java 中存在但 Android 中不存在的类,这将不起作用。由于大多数课程都是相同的,因此您的机会通常很大。

【讨论】:

    【解决方案2】:

    我能够成功编译适用于 android 的应用程序。

    请参考: 源代码:https://github.com/mayurdange/supersify apk:http://db.tt/KE9kqpo6

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 2018-10-11
      相关资源
      最近更新 更多