Kivy和Java的android应用程序之间的区别

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (93)

对于使用java创建android应用程序有一定经验的python开发人员。我想创建一个访问我的大学门户的小应用程序,并检索一些数据以便在Android上访问它。

1)开发android应用程序更容易,更快捷?

2) Kivy是否有限制访问某些部分的Android(如未与其API完全集成)?

3)最后,使用kivy开发的android应用程序的运行速度与使用java开发的应用程序运行速度一样快?

提问于
用户回答回答于

这是一个相当主观的问题。

1)开发android应用程序更容易,更快捷?

我认为kivy有一个强有力的论据,但是这没有一个客观的答案。

2)Kivy是否有限制访问某些部分的Android(如未与其API完全集成)?

kivy项目包括pyjnius,一个通过python访问Java类的工具,原则上我认为这应该给Java apis提供任意(编辑:反思,不是任意的,但可能不会受到任何限制)。

实际上,预编译的python包装虽然正在迅速改进,但仍在进行中。android python库已经可以轻松访问许多东西(包括但不限于intent,振动,加速度计等)。即使没有python包装器,也可以很容易地完成必要的工作。

最近在Kivy的plyer项目上做了很多工作,旨在提供平台特定工具的透明api,以便您可以调用一次,并在不知道细节的情况下在不同系统上获得相同的行为。它包含对android api部分的有用支持。

3)最后,使用kivy开发的android应用程序的运行速度与使用java开发的应用程序运行速度一样快?

最终答案可能是否定的,但除非你正在做一些强有力的cpu有限的东西,否则这种差别不太重要。你建议的任务不会以这种方式受到限制。

用户回答回答于

为了完成恶意的回答,pyjnius确实允许访问很多android api。但它并不完美,调用现有的类并不总是足够的,而且一个android程序员经常需要创建将由android调用来管理事件的代码,有两种方法可以做到这一点,都是由android api使用的。

  • 第一个是接口:您需要创建一个实现现有java接口的类,pyjnius可以这样做,创建一个python类并声明它实现的是哪个java接口,并且有一个装饰器来声明您必须声明的方法。
  • 第二是子类化,你需要继承现有的Java类并覆盖一些方法,而且我们还没有办法用pyjnius来完成这个任务,所以对于这些类,你必须创建一个java类并使用它在你的程序中(幸运的是你可以将它与kivy / pyjnius混合使用,在这种情况下它不能是100%的python)。

所以,可以事先看一下api,看看你必须访问的android api部分是否需要。

扫码关注云+社区

领取腾讯云代金券