Python在Android上有哪些限制?

28

我准备开始进行一些Android开发,需要选择一种语言。我知道Python,但是需要学习Java。我想知道那些在Android上使用Python的人所遇到的限制是什么。此外,与Java相比,是否有任何优势?


1
你可以从这个帖子开始:https://dev59.com/l3A75IYBdhLWcg3wVniI - Tarik
不错的链接Dorian。谢谢你分享。 - NlightNFotis
谢谢提供链接。它很不错,但是已经有两年了。 - Dave K
3个回答

25
大部分Andrew提到的观点是正确的,我只想提一下Python可以并且正在被用于在GooglePlay和iOS上发布完整的应用程序。我不能代表其他框架说话,但以下是使用Kivy发布的一些应用程序示例。
  1. Process Craft Google Play iOS
  2. Fantasy War hammer
  3. PreseMT is a multitouch presentation maker
  4. Memo robots
  5. Ground Truth
  6. Kaleidoscope
  7. Showcase demo example from Kivy project
  8. DefelectTouch game iOS
  9. Bargenius 和更多...
在打包方面,我们尽量简化了操作,并提供以下内容:
  • 一个预构建的VM,可用于制作您的apk,您只需复制项目目录并运行一个命令即可。

关于GUI,是的,界面默认情况下是自定义的(尝试匹配Android的Holo主题)。但是它可以定制成其他外观和感觉,虽然我个人没有尝试过。

哦,只要谈论基于Python的安卓应用程序,我在stackoverflow上发现了这个项目PyMob,他们的apps页面列出了一些有趣的应用程序。


17

出于类似的原因,我最近进行了调查。我的结论是我不能使用Python开发本地外观应用程序,这正是我当时想要的。具体而言:

  • Python无法从Java UI类接收回调,因此您无法使用任何本地Java UI元素,例如ListView等。仅对话框等是容易获取的。如果您有完全自定义的UI,例如游戏,则可以尝试Android平台上的PyGame,或者您可以查看Kivy,该工具还使用了PyGame。

  • 打包Python应用程序非常困难,特别是因为默认情况下Android上没有包含Python解释器。 Kivy和PyGame团队正在不断取得一些进展。

  • 由于前述问题,Python基本上从未用于制作在应用商店发布的完整应用程序,因此处理许多与SL4A(Scripting Layer For Android)相关的杂项问题的文献非常少。

因此,如果您想制作一个使用本地UI元素的应用程序,可以在Play商店中实际分发,或者两者都可以,那么遗憾的是Python不是一个选择。


2
您可以为Play商店打包,并使用Webviews和任何HTML5内容构建GUI。对于简单的内容,jQuery Mobile UI效果很好。我有一个基于jQuery Mobile和Python的应用程序,它被打包为可安装的APK,并包含解释器和其他所有内容。从Play商店进行一键安装。 - Carl Smith
@CarlSmith 感谢你的提示。你用什么来捆绑解释器?你的用户需要安装SL4A包吗? - Andrew Gorcester
我使用了这个项目的代码(http://code.google.com/p/android-python27/)并在此基础上进行开发。它提供了所有你需要的钩子,但在设置好之前,工作流程很糟糕。你不需要使用Eclipse,但最好一开始使用它并查看它是如何组合在一起的。 - Carl Smith

4

我已经开发了一些在市场上使用的Android应用,它们是用Python编写的。不过,也存在一些缺点:

  1. 目前为止,我的用户必须同时下载解释器,但是他们会立即收到提示。(更新:请参见下面的评论。)
  2. 脚本无法正常退出,因此我包括了一个webView页面,要求他们转到:设置:应用程序:强制关闭(ForceClose),如果遇到此问题。

5
我已将所有的sl4a应用程序移植到eclipse apk平台,它内置了Python解释器,只需从Google Play下载应用程序即可,无需安装其他内容!A) Android Eye(计算机视觉)可以拍照并告诉你照片中的事物是什么(目标识别): https://play.google.com/store/apps/details?id=com.androideye.androideyeB) See Say(OCR)是一款为视力受损者设计的图片转语音应用。您可以让它朗读书籍: https://play.google.com/store/apps/details?id=com.seesay.seesayC) 标准化智商测试(基于斯坦福-比内特测试): https://play.google.com/store/apps/details?id=com.iqtest.iqtest - Diamond Dave

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