Android 中怎么运行 ClojureScript,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
cljs.core.apply.call(null,cljs.core.inc,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [1], null))
这行就是(apply inc [1])需要绑定的JavaScript代码
然后Tahmid终于有了2.0。真棒!这应该是有史以来的***次,在基于Android的嵌入式的Rhino上跑起来ClojureScript。
接下来,需要尝试用起来reader, analyzer, 和compiler。现在我们来试一下,只需要简单的使用Replete里的JavaScript,让Android的app执行Replete的read_eval_print函数,参数为字符串 (+ 1 2),如果工作正常,那么恭喜,ClojureScript已经成功启动了。
replete.core.read_eval_print.call(null,'(+ 1 2)')
且慢,Transit 里执行 goog.require('replete.core');的时候出了问题,应该是跟 randomUUID 有关。悲剧了,看上去显然还有很多地方需要处理。
不过没关系,Replete 之前一直尝试用不同的方式加载 analysis 缓存,感谢 Karl Mikkelsen,我们有了一个可用的版本只使用纯 JavaScript,没有任何依赖。把这个用起来之后,在把print回调弄好(这样类似 println 这样的方法就可以工作了),接下来 Tahmid 就通过Slack通知我:
I got 3 (+ 1 2) = 3
... 然后不断烦我,还会擅自发博客。就这样,引导的 ClojureScript REPL 在 Android 上诞生了!
Tahmid 在界面上封装了一些东西,修复了 JavaScript/ClojureScript 集成的一些小问题之后就发布了Replicator。
简直就是一场暴风雨!
现在,Tahmid 正在用 JavaScriptCore 替换 Rhino,这就没那么快了。
我认为这将使速度提升。这为我们在 Android 上使用 JavaScriptCore 进行本地交换的功能提供一些重要的基础。
从大图片来看,我真的认为 ClojureScript 在 Android 上运行很快。特别是使用 JavaScriptCore。对于这个观点的问题,可以看看 Bocko 对 Android 的 Vladimir Iakovlev 的端口在启动速度上的差异。
Clojure ~14 秒 Clojure / Skummet ~11 秒 ClojureScript ~2 秒
看完上述内容,你们掌握Android 中怎么运行 ClojureScript的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。