2010-05-05 8 views
52

¿Puedo hacer la programación de Android en C++, C? Si la respuesta es "sí", ¿cómo? ¿Y cuál es el procedimiento para configurarlo?¿Puedo hacer la programación de Android en C++, C?

No sé Obj-C, Java, pero bien versado en C, C++, Flash AS3, SDK lanzado por Google.

Por favor, no hablar de SDK NVDIA no está completamente desarrollado :)

Respuesta

57

OBSERVE POR FAVOR: LA RESPUESTA ABAJO ESTÁ HORRIBLEMENTE DESCONTINUADA, Y PUEDE NO SER COMPLETAMENTE CORRECTA.

Puede programar en C/C++ con el Android NDK. Tendrá que ajustar su base de código de C++ en una biblioteca estática y cargarla a través de un contenedor Java & JNI.

El NDK estándar no admite RTTI y mucha de la funcionalidad de C++ estándar tampoco está disponible, como std :: string, etc. Para solucionar esto, puede recompilar el NDK. Dmitry Moskalchuk proporciona una versión modificada del NDK que lo admite al http://www.crystax.net/android/ndk-r3.php. Esta versión modificada funciona en todos los teléfonos Android que se ejecutan en un procesador ARM.

Según el tipo de aplicación, debe decidir utilizar Java o C/C++. Utilizaría C/C++ para todo lo que requiera juegos y poder computacional por encima del promedio: Java para el resto.

Elija un idioma y escriba la mayoría de su solicitud en ese idioma; Las llamadas JNI pueden disminuir mucho su rendimiento. Sin embargo, Java no es tan difícil, si sabes cómo programar en C/C++. La ventaja de Java es que la aplicación se puede ejecutar en cualquier dispositivo con Android, donde las aplicaciones NDK dependen de la arquitectura para la que se compiló.

15

Debe utilizar Android NDK para desarrollar porciones de rendimiento crítico de sus aplicaciones en código nativo. Ver Android NDK.

De todos modos, no creo que sea la manera correcta de desarrollar una aplicación completa.

8

Sí, puede programar aplicaciones de Android en C++ (en su mayor parte), usando el Native Development Kit (NDK), aunque Java es el idioma principal/preferido para programar Android, y su código C++ probablemente tendrá que interactuar con los componentes de Java, y es probable que también necesite leer y comprender la documentación para los componentes de Java. Por lo tanto, le aconsejo que use Java a menos que tenga alguna base de código C++ existente que necesite transportar y que no sea práctico reescribir en Java.

Java es muy similar a C++, no creo que tenga ningún problema para obtenerlo ... ir de C++ a Java es increíblemente fácil; pasar de Java a C++ es un poco más difícil, aunque no terrible. Java for C++ Programmers hace un buen trabajo al explicar las diferencias. Escribir el código de Android en Java será más idiomático y también facilitará el proceso de desarrollo (ya que las herramientas para Java SDK de Android son significativamente mejores que las herramientas NDK correspondientes)

En términos de configuración, Google proporciona el Android Studio IDE para el desarrollo de Android tanto en Java como en C++ (con Gradle como sistema de compilación), pero puede usar cualquier IDE o sistema de compilación que desee siempre y cuando esté usando el SDK/NDK de Android para producir el resultados finales.

+3

"Java es muy similar a C++"? – alecov

+1

@ Alek, ¿cuál es su objeción? Es verdad. Sintácticamente, los dos lenguajes son muy similares, y Java toma mucho de C++. –

+0

@MichaelAaronSafyan Eso solo es cierto, siempre y cuando los idiomas se comparen desde un punto de vista muy superficial. La sintaxis es de hecho similar (como es el caso de muchos lenguajes populares: C, C#, JS, PHP, ...), pero los paradigmas y las expresiones idiomáticas son diferentes. Mientras que Java todavía se enfoca en las clases a pesar de influencias recientes de elementos funcionales, C++ ya proporcionó una gama completa de mecanismos de abstracción (funciones globales, plantillas, typedef, functors, sobrecarga de operador, ...), lo que lleva a un estilo de programación diferente. P.ej. Las Colecciones STL y Java están estructuradas de manera muy diferente. – TheOperator

-6

Hay más de una biblioteca para trabajar en C++ en la programación Android:

  1. C++ - qt (un producto de Nokia, también disponible como LGPL)
  2. C++ - Wxwidget (Disponible como GPL)
3

También debe consultar MoSync, MoSync le ofrece C/C++ estándar, API fáciles de usar y bien documentadas, y un IDE basado en Eclipse con todas las funciones. Ahora es un IDE de código abierto que sigue siendo bastante bueno pero que ya no se mantiene.

+0

El enlace está roto – Bogatyr

+0

Su proyecto ya desaparecido y de origen abierto – JPM

2

Puede echar un vistazo también a C++ Builder XE6, y XE7 es compatible con Android en código C++, y con la biblioteca Firemonkey.

http://www.embarcadero.com/products/cbuilder

manera bastante fácil de iniciar y código nativo. Pero los binarios tienen un gran tamaño.

+0

¿Tiene alguna asociación con embarcadero? – hichris123