framework - Diferencia entre Kivy y Java para aplicaciones de Android
python for android (2)
Esta es una pregunta bastante subjetiva.
1) ¿Cuál es más fácil y rápido para desarrollar aplicaciones de Android?
Creo que hay un fuerte argumento para Kivy, pero esto no tiene una respuesta objetiva.
2) ¿Tiene Kivy limitaciones para acceder a ciertas partes de Android (como no está totalmente integrado con su api)?
El proyecto kivy incluye pyjnius, una herramienta para acceder a clases java a través de python, y en principio creo que esto debería otorgar acceso arbitrario (edición: en reflexión, no arbitraria, pero probablemente no limitada de manera inmediata) a las apis de java.
En la práctica, los envoltorios de Python precompilados son un trabajo en progreso, aunque están mejorando rápidamente. La biblioteca de Android Python ya brinda fácil acceso a muchas cosas (entre ellas, intenciones, vibraciones, acelerómetros, etc.). Incluso cuando todavía no hay una envoltura de python, puede ser muy fácil hacer el trabajo necesario.
Edición: Recientemente, se ha realizado un gran trabajo en el proyecto plyer de Kivy, destinado a proporcionar una api transparente para herramientas de plataforma específica para que pueda llamarlo una vez y obtener el mismo comportamiento en diferentes sistemas sin conocer los detalles. Incluye soporte útil para partes de la API de Android.
3) ¿Y finalmente, una aplicación de Android desarrollada utilizando kivy se ejecutaría tan rápido como una desarrollada utilizando Java?
En última instancia, la respuesta es probablemente no, pero es muy poco probable que la diferencia sea importante a menos que esté haciendo algo muy limitado por la CPU. La tarea que sugieras no se limitaría de esa manera.
Para un desarrollador de Python que tiene algo de experiencia en la creación de aplicaciones de Android con Java. Quiero crear una pequeña aplicación que acceda al portal de mi universidad y recupere algunos datos para acceder fácilmente a él en Android.
1) ¿Cuál es más fácil y rápido para desarrollar aplicaciones de Android?
2) ¿Tiene Kivy limitaciones para acceder a ciertas partes de Android (como no está totalmente integrado con su api)?
3) ¿ Y finalmente, una aplicación de Android desarrollada utilizando kivy se ejecutaría tan rápido como una desarrollada utilizando Java?
Para completar la respuesta de inclemente, Pyjnius de hecho permite acceder a una gran cantidad de la API de Android. Pero no es perfecto, no siempre basta con llamar a las clases existentes, y un programador de Android a menudo necesita crear un código que será llamado por android para administrar eventos, hay dos formas de hacerlo, ambas usadas por la API de Android.
- La primera es interfaces: necesitas crear una clase que implemente una interfaz java existente, pyjnius puede hacer eso, crear una clase python y declarar qué interfaz java implementa, y tener un decorador para declarar los métodos que debes declarar.
- El segundo es la subclasificación, debe subclasificar una clase java existente y anular algunos métodos, y aún no tenemos una manera de hacerlo con pyjnius, por lo que para estos, tendría que crear una clase java y usarla en tu programa (afortunadamente puedes mezclar eso con kivy / pyjnius, simplemente no puede ser 100% python en ese escenario).
Por lo tanto, puede valer la pena echarle un vistazo a la API de antemano, para ver si las partes de la API de Android a las que tiene que acceder lo requieren.