¿Alguna buena herramienta ORM para el desarrollo de Android?

¿Alguien que trabaja en Android (‘gPhone’) tiene o sabe de un lugar donde puedo encontrar una buena herramienta ORM para ello? El código está escrito en Java y la base de datos es SQLite. Lo que me gustaría encontrar es una herramienta que, dada la definición del objeto, pueda autogenerar las tablas y las funciones CRUD (eso sería increíble) o, salvo eso, una herramienta que pueda tomar la definición de la tabla, la definición del objeto, y autogenerar la funcionalidad CRUD. El problema es que todo esto debe suceder dentro del marco Android, que tiene sus propias convenciones sobre cómo funciona el acceso a la base de datos.

Este hilo puede darte algo para explorar: Alternativas ligeras para hibernate

Pensé que solo agregaría mi $ 0.02 aquí sobre mi paquete ORMLite:

http://ormlite.com/

Es un reemplazo liviano para Hibernate y usa llamadas de bases de datos nativas del sistema operativo Android para soportar SQLite en Android. También es compatible con muchos otros tipos de bases de datos que utilizan JDBC en otras architectures. Tenemos una lista de correo de Android para preguntas ORMLite.

Esta pregunta no puede envejecer, pero los marcos sugeridos sí pueden. Entonces, aquí hay una lista de lo que encuentro importante en tales marcos para comparar:

  • ¿Hay algún artefacto de Maven o Gradle? (Eso es una gran ventaja dependiendo de si usas maven o gradle, obviamente)
  • ¿Se puede acceder al código de una manera sencilla, incluida una descripción general rápida de los compromisos para juzgar la actividad? (El código alojado en github es una ventaja definitiva para mí, en ese asunto)
  • Gestión de lanzamientos: ¿hay tags de lanzamientos / lanzamientos y artefactos para ello? (hay algunos que están alojados en github y requieren ya sea git clone u ofrecen el tarball maestro para su descarga; para mí, un gran inconveniente, si es que ni siquiera, las tags de lanzamiento se establecen y abordan en el README)
  • como el tamaño importa, puse algunas pistas donde era fácil de conseguir (no descargué nada, así que de aquellos proyectos que no ofrecen artefactos de lanzamiento no hay tamaños)

Y aquí hay una lista de marcos con notas sobre los puntos anteriores. Miré un poco más como aBatis y Hadi pero agregué solo aquellos que tenían alguna actividad después de 2011.

No he probado ninguno de ellos, pero tal vez pueda ahorrarles un poco de tiempo a los lectores actuales enumerando los proyectos actualmente activos. Por favor, agregue un comentario si conoce otros proyectos que satisfagan algunos de los puntos anteriores y que tengan un desarrollo serio (durante un tiempo).

EDITAR (noviembre de 2013): actualizó la lista al estado actual de los proyectos. Algunos de estos han agregado tags de lanzamiento a sus repositorys github, así como compatibilidad con Maven / Gradle. ¡Buen trabajo!

EDITAR (abril de 2015): actualizó la lista, agregó Sprinkles (según el comentario de @AndroidGecko) y Realm.io.

Si el rendimiento y el tamaño del código importan, consulte greenDAO . Soy el autor y mi motivación para crear otro ORM fue evitar la reflexión en los puntos de acceso. Resultó que greenDAO puede ser hasta 4 veces más rápido que ORMLite. Consulte la página de características para más detalles.

No sé de nada que sea exactamente lo que está pidiendo, pero hay una alternativa a SQLite que puede serle útil si sus requisitos de architecture son flexibles. Vale la pena echarle un vistazo a db4o :

  • Android db4o
  • Ejemplos de comparación de código

ActiveAndroid ($ 20) parece que puede ser exactamente lo que necesita.

Me gustó ActiveAndroid. Está escrito específicamente para Android, parece. Eso se siente como un plus para mí.

Tengo algo de experiencia Ruby on Rails y si te gusta la forma Rails de ActiveRecord puedes moverte muy rápidamente con esta biblioteca.

https://www.activeandroid.com/

https://github.com/ahmetalpbalkan/orman

Orman framework podría ayudarte. Está especialmente diseñado para eso y muy pequeño y útil.

También estoy buscando un ORM en Android. Probé ActiveAndroid , NeoDatis y db4o , y creo que usaré uno de los dos últimos.

NeoDatis y db4o son muy similares, por lo que me gustaría obtener algunos consejos para elegir el mejor. ¿Alguien está usando uno de ellos en su proyecto? Lo usaré para la aplicación gratuita y de pago, pero parece que los dos no tienen ninguna limitación de licencia para Android.

Aquí hay un punto de referencia que parece decir que NeoDatis es más rápido que db4o, pero no sé si podemos basar mi opinión en esto.

Uno más recién llegado: Android-active-record. Es un framework de persistencia muy ligero y fácil de usar para Android respaldado por SQLite http://code.google.com/p/android-active-record/

ActiveRecordJS de Aptana es un ORM de Javascript que debe ejecutarse en el gPhone. Está diseñado para trabajar con Jaxer y Gears. Cuando utiliza los adaptadores Jaxer, puede conectarse a SQLLite.

ACTUALIZACIÓN: no creo que lo haya dejado en claro, pero ActiveRecordJS es un ORM que se ejecuta en el lado del cliente, lo que podría ser una ventaja para usted en el gPhone.

http://hadi.sourceforge.net

Esta herramienta es muy simple y fácil de usar.

Desarrollé mi propia implementación de JPA ORM para Android. Todavía no está completa la función completa, pero puede anotar la clase con las anotaciones @Entity, @Id, @Column y obtendrá entidades JPA que se pueden almacenar y recuperar de la base de datos SQLite. Necesita algunas más funciones y limpieza antes de publicarlo al público, pero si hay suficiente interés podría acelerar mi esfuerzo.

Aunque esta es una publicación anterior, el tema sigue siendo relevante. Por lo tanto, quiero compartir un artículo interesante y un enfoque agradable para resolver la mayoría de los problemas mencionados en la pregunta:

http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/

Espero que alguien lo encuentre tan útil como yo.

Mi propio DroidParts /http://droidparts.org/ acaba de llegar a v0.5. Es una biblioteca DI / ORM y más.
No hay mucha documentación, pero incluye una aplicación de muestra.

Tuvo una experiencia negativa con db4o (v. 8): la indexación no funcionó correctamente (excepción, etc.). Por lo tanto, no conseguí evitar crear duplicados en tablas externas al tener objetos en la estructura del objeto. Explicación más detallada en mi pregunta . Espero que algún día sea mejor.