2013-08-31 2 views
17

Для разработчика python, у которого есть опыт создания приложений для Android с помощью java. Я хочу создать небольшое приложение, доступ к моему университетскому порталу и получить некоторые данные, чтобы легко получить доступ к нему на Android.Разница между Kivy и Java для приложений для Android

1) Какая из них проще и быстрее разрабатывать приложения для Android?

2) Имеет ли Kivy ограничения доступа к некоторым частям андроида (например, не полностью интегрирован с его api)?

3) И, наконец, приложение для Android, разработанное с использованием kivy, будет работать так же быстро, как и разработка java?

+2

Некоторые части доступны только через Java (я думаю). И я не могу себе представить, что он будет работать так же быстро, но поскольку ваше приложение является легким, вы не должны замечать никаких различий. – keyser

+1

Ваш комментарий беспокоил меня, но я думаю, что @inclement сказал в своем ответе, что pyjnius может предоставить доступ ко всем андроидам java api. Возможно, сейчас это не полно, но не означает, что некоторые части будут доступны только через java. –

+0

Вот со своего сайта: _ [Некоторая часть Android API доступна напрямую с Pyjnius, но для некоторых из них требуется код на Java.] (Http://pyjnius.readthedocs.org/en/latest/android.html) _. Но я не стал бы волноваться. – keyser

ответ

14

Это довольно субъективный вопрос.

1) Какой из них проще и быстрее разрабатывать приложения для Android?

Я думаю, что есть сильный аргумент в пользу киви, но у этого нет объективного ответа.

2) Имеет ли Kivy ограничения доступа к некоторым частям андроида (например, не полностью интегрирован с его api)?

kivy Проект включает в себя pyjnius, инструмент для доступа к классам Java с помощью Python, и в принципе, я думаю, что это должно дать произвольное (редактирование: на отражение, а не произвольным, но, вероятно, не ограничиваясь немедленно важными способами) доступа к java apis.

На практике готовые обертки python - это незавершенное производство, хотя оно быстро улучшается. Библиотека python android уже дает легкий доступ ко многим вещам (включая, но не ограничиваясь, намерения, вибрацию, акселерометр и т. Д.). Даже там, где еще нет оболочки python, очень легко выполнить необходимую работу.

Редакция: Недавно была проведена большая работа над проектом Kivy plyer, предназначенным для обеспечения прозрачного api для конкретных инструментов платформы, чтобы вы могли его вызывать один раз и получать одинаковое поведение в разных системах, не зная о деталях. Он включает полезную поддержку для частей андроида api.

3) И, наконец, приложение для Android, разработанное с использованием kivy, будет работать так же быстро, как один, разработанный с использованием java?

В конечном счете ответ, вероятно, нет, но разница вряд ли будет важной, если вы не делаете что-то сильно ограниченное. Задача, которую вы предлагаете, не будет ограничена таким образом.

11

Чтобы ответить на полный вопрос, pyjnius действительно позволяет получить доступ к большому количеству android api. Но это не идеально, вызов существующих классов не всегда достаточно, и программисту-андроиде часто нужно создавать код, который будет вызываться андроидом для управления событиями, есть два способа сделать это, оба используются андроидом api.

  • Первый интерфейс: вам нужно создать класс, реализовать существующий интерфейс Java, pyjnius может сделать это, вы создаете класс питона и объявить, какие Java интерфейс он реализует, и есть декоратор Объявите методы, которые вы должны объявить.
  • Во-вторых, это подклассы, вам нужно подклассифицировать существующий класс java и переопределить некоторые методы, и у нас пока нет способа сделать это с pyjnius, поэтому для них вам нужно будет создать класс java и использовать его в своей программе (к счастью, вы можете смешивать это с kivy/pyjnius, это просто не может быть 100% python в этом сценарии).

Так что это может быть полезно посмотреть на api заранее, чтобы узнать, требуется ли для этого части андроида api, которые вам нужно получить.