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