【问题标题】:Adding scripting to an android app将脚本添加到 Android 应用程序
【发布时间】:2011-11-05 23:02:03
【问题描述】:

我有一个 Android 应用程序,用户应该可以使用脚本对其进行扩展。无论如何,这就是计划。用户可以编写脚本,这些脚本保存在闪存上的文件夹中,并从应用程序的菜单中访问。根据应用程序中的某些事件加载和调用脚本。应用程序会将辅助方法和对象公开到脚本的上下文中,以便它可以以受控方式挖掘应用程序中的功能。

因此我的要求是:

  • 低磁盘/内存占用
  • 快速启动
  • Android 兼容
  • 合理的解析/错误报告
  • 简单、合理的语法最好是流行语言的方言,例如基础、JS、Python 等。
  • 语言必须支持数组、关联数组、双精度浮点数、字符串操作。它不需要网络访问或其他任何东西。
  • 脚本的干净加载和卸载
  • 适应事件驱动模型的东西
  • 安全/沙盒模型,可防止脚本执行超出我向它们公开的 API 的操作
  • 超时/错误处理,因此我可以终止耗时过长或陷入循环的脚本(因此人们不会因为脚本的错误而降低我的应用程序的排名)。

我看过 Rhino 和 Jython 之类的工具,我觉得它们会给我的目的带来太大的开销。我还怀疑它们可能很难融入我想到的有限安全模型(例如,Rhino 默认公开所有 Java 类,这必须被破解)。

人们会给出什么建议?

【问题讨论】:

    标签: java android scripting


    【解决方案1】:

    看看SL4A project。我不确定它是否能满足您的需求,但至少它是我应该开始的地方。

    【讨论】:

    • 感谢您的链接。 SL4A 看起来更像是一个将 Android API 暴露给脚本语言的绑定层。这样您就可以从高级脚本语言编写/原型应用程序。我正在寻找从我的应用程序运行脚本运行时并对其执行施加限制的东西,因此它只会影响我公开的 API。我看过 Rhino、Beanshell、Jython 和其他一些,它们看起来太大了,太放纵了我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多