【问题标题】:Building Peer to Peer photo sharing on Android在 Android 上构建点对点照片共享
【发布时间】:2012-03-07 03:47:06
【问题描述】:

我打算在 Android 上做一个关于点对点照片共享的项目。我的教授希望我使用 Java 或 C/C++ 以外的其他语言来做这件事。是 Erlang、Haskell、Ocaml、 Scala,Go 有助于构建具有以下功能的 android 应用程序吗?

  1. 能够为 android 设计一个 GUI 来查看要共享的图片
  2. 是否支持通过套接字通信传输图片?

【问题讨论】:

  • 请注意,由于您必须处理 Android API,因此无论选择何种语言,您的大部分代码都必须是命令式的。
  • 你的教授有任何关于Android开发的知识吗?

标签: android programming-languages


【解决方案1】:

由于 Android 严重依赖 Java,因此 Scala 将是一个不错的选择。 Scala 使与 Java 代码的互操作变得容易并在 JVM 上运行。最重要的是,它是一种很好的函数式语言,具有有趣的类型系统,因此这将是一次很好的学习体验。 (其他语言也一样,但 Scala 可能更容易在 Android 上使用。)

查看Scala Programming for Android,它描述了如何在 Scala 中制作 Android 应用程序。

【讨论】:

【解决方案2】:

您可以在 Android(或一般的 ARM)上编译和执行 Go 程序,但实际上不能使用 Android 库。因此,在 Go 中为 Android 编写服务或 GUI 应用程序目前并不容易。我不确定其他语言,但我认为 Erlang、Haskell、Ocaml 等有类似的问题(如果他们甚至提供 ARM 编译器)。

因此,最好专注于基于 JVM 的语言。大多数示例和其他应用程序都是用 Java 编写的,但 Scala 也能够访问所有这些 API。所以,我会使用 Java 或 Scala。

【讨论】:

    【解决方案3】:

    还有这种基于 JVM 的函数式、动态、类似 lisp 的语言 Clojure,有些人似乎非常喜欢它。应该可以use it to write Android Apps。

    【讨论】:

    【解决方案4】:

    嗯,在我看来,这取决于您想在项目中真正使用该语言的目的。照片共享:您是否计划为客户端使用基于 Web 的工具,即 JavaScript, HTML5, CSS3, JQuery Mobile (@987654321@), sencha Touch (@987654322@), Phone Gap (@987654323@),@987654324@ 或者您想使用像 Java, J2ME 这样的原生工具,等等。然后,如果它是基于网络的(在我看来这会使事情变得更容易),那么您在这种情况下所指的语言将在服务器端。

    因此,在我看来,如果您只需要该语言来提供网络服务照片和其他内容,那么您使用哪一种并不重要:这真的取决于您的喜好。我很确定 Erlang、Scala、Java 和其他人都有能力开发出色的 Web 服务。但是,您提出的条件如下:

    1) 能够为android设计一个GUI来查看要共享的图片
    2) 支持socket通信来传输图片吗? 建议您指的是要使用的前端技术。你不能使用Erlang 在Android 上创建GUI,如果我是对的,你可能也不能使用Haskell and OcamL,因为这些技术不能在设备上运行。对于 Android 上的 GUI,您只能使用 Java,或者您可以使用像 Opera Widgets 这样的小部件技术,或者您可以使用我上面提到的基于 Web 的东西。

    但是,您应该知道使用 JavaScript 库、HTML5、CSS3 等。是在任何设备上开发应用程序的最快且更易于管理的方式。我什至想知道你为什么在谈论套接字通信!我说得对吗?你想开发一个通过原始套接字通信传输照片的照片共享应用程序吗?好吧,我不确定有多少适用于 Android 的应用程序在做原始 Socket 的东西,但我很确定很多 (http://androidapplications.com/) 正在使用 HTTP 协议,就像在 Web 服务中一样。

    考虑研究 Web 服务而不是原始套接字。我很确定,即使是使用本机 Java 开发的应用程序,也使用 HTTP(Web 服务,如 SOAP)与远程服务器通信,无论是天气应用程序、基于位置的东西等。否则我想你现在应该专注于Java。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2012-08-09
      相关资源
      最近更新 更多