studio - ¿Puedo hacer una aplicación de C++ bastante nativa con Android?
programa para crear aplicaciones android (6)
A partir de NDK r5 con Android 2.3 (Gingerbread), esto es posible, aunque supongo que solo los dispositivos que admitan aplicaciones nativas deben tener Gingerbread en ellas.
De la muestra de actividad nativa:
El Android SDK proporciona una clase de ayuda, NativeActivity, que le permite escribir una actividad completamente nativa. Con una actividad nativa, es posible escribir una aplicación completamente nativa. NativeActivity maneja la comunicación entre el marco de Android y su código nativo, por lo que no tiene que crear una subclase o llamar a sus métodos. Todo lo que necesita hacer es declarar que su aplicación es nativa en su archivo AndroidManifest.xml y comenzar a crear su aplicación nativa.
Estoy interesado en las siguientes características:
- Escribiendo una aplicación para Android Market que está escrita completamente en C ++ (un puerto de producto existente en realidad).
- Use el empuje rápido de píxeles de la pantalla (o más bien use OpenGL ES para esto).
- Agarre la entrada del usuario y diríjala al código C ++.
¿Es legal escribir una aplicación para Market? ¿Es la política de mercado de alguna manera estricta a tales cosas?
Con Gingerbread (Android 2.3) parece que puedes construir tu aplicación completa en C ++.
cf: http://phandroid.com/2011/01/11/android-developers-blog-awesome-ndk-leads-to-awesome-apps/
"Con la última versión del NDK, r5, se han realizado muchas mejoras para coincidir con el lanzamiento de Gingerbread. La más importante es la capacidad de codificar una aplicación nativa para Android 2.3 completamente en C ++. Esto significa que incluso los programadores y desarrolladores con ningún conocimiento de Java tendrá que implementar una sola línea de ese código ... "
No puedo responder por la veracidad de este blogger, sin embargo, por lo que he leído, parece que puedes hacer esto
Las conversaciones en este hilo pueden ayudarte. http://groups.google.com/group/android-ndk/browse_thread/thread/50362904ae0574cf
la esencia es que es posible crear aplicaciones solo nativas y Android Market no te restringe tampoco. Pero con un soporte limitado para el desarrollo nativo, existe una alta probabilidad de usar algunas de las funcionalidades no estándar que podrían interrumpir en futuras versiones.
No existe una solución 100% nativa, pero creo que lo que está buscando es el Android NDK (Native Development Kit)
Desde su sitio "Tenga en cuenta que el NDK no le permite desarrollar aplicaciones nativas. El tiempo de ejecución principal de Android sigue siendo la máquina virtual Dalvik".
Creo que te permite hacer llamadas a tu propio código nativo desde una aplicación de Android
Personalmente, nunca lo he usado para mis juegos, pero estoy seguro de que ayudaría en muchas cosas (como poder manejar mi propia memoria y no tener que hacer un "retraso" con el recolector de basura)
Realmente no es mi taza de té, pero hay algo que se llama Android NDK (Native Development Kit) para usar si quieres escribir tu programa en C. Aunque no estoy seguro de cómo funciona el compilador de C ++.
Por lo que sé, su aplicación puede ser casi un 100% de código nativo, pero tenga en cuenta que al caminar de esa manera probablemente tendrá dificultades para admitir las diferentes CPU en el hardware de Android. Si necesita reiniciar el código nativo para que se inicie desde Java, probablemente no sea un gran problema para usted.
Encontré algunos tutoriales diferentes cuando busqué en Google para "Android NDK". Este es un Hello World muy minimalista . Obviamente, quieres algo mucho más que una biblioteca que devuelve una cadena a Java, pero es un buen comienzo y probablemente tendrás que hacer todas las cosas descritas. Realice una búsqueda utilizando NDK y Android como palabras clave y obtendrá una buena selección. No veo ninguna razón para enumerarlos aquí, ya que tales listas tienden a estar desactualizadas y rotas en aproximadamente un año.
Supongo que el sitio oficial de desarrolladores de Android de Google se mantendrá actualizado y se actualizará con las nuevas versiones de la plataforma, ya que tiene un enlace al NDK actual.
http://developer.android.com/guide/basics/what-is-android.html
"El SDK de Android proporciona las herramientas y las API necesarias para comenzar a desarrollar aplicaciones en la plataforma de Android utilizando el lenguaje de programación Java".
http://arstechnica.com/open-source/news/2009/06/android-goes-beyond-java-gains-native-cc-dev-kit.ars
En general, no lo haces. Existe cierto soporte limitado de C ++ a través de JNI, pero su objetivo principal es complementar el código Java, no reemplazarlo. No hay soporte de framework / API (AFAIK) para C ++, por lo que hacer esto no es realmente una opción.