我可以使用Perl开发Android应用程序吗?

30

我知道我可以在Android上运行Perl,但我想写一个可以在Google Play上发布供任何人下载和运行的应用程序。Perl仍然是一个可行的选择吗?

5个回答

29
这个 Google 项目将 Perl 脚本和 Perl 封装成一个自包含的 APK 文件,无需进一步下载,即可上传到 Google Play 应用商店。

http://code.google.com/p/perl-android-apk/

它通过SL4A提供Android API访问 - 请参阅其中一位作者的以下页面:

http://www.github.com/damonkohler/sl4a

所以,如果Perl是您喜欢使用的语言,它是一个可行的选择。


9

从技术角度来看,只要符合Google Play政策并以APK形式分发,您就可以发布任何内容。但是对于Perl而言,您要么需要将其与应用程序捆绑在一起,要么期望用户拥有它(几乎没有人),更不用说用户界面了。我的回答是 - 这不是最好的想法,如果您能重新考虑,可能会想出需要更少麻烦的解决方案。


9
我强烈推荐在Android上使用Perl和SL4A来进行应用程序的原型开发。从那里开始,将代码重构为Java并不是太困难,因为两个平台上的系统调用都是相同的。
了解Java是一个极好的新技能,基础知识 - 主要是所有东西都是类 - 可以在一个下午学习,并且大部分可以在Perl中复制。

5
我希望你能翻译以下内容:选择Perl的原因是因为它拥有丰富的CPAN库,并且我对它更加自信。如果可以使用Perl,那么用Java编写应用程序将需要比额外的下午时间更多的时间,尤其是如果我想要相同的代码质量的话。现在,如果有一种方法可以将SL4A和我的脚本捆绑成一个APK文件就好了... - Andreas
@Andreas 代码质量 - 这是一个很好的理由。但不要忘记应用程序的整体质量。 - Dmitry Zaytsev
@Andreas,有很多Java库可用,但没有CPAN会让它们更难找到,而将库带入您的APK文件中肯定会使您的应用程序变得臃肿。(没有免费的午餐和所有这些...)我建议研究Java的Maven项目,它为Java提供了大量用于各种目的的OSS库。我仍然希望在Android上也能有CPAN。 - zostay

8
简短回答是:不能在Android应用中使用Perl。没有实际可行的方法来做到这一点。虽然有一些类似SL4A之类的东西可以让原型制作成为可能,甚至可以在手机上运行真正的应用程序,但将其部署到广泛的手机基础上将会有问题。对于95%的应用程序而言,某种类型的Java应用程序是最佳选择。然而,本地Java应用程序并不是您唯一可用的替代方案。其他选项包括:
  • 您可以开发一个主要由服务器端驱动的应用程序,该应用程序运行Perl。这可以通过某种类型的套接字连接、REST API或包装在薄Java应用程序中的基于Web的移动应用程序来实现,但是您的应用程序只能在手机或平板电脑有工作数据连接时才能工作。有许多应用程序(包括我的)都是以这种方式工作的。

  • 您可以尝试使用PhoneGap,它使用HTML5和JavaScript(如果您想将其扩展到Android上PhoneGap不支持的功能,则还可以使用Java)。这个框架还有一个优点,就是可以非常轻松地在iPhone和其他智能手机上运行您的应用程序。这也有自己的支持基础和社区,与Android和Google分开,如果这是一个问题的话。

  • 您还可以尝试Scala,这是一种函数式语言(即比Java更像Perl),构建到JVM并具有一些工具来帮助构建Android项目。这不太成熟,不受Google支持,起步较难,但对那些反感Java的人来说不是Java。

最终,应该有人能够将应用程序部署到Perl上,我希望看到这种情况发生。然而,我不愿意领导那个项目。

2014年1月更新:遗憾的是,尽管其他人说过什么,但我的原始答案(来自2012年8月)仍然适用。SL4A + perl已经接近解决方案,但SL4A不允许您实际构建本地Android应用程序。它基本上为您提供了构建本地托管Web应用程序并访问一些手机本机功能的能力。这可能满足某些需求,但肯定不是所有应用程序开发者的需求。我仍然不知道有哪个项目能让您在Perl中构建本地Android应用程序。


0

1
我知道我可以在Android上运行Perl。但是我想开发一个可以整洁地打包在Google Play的APK中的应用程序。 - Andreas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接