在Android的运行时执行嵌入Java的Groovy脚本

从2.4版开始,groovy支持android。我想在我的Android应用程序中运行一个嵌入Java中的Groovy脚本。
本网站解释这是可能的:http://melix.github.io/blog/2014/06/grooid2.html
适应groovy语言的一个困难是,
尽管如此,groovy是一种高度动态的语言。它的能力之一是
在运行时执行脚本。如果我们想输入一个groovy
在设备上编写脚本,然后直接在设备上执行?有可能吗?
事实上,是的,如果你遵循这个过程,这是可能的:
你可以有一个应用程序,不管是否用groovy编写,但是最后,
应用程序运行后,您将拥有groovy源代码
想要执行。然后它需要编译类,调用dex
直接在设备上,将结果打包到
本地文件系统,然后使用特殊的类加载器加载它。所以为什么
这是可能的,过程非常复杂,不简单,
但更重要的是,它的速度非常缓慢。
我很兴奋这确实是可能的,不管速度如何。这里有一个示例项目:https://github.com/melix/grooidshell-example
不幸的是,我不太了解这个过程。我有一个相当小的项目,但我不确定具体在哪里看。
你能告诉我在Android运行时在爪哇执行Groovy脚本的正确方向吗?

 

最佳答案:

仔细观察https://github.com/melix/grooidshell-example/blob/master/GroovyDroid/src/main/java/me/champeau/groovydroid/GrooidShell.java
这就是创建一个dexfile(第71行)实例,在编译(第73行)中添加一个字节码后处理器,获取生成的类字节并将其转换为dex格式(第76行),最后将其存储在dexfile实例(第77行)。然后获取dalvik字节码(第91行),使用dexclasloader(第136行)加载dalvik/dex类(第138行)。

免责声明: 我们尊重原创,也注重分享。版权原作者所有,如有侵犯您的权益请及时联系( zhou764219923@qq.com),我们将在24小时之内删除。

环境变量的配置https://github.com/groovy/groovy-android-gradle-plugin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值