Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Android开始:Java或Python(SL4A)_Java_Python_Android_Sl4a - Fatal编程技术网

从Android开始:Java或Python(SL4A)

从Android开始:Java或Python(SL4A),java,python,android,sl4a,Java,Python,Android,Sl4a,我刚订购了一部Android智能手机,想开始尝试创建自己的应用程序。现在的问题是使用哪种语言,原生Java还是使用SL4A(以前的ASE)的Python 我倾向于使用Python,因为我比Java更了解Python,但我想知道在Android上使用“二级”语言会遗漏什么。在SL4A网站上,它也被称为阿尔法质量软件,这并不令人鼓舞 我也不太确定脚本环境的限制是什么,以及它们是否会有问题。更可能取决于您将开发什么类型的应用程序 我将从Java开始熟悉Android SDK。无论如何,首先你需要看一些

我刚订购了一部Android智能手机,想开始尝试创建自己的应用程序。现在的问题是使用哪种语言,原生Java还是使用SL4A(以前的ASE)的Python

我倾向于使用Python,因为我比Java更了解Python,但我想知道在Android上使用“二级”语言会遗漏什么。在SL4A网站上,它也被称为阿尔法质量软件,这并不令人鼓舞


我也不太确定脚本环境的限制是什么,以及它们是否会有问题。

更可能取决于您将开发什么类型的应用程序

我将从Java开始熟悉Android SDK。无论如何,首先你需要看一些例子,教程。其中大多数都是用Java完成的,只有少数可能是在SL4A的开发站点上完成的

还有Android NDK的本地开发,可以用C++编程。p>


但无论如何,Java规则适用于一般应用程序。

目前,您无法使用SL4A使用Python(或任何其他脚本语言)创建可发布的程序。我听说有传言说谷歌正在研究这一点,但即使他们真的启用了它,Python应用程序与Java相比可能速度慢且耗电大。此外,脚本API仅允许您访问本机Java API的有限子集。我现在不考虑使用SL4A进行严肃的开发工作,只针对一次性脚本和原型。

看一看。它是JVM上的静态类型语言,但使用类型推断来消除Java中的大部分噪音。它还完全支持函数式编程,并具有许多pythonish特性。因为它是静态类型的,所以它与纯Java一样高效,没有任何缺点。我想这是Java首先应该使用的语言


很多人都在写关于在Android上使用Scala的博客,所以谷歌搜索更多信息。

为Dave Kirby的答案添加了一个更新:

,在SL4A的问题追踪器中专门处理这一问题

有一个解决方案正在制定中(目前可能已完成),如所述。唯一的问题似乎是您需要安装一个解释器APK

你可能想看看它是一个基于JRuby开发Android应用程序的框架,这意味着你的JRuby代码可以调用Android API,也可以从Android Java端调用。 这是一篇介绍文章。

如果您想用Python编写Android应用程序,请考虑使用ising。描述了将脚本打包到.apk文件的过程

问题是,结果是.apk会很大(对于300Kb的数据,大约7Mb)。很明显,因为您需要在那里打包Python运行时和所有库

我听说的另一个解决方案是,但它在lower lewel上工作,所以您需要手动绘制图形


不幸的是,我还没有尝试过任何一种方法,但看起来我很快就要开始使用kivy了。

我没有考虑教程/文档,这是一个很好的观点。因此,不管我最终使用哪种语言,我可能都应该从Java开始。我一定会看看Scala,这应该很有趣。这取决于你如何编写程序。如果您是一位经验丰富的Python程序员,那么就去做吧,因为它对于大多数(或几乎所有)目的来说都足够快。尽可能避免使用Java。@otz:对于常规桌面程序,我同意你的看法,但正如我在帖子中所说的(1)目前无法将python脚本转换为可发布的Android应用程序,(2)SL4A python实现无法访问完整的安卓API,(3)在手机上使用电池是至关重要的。像python这样的动态语言将比Java或Scala等效语言使用更多的汁液。@dave Kirby,您可以将脚本打包成.apk并分发。看看它真的很简单,说实话,我没有注意到我开发的任何东西都会“减速”。Python非常棒,因为我已经有很多正在运行的程序(urllib POST应用程序),我可以非常轻松地移植到android。结合sl4a的webview集成,你有一个伟大的工具来快速完成你想要的@Dave Kirby~g19是正确的;您已经能够打包和分发Python Android应用程序很多年了。使用Java可能有技术上的原因,但您的答案与事实大相径庭。Android API的“子集”并不特别“有限”,对于许多应用程序来说都很好。这个问题特别提到想要“开始尝试创建我自己的应用程序”,SL4A比Java更适合,至少对于倾向于“Python,因为我比Java更了解Python”的人来说是这样。