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