在Android上构建Peer to Peer照片共享

时间:2012-02-15 19:00:25

标签: android programming-languages

我计划在Android上进行Peer to Peer照片共享的项目。我的教授希望我使用除Java或C / C ++之外的其他语言来做到这一点。是Erlang,Haskell,Ocaml, Scala,Go有助于构建具有以下功能的Android应用程序吗?

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

4 个答案:

答案 0 :(得分:9)

由于Android严重依赖Java,因此Scala将是一个不错的选择。 Scala可以轻松地与Java代码进行互操作,并在JVM上运行。最重要的是,它是一个很好的功能语言,有一个有趣的类型系统,所以它将是一个很好的学习体验。 (您的其他语言也是如此,但Scala在Android上可能更容易使用。)

查看Scala Programming for Android,其中介绍了如何在Scala中制作Android应用程序。

答案 1 :(得分:6)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

嗯,在我看来,这取决于你想要真正使用该语言的项目。照片共享:您是否计划为客户端使用基于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) Ability to design a GUI for android to view the pictures to be shared 
2) Support for socket communications to transfer the pictures?
建议您使用的是前端技术。您无法使用Erlang在Android上创建GUI,如果我是对的,您也可能也无法使用Haskell and OcamL,因为这些技术无法在设备上运行。对于Android上的GUI,你只能使用Java,或者你可以使用像Windows Widgets这样的Widget技术,或者你使用像我上面提到的基于Web的东西。

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

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