Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Escribir aplicaciones en C o C ++ para Android?

Estoy tratando de desarrollar / portar un juego a Android, pero está en C, y Android es compatible con Java, pero estoy seguro de que debe haber una manera de obtener una aplicación C en allí, nadie sabe de un buen tutorial sobre el tema ?

¡Gracias!

  • ImageButton no se resalta en hacer clic con fondo transparente
  • ¿Cuál es el propósito de las categorías de intención?
  • Google Play Developer Console actualizando problemas, normal?
  • Capas de hardware y animación de vista de Android
  • El desarrollo de Android cambia la visibilidad de TextView
  • Cómo utilizar un controlador de Android para actualizar un TextView en el subproceso de interfaz de usuario?
  • ¿Cómo usar getContentResolver en una clase sin actividad?
  • Android con Ant
  • Fuente malayalam en android?
  • "Clase no encontrada" al ejecutar pruebas JUnit desde IntelliJ IDEA (Android)
  • Invocación de funciones JNI en el nombre del paquete de Android que contiene subrayado
  • ¿Cómo agregar un proyecto de biblioteca a un proyecto androide?
  • 20 Solutions collect form web for “Escribir aplicaciones en C o C ++ para Android?”

    Para cualquiera que venga a esto a través de Google, tenga en cuenta que a partir de SDK 1.6 Android ahora tiene un SDK oficial nativo.

    Puede descargar el NDK de Android (Native Development Kit) desde aquí: https://developer.android.com/ndk/downloads/index.html

    También hay una entrada del blog sobre el NDK:
    http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html

    El NDK de Android es un conjunto de herramientas que le permite implementar partes de su aplicación en código nativo, utilizando idiomas como C y C ++. Para ciertos tipos de aplicaciones, esto puede ayudarle a reutilizar bibliotecas de códigos escritas en esos idiomas.

    Para obtener más información sobre cómo comenzar con el desarrollo nativo, siga este enlace .

    Se pueden encontrar ejemplos de aplicaciones aquí .

    Normalmente, usted tiene que:

    1. Instalar Google Android NDK. Contiene libs, encabezados, ejemplos de makfile y gcc toolchain
    2. Construir un ejecutable de su código C para ARM, optimizar y vincularlo con libs proporcionado si es necesario
    3. Conéctese a un teléfono usando la interfaz de adb proporcionada y pruebe su ejecutable

    Si está buscando vender una aplicación:

    1. Construye una biblioteca desde tu código C
    2. Cree un código Java sencillo que utilice esta biblioteca
    3. Incluir esta biblioteca en el archivo del paquete de aplicaciones
    4. Prueba tu aplicación
    5. Venderlo o distribuirlo de forma gratuita

    Google ha lanzado un Native Development Kit (NDK) (según http://www.youtube.com/watch?v=Z5whfaLH1-E a las 00:07:30).

    Esperemos que la información se actualice en la página de grupos de google ( http://groups.google.com/group/android-ndk ), ya que dice que aún no se ha publicado.

    No estoy seguro de dónde obtener una descarga sencilla, pero he oído que puede obtener una copia del NDK del repositorio Git de Google bajo la rama de donuts.

    La posición oficial parece ser que esto no es algo que alguna vez "quieres hacer". Vea este hilo en la lista de desarrolladores de Android. Google prevé que android se ejecute en una variedad de dispositivos diferentes (CPUs, pantallas, etc). La mejor manera de habilitar el desarrollo es, por lo tanto, usar código administrado (portátil) que apunte a la VM de Dalvik. Por esta razón, el SDK de Android no es compatible con C / C ++.

    PERO, eche un vistazo a esta página :

    Android incluye un conjunto de bibliotecas C / C ++ utilizadas por varios componentes del sistema Android. Estas capacidades se exponen a los desarrolladores a través del marco de aplicación de Android.

    El marco de aplicaciones administrado parece estar en capas en la parte superior de estas bibliotecas. La página continúa listando las bibliotecas de C / C ++: biblioteca C estándar, medios, 3D, SQL lite y otros.

    Así que todo lo que necesita es una cadena de compilación que compile C / C ++ a la CPU adecuada (ARM, en el caso de la G1). Aquí hay algunas instrucciones breves sobre cómo hacer esto.

    Lo que no sé es dónde encontrar descripciones de las API que proporcionan estas bibliotecas. Supongo que puede haber archivos de encabezado enterrado en el SDK en algún lugar, pero la documentación puede ser incompleta / falta. ¡Pero creo que se puede hacer!

    Espero que sea útil. Para el registro, no he escrito ninguna aplicación androide nativa – sólo unos pocos manejados simples.

    Andy

    Puede utilizar nestedvm para traducir C (u otros lenguajes de GCC) en bytecode de Java, y utilizarlo como base de su puerto. Por ejemplo, ver el puerto Android de Simon Tathams portátil colección de rompecabezas .

    Espero que este método sea obsoleto por el NDK, pero puede que no lo esté si algunas redes o algo no permiten a las personas actualizar sus teléfonos.

    Google ya ha lanzado Google I / O 2011: Traer C y C ++ Games a la sesión de Android que está disponible en http://www.youtube.com/watch?v=5yorhsSPFG4

    Lo cual es bueno para entender el uso de NDK para escribir aplicaciones en c y c ++ para android.

    Si sólo desea cruzar la compilación de cualquier juego basado nativa de la consola y ejecutarlos en Android, a continuación, este artículo ha mostrado 3 métodos para el mismo.

    1: Compilación estática utilizando una cadena de herramientas independiente

    2: Recopilación cruzada usando la cadena de herramientas de Android NDK

    3: Recopilación cruzada usando el código fuente de AOSP

    Tal vez usted está buscando esto?

    http://www.mosync.com/

    Es una capa intermedia para el desarrollo de varias plataformas móviles utilizando c ++.

    Desde 2009 hay un desarrollo en este asunto.
    Necessitas – Qt (framework C ++) para Android
    Vídeo de inicio.

    Mirando esto parece que es posible:

    "El hecho es que el lenguaje Java es compatible no significa que usted no puede desarrollar aplicaciones en otros idiomas.Esto ha sido probado por muchos desarrolladores, hackers y expertos en desarrollo de aplicaciones para móviles.Los chicos de Elements Interactive BV, la empresa detrás de Edgelib Biblioteca, logró ejecutar aplicaciones nativas de C ++ en la plataforma Android, incluso que en este momento todavía hay muchos problemas en pantalla y sonido … etc. Esto incluye el juego S-Tris2 y una demostración de animación 3D de Edgelib ".

    Echa un vistazo a google ndk grupo parece prometedor, la primera versión de la NDK estará disponible en 1H2009.

    Actualización: Y es lanzado http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html

    No estoy seguro de que el NDK proporcione cobertura completa de la API oficial de Java.

    Desde http://developer.android.com/sdk/ndk/index.html#overview :

    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 de Dalvik.

    Puede descargar c4droid y luego instalar el complemento GCC e instalarlo en su SD. De la cáscara apenas atravieso al directorio donde está el binario de GCC y después lo llamo para hacer un ejecutable a bordo.

    Find / -name gcc

    /mnt/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/bin/arm-linux-androideabi-gcc

    Cat> test.c

    #include<stdio.h> int main(){ printf("hello arm!\n"); return 0; } 

    ./arm-linux-androideabi-gcc test.c -o prueba

    ./prueba

    Hola brazo

    No conozco un tutorial, pero una buena herramienta de desarrollo: Airplay SDK de Ideaworks Labs. (Recientemente marcado " Marmelade ") Usando C / C ++ puede crear aplicaciones para Windows Mobile, iPhones, Android. El único componente que no me gustó fue el compositor GUI – un buggy, pero siempre se puede sustituir con el Bloc de notas.

    Estos tres pasos son buenos para tener y almacenar en este post.

    1) Cómo portar código c nativo en android

    2) http://www.integratingstuff.com/2010/12/12/calling-native-c-code-through-jni-in-android-applications/

    3) http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/

    Los archivos nativos de C / c ++ libstdc ++. * De tu Ubuntu son binarios x86 (o x86_64), pero los dispositivos y emuladores Android son ARM. Por supuesto, esto no funcionará de todos modos, incluso si usted fijará soname correcto. Esta es una manera muy ingenua que no lleva a ninguna parte. Android tiene soporte muy limitado de C + + significa que no hay excepciones, la biblioteca estándar de C ++ (incluyendo STL) y RTTI. Si necesita esta funcionalidad, utilice mi distribución personalizada NDK de

    http://crystax.net/android/ndk.php – apoya las características completas de C ++ enumeradas arriba.

    ¿Por qué hay error: referencia indefinida al error de vínculo '__cxa_end_cleanup'. Android stlport

    hora. Porque no hay ningún vínculo a libstdc + +. R: Tan equivocado.

    Debido a que utiliza alguna biblioteca estática, es necesario vincular el libstdc completo + +. Una lata

    http://crystax.net/android/ndk.php aquí para descargar el paquete

    Fuentes \ cxx-stl \ gnu-libstdc + + \ libs \ armeabi directorio.

    Android en su propio soporte libstdc + + es limitado, debe estar enlazado a un completo libstdc + +. Un trabajo.

    Añadir archivo en Android.mk LOCAL_LDFLAGS = $ (LOCAL_PATH) / libs / libcurl.a \

      $ (LOCAL_PATH) / libs / liblua.a \ `$ (LOCAL_PATH) / libs / libstdc + +. A` 

    Y LOCAL_CPPFLAGS + =-lstdc + +-fexceptions pueden ser compilados

    Esta entrada en el blog puede ser un buen comienzo: http://benno.id.au/blog/2007/11/13/android-native-apps Desafortunadamente, muchas cosas importantes son "dejadas como un ejercicio para el lector".

    Hay un plan para permitir que las bibliotecas de C / C ++ en la próxima versión de SDK de Android (Codename Eclair?) Hasta la fecha, no es posible a través de Android Java SDK. Sin embargo, puede aprovechar el enorme proyecto de código abierto, rodar sus propias bibliotecas y, a continuación, flash de su propio dispositivo … pero cualquiera que quiera utilizar su biblioteca tendrá que flash de su costumbre construir así.

    Respuesta corta: No puedes.

    @ Backslash17: Mirando a través del artículo y el siguiente enlace con las instrucciones de instalación, toda la empresa obtuvo trabajo es lanzar un auto compilado ejecutable en el emulador, eludiendo el marco de android. Una vez que tenga el emulador que puede telnet y tener un shell de linux. Ejecutar un programa linux es trivial, por supuesto. Pero eso no funciona para los teléfonos sin jailbreak (también conocido como acceso root) y no se puede entregar en el mercado.

    A menos que Google abra otras oportunidades o alguien escriba un compilador personalizado que compile Lenguaje X en bytecode Dalvik (Dalvik es la máquina virtual que ejecuta programas de Android) no podrá escribir código nativo.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.