【问题标题】:Is developing an application for Android using Lua only possible?是否只能使用 Lua 为 Android 开发应用程序?
【发布时间】:2012-07-31 22:59:33
【问题描述】:

所以我读了this article on Mobile Orchard,当我计划在 Android 开发中迈出第一步时,我开始思考:是否可以仅在 Lua 中为 Android 开发?我用谷歌搜索了这个话题,但没有找到明确的答案。我知道 Java 是 Android 的“基本风格”,但对于我这样的编码新手(基本 Python、基本 C++)来说,Lua 似乎更清晰、更友好。那么我的问题是:一个人可以只使用 Lua 开发一个 Android 应用程序吗?如果是这样,你能告诉我一些从这里出发的路线吗?

【问题讨论】:

  • 除了 Lua 之外不使用其他语言/仅使用绝对最低限度的 Java 以某种方式嵌入 Lua,它可以处理应用程序的所有机制。
  • 学习 Java 可以节省您的时间,从长远来看对您更有好处。
  • @EGHDK 为什么选择 Java 而不仅仅是使用 NDK?

标签: android lua


【解决方案1】:

我一直在用 Lua 开发一个移动应用程序,用于从 iOS 和 Android 手机远程控制机器人。该应用程序是纯 Lua 并使用 MobileLua 在 Mosync platform 之上运行。仍然需要一些管道,但它并不太复杂。

我还有一个 debugger 和一个 Lua IDE (ZeroBraneStudio),它们支持调试远程运行的 Lua 脚本(包括在 Android 或 iOS 设备上运行的 MobileLua 脚本)。我提供了一个demo app,您可以将其用作客户端来运行简单的脚本并检查远程调试。

[更新] 如果您对更多面向游戏的选项感兴趣,有几个可用的选项:(1)已经提到的Corona SDK,(2)Moai,和(3)Gideros Mobile。还有Marmalade Quick 和Cocos2d-x Lua 绑定(例如quick-cocos2d-x)。所有这些工具包/框架都允许在 Lua 中开发。

这里是Moai vs. Corona的详细对比。

【讨论】:

    【解决方案2】:

    我知道这是一个较老的问题,但只是为了纠正一些错误信息(在 cmets 中)给后来的人,Corona SDK(截至 2013 年春季)有一个免费的 Starter Edition - 没有启动屏幕或任何东西.它与“Pro”版本的主要区别在于您不能在 Starter Edition 中进行应用内购买。但是您可以使用它来创建应用程序进行销售等。它没有到期日期或任何东西。

    在回答最初的问题时,学习 Java 可能会让您编写 Android 应用程序,但如果您还想以 iOS 为目标,那么您没有任何好的选择。通过从一开始就选择跨平台的东西,您可以针对 Android 或 iOS 或两者兼而有之。 Lua(在任何已经提到的风格中)是学习移动开发的绝佳基础语言。

    【讨论】:

    • 哇,非常感谢您的回答!尽管这个问题已经很老了,但这些信息对我来说仍然非常重要:) 我不知道 Corona 决定创建一个允许您免费发布的版本。这是一个好消息,再次感谢 :) 至于 Lua - 自从提出问题以来,我已经用 Java 编写了相当多的代码,但是当我看到另一个鼓励 Lua 的声音时,我想我可能很快就会试一试,太:)
    【解决方案3】:

    问题是您想构建什么样的应用程序以及您拥有什么技能。如果您已经熟悉 JavaScript,则可以使用 Phonegap/Cordova。如果您正在构建游戏,那么有许多使用 Lua 的 2D 和 3D 框架。有些是免费的,有些则需要许可费,但如果它为您的问题提供了解决方案,那么它是值得的。都有优点和缺点。例如,我不确定是否要在游戏框架中构建 RSS 阅读器。 Java 只是另一种语言,我建议您先学习 Java 和 Android 框架并了解其中的内容,然后再添加另一个特定于应用程序的框架层。

    【讨论】:

    • 谢谢。我选择它作为最佳答案,因为它让我浏览了 Lua 框架,我发现 Corona 由于它的简单性而让我大吃一惊。谢谢! :)
    • 因为过去 6 年没有任何改变,我在答案中添加了评论。游戏几乎总是使用本机 NDK 编写,并且完全支持,不需要 Java,还有大量其他解决方案。对于“普通”应用,它仍然是 Java 或 Kotlin,但没有脚本语言。
    【解决方案4】:

    Corona SDK 允许您在 Lua 中编写 iOS 和 Android 应用程序。它很容易学习,但它不是免费的。 编辑: 我看到你发帖说你在我发帖后发现了 Corona...

    【讨论】:

    • 哇,看起来非常棒!我希望我能选择两个答案作为最佳答案:) 非常感谢,肯定会派上用场很多次!我已经看到那里涵盖了我将要提出的问题。但是,您是否熟悉一些更便宜的类似框架? 150 美元(假设我会获得学生许可证)对我来说是一笔不小的数目,尽管我知道你付出的代价是非常高的。
    • 使用 Corona,您可以免费开发和测试您的应用程序。您只需在想要发布它们时支付许可证费用。到那时,如果你的应用和营销做得好,你就可以把钱赚回来。另一种选择是giderosmobile.com,它有一个免费程序,但它们会在您的应用程序上留下一个启动画面。
    • 恐怕你弄错了。我下载了一个试用版,它说它可以工作 30 天,这对于习惯整个 SDK 并开发一个可能有利可图的成熟(甚至简单)游戏来说绝对太少了。另外,你确定一个人可以在没有许可证的情况下对他的游戏进行营销和广告宣传,而且没有人会说一句话吗?我的意思是,唯一的额外许可是向市场提供发布吗?
    • 信息基于我在此处找到的信息:giderosmobile.com/pricing 我对 Gideros 没有经验,仅对 Corona 有经验。
    • 我在谈论 Corona :) 当我安装它时,它说我还有 30 天。在购买许可证之前进行营销的问题也与 Corona 有关。
    【解决方案5】:

    你可以试试http://scormpool.com/luastudio 在您的设备上开发和运行代码,包括 iOS、Android、Mac、Win。

    Exporter 可以帮助您在上述平台上制作独立的应用程序。

    【讨论】:

      【解决方案6】:

      这可能对 OP 没有用,但是对于其他有兴趣使用 lua 编写他们的应用程序的人,我会分享我的想法。所以回答这个问题:

      是的,您可以仅使用 lua 来使用 kepler 项目中的 LuaJava 为 android 编写应用程序(尽管我不相信它已被维护)。您可以无缝地创建和操作 Java 对象,并通过 lua 与 Android API 进行交互。您甚至可以仅使用 lua 动态创建 UI 元素。但是,需要少量 java 引导代码来从您的应用程序启动 lua VM。 AndroLua 项目是 Android 的一个很好的起点。创建者做了很多工作,使 lua 与 Android 一起工作,并将其全部打包到一个应用程序中。根据经验,我可以说它很好用!但是,我绝不会向初学者推荐这个,因为它需要大量关于 java 和 lua 的知识才能使事情正常工作,这意味着更多的工作而不是更少的工作。

      对于 AndroLua,只需克隆 repo 并将其用作您自己的应用程序的基础。上次我使用它时,我只是将它导入到 android-studio,并在我自己的设置中修复了一些问题后,让它在我的设备上编译和运行。

      【讨论】:

        【解决方案7】:

        如果只有纯 Lua,那么答案是否定的。除非你想使用很多库

        如果你想制作小的 Android 应用/游戏然后使用游戏引擎,学习是一个循序渐进的过程,不要直接钻研困难的部分。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-21
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多