我知道我可以在 Android 上运行Perl,但我正在寻找可以在 Google Play 上发布的应用程序,任何人都可以下载和运行。Perl 仍然是一个可行的选择吗?
5 回答
这个 Google 项目将 Perl 脚本和 Perl 打包成一个独立的 APK,不需要任何进一步的下载,可以上传到 Google Play:
http://code.google.com/p/perl-android-apk/
它通过 SL4A 提供 Android API 访问 - 请参阅其中一位作者的以下页面:
http://www.github.com/damonkohler/sl4a
所以是的,如果 Perl 是您首选的工作语言,它是一个可行的选择。
从技术上讲,您可以发布任何符合 Google Play 政策并以 APK 形式分发的内容。但是对于 perl,您要么必须将 perl 与您的应用程序捆绑在一起,要么期望用户拥有它(几乎没有人),更不用说 UI。我的回答是——这不是最好的主意,如果你能重新考虑一下,你可能会想出一些需要更少麻烦的东西。
我强烈推荐用于 Android 的 Perl 和用于原型应用程序的 SL4A 。从那里开始,将代码重构为 Java 并没有太大的飞跃,因为两个平台上的所有系统调用都是相同的。
Java 知识是一个很好的新字符串,基础知识——主要是一切都是一门课——可以在一个下午学习,并且可以在 Perl 中大量复制
简短的回答是:不,您不能在已部署的原生 Android 应用程序中使用 Perl。没有实际的方法可以做到这一点。有办法做到这一点,但没有一个是可行的。
正如其他人所指出的那样,有一些像 SL4A 之类的东西可以使原型制作成为可能,您甚至可以在手机上运行一个真正的应用程序,但是将其部署到广泛的手机上会有问题。
对于 95% 的应用程序,某种 Java 应用程序是最佳选择。然而,本机 Java 应用程序并不是您可以使用的唯一选择。
其他选项包括:
您可以开发一个主要在服务器端驱动的应用程序,该应用程序运行 Perl。这可能是通过某种套接字连接、REST API 或包装在安装到客户端的瘦 Java 应用程序中的基于 Web 的移动应用程序。但是,您的应用程序仅在手机或平板电脑具有工作数据连接时才能运行。有许多应用程序(包括我自己的)以这种方式工作。
你可以试试PhoneGap,它使用 HTML5 和 JavaScript(如果你想扩展它来做一些 Android 上 PhoneGap 不支持的事情,还可以使用 Java)。该框架还有一个优势,即可以轻松地在 iPhone 和其他智能手机上运行您的应用程序。这也有它自己的支持基础和社区,独立于 Android 和 Google,如果这是一个问题的话。
您还可以尝试Scala,它是一种构建到 JVM 的函数式语言(即,比 Java 更 Perlish),并且有一些工具可以帮助构建 Android 项目。这并不成熟,不受谷歌支持,更难开始,但对于那些被 Java 冒犯的人来说,Java 不是。
最终,应该有可能有人将应用程序部署到 Perl,我很乐意看到这种情况发生。不过,我不愿意带头开展该项目。
2014 年 1 月更新:可悲的是,尽管其他人说了些什么,但我在 2012 年 8 月的原始回答仍然适用。SL4A + perl 安装解决方案更接近,但 SL4A 不允许您实际构建原生 Android 应用程序。基本上,它使您能够构建一个本地托管的 Web 应用程序,该应用程序可以访问手机的某些本机功能。这可能满足某些应用程序开发人员的需求,但肯定不是所有应用程序开发人员。我仍然不知道有哪个项目可以让您在 Perl 中构建原生 Android 应用程序。
Google 声称 Perl 受到“Android 脚本层”(SL4A) 的支持。
见这里:http ://code.google.com/p/android-scripting/
和 Perl apk:http ://code.google.com/p/android-scripting/downloads/detail?name=perl_for_android_r1.apk