Android上的Clojure [关闭]


78

是否可以在Clojure中编写Android应用程序?如果可以的话,有人可以建议一本好的教程或书吗?

Answers:


29

是的,这是我知道的主要项目:https : //github.com/remvee/clojurehelloandroid

这是一个小教程http://riddell.us/ClojureAndAndroidWithEmacsOnUbuntu.html,尽管本教程过时了我也不会感到惊讶,因为一年多以前,当我使用本教程后面的代码时,remvee的代码已经自更新以来。

编辑:在此处查看来自Stuart Sierra和Clojure / core组的更新:http : //groups.google.com/group/clojure/browse_thread/thread/876c90d3ae353c61

“ Clojure 1.2.0可以在Android上“开箱即用”地工作,但是启动时间仍然是一个问题。Clojure/ core的某些成员已经尝试了使它更好的方法,主要是通过选择性地删除运行时不需要的内容。

跟随 http://dev.clojure.org/display/design/Android+Support 以获得新闻。最新的更新是Clojure /核心成员Aaron Bedra在2010年12月发布的。我不会说这是当务之急,但也没有引起人们的兴趣。

如果您打算立即发布,我个人不建议使用Clojure编写Android应用程序。但是,如果您有兴趣在Android上试用Clojure并使其变得更好,那就去吧。”


17

Clojure受益于android 2.2 JIT编译器,它大大缩短了类加载时间。Clojure创建了许多小类,这些小类需要“永远”才能在以前的android版本上加载。

在swank插件上检查此“进行中”工作,以便使用clojure进行androiding


3
呵呵,我以为这是另一个形容词。
马修·威利斯,

3
我知道了,我将尝试找到它的移动位置。虽然很酷404 :)
亚瑟·乌尔菲特

14

ClojureScript是android上Clojure的新选项。

ClojureScript将Clojure编译为JavaScript,然后可以将其包装在应用程序中。如果您的应用适合javascript,则这将完全绕开Dalvik-VM,并避免了加载时间问题。许多寻求与平台更紧密集成的应用程序无法使用这种方法。如果您的应用程序可以与紧密的平台集成一起使用,则可以节省大量时间。


太糟糕了,您无法使用clojurescript编写Java脚本
gtrak

8

我知道这有点老了,但是以防万一有人偶然发现了这个东西,自从上面的答案以来,Android上的clojure已经走了很长一段路。该雷音,机器人项目确实做了很多更容易编写使用的Clojure从王建宇,山西高等学校全面的Android程序。


7

这已经回答过了。是的,有一些小小的技巧是可能的。但是,上次我尝试它的速度非常慢,而且非常饿。这是与Clojure 1.1和Android 2.1一起使用的。从那时起,情况可能会有所改善。


13
似乎确实,每当有人问这个问题时,它都会得到更好的答案:)(因为答案更接近“是,它可以工作”,而离“它有一天可能工作”更远),也许下一次被问到我们会得到一个真正的“好”的答案
亚瑟·乌尔费尔特

1

在Android Market中搜索“ Clojure REPL”,“ Clojure”或“ Sattvik软件”,您会发现一个出色的REPL。我一直在XOOM 1平板电脑中使用它,首先是Android 3,现在是Android 4.0,没有任何问题。

如果您进行了足够的搜索,您将找到Java(Java IDE),Ruby(Ruboto IRB),Python,Lua,Perl,Javascript(最后四个SL4J,Lua也是SigmaScript),ISLisp(tiny-ISLispdroid),OCaml的程序(OCaml顶层),Scheme,C,C ++,C#,Pascal,Basic甚至Forth!

我很遗憾他们仍然没有Scala!


3
这个问题不是“我如何在Android设备上运行Clojure代码”,而是“我如何在Clojure中编写Android应用程序”
RR
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.