您好,登錄后才能下訂單哦!
今天小編給大家分享一下Android中如何運(yùn)行ClojureScript的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
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。真棒!這應(yīng)該是有史以來的***次,在基于Android的嵌入式的Rhino上跑起來ClojureScript。
接下來,需要嘗試用起來reader, analyzer, 和compiler。現(xiàn)在我們來試一下,只需要簡(jiǎn)單的使用Replete里的JavaScript,讓Android的app執(zhí)行Replete的read_eval_print函數(shù),參數(shù)為字符串 (+ 1 2),如果工作正常,那么恭喜,ClojureScript已經(jīng)成功啟動(dòng)了。
replete.core.read_eval_print.call(null,'(+ 1 2)')
且慢,Transit 里執(zhí)行 goog.require('replete.core');的時(shí)候出了問題,應(yīng)該是跟 randomUUID 有關(guān)。悲劇了,看上去顯然還有很多地方需要處理。
不過沒關(guān)系,Replete 之前一直嘗試用不同的方式加載 analysis 緩存,感謝 Karl Mikkelsen,我們有了一個(gè)可用的版本只使用純 JavaScript,沒有任何依賴。把這個(gè)用起來之后,在把print回調(diào)弄好(這樣類似 println 這樣的方法就可以工作了),接下來 Tahmid 就通過Slack通知我:
I got 3 (+ 1 2) = 3
... 然后不斷煩我,還會(huì)擅自發(fā)博客。就這樣,引導(dǎo)的 ClojureScript REPL 在 Android 上誕生了!
Tahmid 在界面上封裝了一些東西,修復(fù)了 JavaScript/ClojureScript 集成的一些小問題之后就發(fā)布了Replicator。
簡(jiǎn)直就是一場(chǎng)暴風(fēng)雨!
現(xiàn)在,Tahmid 正在用 JavaScriptCore 替換 Rhino,這就沒那么快了。
我認(rèn)為這將使速度提升。這為我們?cè)?Android 上使用 JavaScriptCore 進(jìn)行本地交換的功能提供一些重要的基礎(chǔ)。
從大圖片來看,我真的認(rèn)為 ClojureScript 在 Android 上運(yùn)行很快。特別是使用 JavaScriptCore。對(duì)于這個(gè)觀點(diǎn)的問題,可以看看 Bocko 對(duì) Android 的 Vladimir Iakovlev 的端口在啟動(dòng)速度上的差異。
Clojure ~14 秒 Clojure / Skummet ~11 秒 ClojureScript ~2 秒
以上就是“Android中如何運(yùn)行ClojureScript”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。