我正在研究一些用Java編寫的可以在Android上運行的Forms和Report Builder。至少是Forms和Reports執行者。用戶可以輸入簡單的groovy腳本,它可以改變簡單的變量。現在我的問題是groovy在Android上不會起作用。我用什麼方法代替Groovy的另一種語言。 要求: - 即語言應該被編譯並在Java中 執行 - 傳遞和閱讀變量腳本 - 所得到的字節碼應該運行在Android爲好,或者最終直接編譯和Android的Android中的Groovy,Scala,Clojure等腳本
回答
除了Tim的變種執行(SL4A),現有的腳本語言還有更多的Java虛擬機。因爲Android沒有JVM,它具有Dalvik VM,它的工作方式不同,並且當某些JVM腳本語言在動態類文件編譯中進行中繼時,工作方式不同,並且打包和優化java字節碼,但不是每個人都會達到您的目的和執行。
如果您的任務很簡單,請考慮Lua。這是一個非常輕量級的腳本語言,它有2個工作純Java虛擬機的實現,這會在Android上:Groovy中的
版本2.4.0將有Android支持。 當時我寫這篇文章,目前的版本是2.3還是有2.4沒有公開測試,但你可以通過建立這樣的快照嘗試現在:
$ git clone https://github.com/groovy/groovy-core
$ cd groovy-core
$ ./gradlew clean dist
生成的庫被列入在你的Android Studio項目中將會是target/libs/groovy-test-2.4.0-SNAPSHOT-grooid.jar。 然後,您需要修改您的gradle.build文件以包含Groovy支持;此係統看起來還處於早期階段,因此請參閱此頁以獲取更多信息:http://melix.github.io/blog/2014/06/grooid.html
但是,這是對運行時腳本的支持還是僅僅用於編譯時使用該語言。 –
正如你可以在這裏看到的:http://melix.github.io/blog/2014/06/grooid2.html你也可以做運行時腳本,雖然門楣相當慢 –
痛苦地緩慢。我發現LuaJ在Android上可以使用它的最新版本,我不希望它的主要性能下降。 –
- 1. 包括Groovy腳本一些Groovy腳本
- 2. Kibana腳本字段中的Groovy腳本
- 3. Groovy腳本中的MissingMethodException
- 4. Scala腳本等待mongo完成任務
- 5. Jenkins Groovy腳本
- 6. 從Groovy腳本
- 7. SoapUI Groovy腳本
- 8. Groovy DSL腳本
- 9. Groovy腳本掛
- 10. scala中的Groovy的classX.metaClass.getProperty
- 11. 2.11中的Scala腳本
- 12. Groovy基本腳本中的屬性
- 13. 調試Groovy腳本
- 14. Jenkins conditionalstep groovy腳本
- 15. 呼叫Groovy腳本
- 16. 通過Groovy腳本
- 17. 其他Groovy腳本
- 18. 登錄Groovy腳本
- 19. Scala類的Clojure ISeq
- 20. clojure和scala interop
- 21. clojure/scala interop?
- 22. ElasticSearch動態腳本 - Groovy的
- 23. 導入Groovy腳本到另一個Groovy腳本在運行時
- 24. 如何使用Groovy腳本腳本CONSOL
- 25. shell腳本Groovy腳本使用GANT
- 26. Groovy腳本 - Logback配置未等待的行爲
- 27. 使用Java腳本編寫的安全性(JRuby,Jython,Groovy,BeanShell等)
- 28. 將Groovy對象注入到Groovy腳本
- 29. groovy DSL與嵌入groovy腳本
- 30. android-自定義活動模板中的groovy腳本錯誤
https://code.google.com/p/android-scripting/ –
Scala適用於Android,但我知道的用法是最終的apk文件可以在Scala中構建,或者某些Scala庫可以在Java Android項目中使用。我不知道類似腳本的代碼是否也適用。 – Naetmul
@tim_yates這個庫不斷被拋出,它不能被整合。 –