我刚刚订购了一部 Android 智能手机,并想开始尝试创建自己的应用程序。现在的问题是使用哪种语言,使用 SL4A(前 ASE)的原生 Java 或 Python。
我倾向于 Python,因为我知道它比 Java 好得多,但我想知道在 Android 上使用“二等”语言会缺少什么。在 SL4A 网站上,它也被称为 alpha 质量软件,这并不令人鼓舞。
我也不太确定脚本环境的限制是什么,以及它们是否会出现问题。
目前,您无法使用 SL4A 使用 Python(或任何其他脚本语言)创建可发布的程序。我听说这是谷歌正在做的事情,但即使他们确实启用了它,Python 应用程序与 Java 相比可能会很慢而且很耗电。此外,脚本 API 仅允许您访问本机 Java API 的有限子集。目前我不会考虑将 SL4A 用于严肃的开发工作,仅用于一次性脚本和原型设计。
看看Scala。它是 JVM 上的一种静态类型语言,但使用类型推断来消除您在 Java 中获得的大部分噪音。它还完全支持函数式编程,并具有很多 Python 特性。因为它是静态类型的,所以它与纯 Java 一样高效,没有任何缺点。恕我直言,这是 Java 应该首先出现的语言。
很多人都在写关于在 Android 上使用 Scala 的博客,所以谷歌搜索更多信息。
更有可能取决于您将开发哪种类型的应用程序。
我会从 Java 开始熟悉 Android SDK。无论如何,首先您需要查看一些示例和教程。其中大部分是用 Java 完成的,只有少数可能是在 SL4A 的开发站点上。
还有原生开发 Android NDK,可以用 C++ 编程。
但无论如何,Java 规则适用于一般应用程序。
为 Dave Kirby 的回答添加更新:
第 55 期,将脚本分发为 APK,在 SL4A 的问题跟踪器中专门处理该问题。
在SharingScripts中描述了一个正在制定的解决方案(现在可能已经完成)。唯一的问题似乎是您需要已经安装了解释器 APK。
如果您想使用 Python 编写 Android 应用程序,请考虑使用Kivy 。这里描述了将脚本打包成 .apk 文件的过程。
问题是,生成的 .apk 会很大(300Kb 数据约为 7Mb)。很明显,因为您需要在其中打包 Python 运行时和所有库。
我听说过的另一个解决方案是Pygame for Android,但它适用于低级,因此您需要手动绘制图形。
不幸的是,我还没有尝试过任何这些方法,但看起来我很快就会开始使用 kivy。