在Android上构建对等照片共享



我计划在Android上做一个关于对等照片共享的项目。我的教授希望我使用Java或C/C++之外的其他语言来完成这项工作。Erlang,Haskell,Ocaml,Scala,Go有助于构建一个具有以下功能的android应用程序?

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

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

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

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

因此,最好将重点放在基于JVM的语言上。大多数示例和其他应用程序都是用Java编写的,但Scala也能够访问所有这些API。所以,我要么使用Java,要么使用Scala。

还有一种基于JVM的功能性、动态的、类似lisp的语言Clojure,有些人似乎很喜欢它。应该可以使用它来编写Android应用程序。

在我看来,这取决于您在项目中想要真正使用该语言的目的。照片共享:你是打算为客户端使用基于Web的工具,即JavaScript, HTML5, CSS3, JQuery Mobile (http://jquerymobile.com/), sencha Touch (http://www.sencha.com/products/touch), Phone Gap (http://phonegap.com/),Titanium Appcelerator,还是想使用Java, J2ME等原生工具。如果是基于Web的(在我看来这会让事情变得更容易),那么你在本例中所指的语言将在服务器端

所以在我看来,如果你只需要网络服务照片和其他东西的语言,那么你使用哪一种都无关紧要:这取决于你的喜好。我非常确信Erlang、Scala、Java和其他技术都有能力开发出色的web服务。但是,您提出的条件如下:

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

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

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

最新更新