Разница между 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-арифметики вам нужно получить доступ.