Разница между Kivy и Java для приложений для Android

Я - разработчик на Python с небольшим опытом создания приложений для Android на Java и хочу создать приложение, которое получит доступ к моему университетскому веб-порталу, получит некоторые данные и покажет их в виде.

Итак, после исследования Kivy у меня есть несколько вопросов:

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

2) Есть ли у Kivy ограничения по Android?

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

Ответы

Ответ 1

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

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

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

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

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

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

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

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

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

Ответ 2

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

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

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