¿Puedo desarrollar aplicaciones de Android usando C ++?

Como todo en software, “depende”. Aquí, en Quora, parece que la mayoría de las respuestas se basan en el pasado y parecen muy “centradas en la web” en lugar de estar orientadas al rendimiento y ser las primeras en dispositivos móviles. Soy de la opinión de que no hay idiomas malos o buenos, solo hay herramientas para trabajos específicos. Incluso para Bots, si necesita controlar el hardware, por ejemplo, C ++ es un buen camino a seguir. Si el Bot solo está basado en la web, puede seguir adelante y usar Javascript o PHP.

Las respuestas anteriores aquí parecen aplicarse a las aplicaciones de consumo. C ++ puede ser un buen candidato para aplicaciones empresariales. Incluso en casos de uso del consumidor, Telegram, Dropbox y Facebook usan C ++

En el caso específico de usar algo como Erlang como back-end y las API HTTPS REST que admiten los protocolos necesarios para servir a la empresa, entonces C ++ es un buen camino a seguir. La mayoría de los desarrolladores móviles NO saben cómo (o no están interesados ​​en aprender) cómo codificar Objective-C, Swift / iOS o Java / Android GUI a las API REST HTTPS para un lenguaje de fondo rápido y moderno seleccionado para persistencia y concurrencia como como Erlang o Elixir para entregar un producto móvil de alto rendimiento a la empresa.

C ++ puede contribuir a una base de código singular para la capa de red y transporte. Este tipo de decisión técnica puede ser impulsada por su estrategia API (o la falta de una estrategia API puede conducir a la falta de opciones).

La interfaz de usuario aún debe codificarse en el idioma nativo para las aplicaciones nativas móviles. es decir, Java en Android y Swift para iOS. En el consumidor, es posible que pueda salirse con la suya con aplicaciones híbridas que podrían ser “aplicaciones web” en dispositivos móviles para Android.

Esto permite que todas las plataformas (iOS, Android y aplicaciones de escritorio) sean compatibles con una base de código singular, por lo que cuando sea necesario realizar un cambio de función, C ++ puede procesar los cambios del servidor y reflejarlo en las 3 plataformas, dejando solo la GUI para cambiarse de forma específica y exclusiva para cada dispositivo (iOS, Android y web) para mostrar al usuario el cambio “visible”. Este enfoque se ocupa de los niveles de red y transporte de todas las aplicaciones, lo que hace que los clientes nunca dependan directamente del servidor. Esto es importante si tiene una base de clientes difícil que exige cosas como aplicaciones de “latencia cero” y “nunca fuera de línea”. Un beneficio adicional es que una base de código singular es más fácil, más rápida de depurar y más fácil de mantener, si le importan esas cosas.

Prueba c4droid. Es una aplicación de Android que permite la programación en dispositivos móviles y también convierte su código fuente en c / c ++ a la aplicación de Android.
Pero al ser un principiante en la programación, no puedo decirle sobre la idoneidad o limitación de c / c ++ para el desarrollo de aplicaciones de Android.
Pero el método anterior funciona muy bien para hacer pequeños programas para la aplicación de Android.
PD. C4droid no funciona en Asus zenfone 5 puede deberse al hecho de que c4droid no es compatible con la arquitectura Intel, ya que cuando lo revisé en mi PC usando bluestacks, no funcionaba o mejor decir que no estaba compilando el programa.
Y las aplicaciones formadas en jellybean son compatibles con KitKat pero no en lollipop, pero las aplicaciones formadas en lollipop son compatibles tanto en jellybean como en KitKat con c4droid. No lo he comprobado en otras versiones de Android.
Espero eso ayude

La respuesta de disparo es: Sí, puedes.

Respuesta larga: puede, pero el NDK de Android (Conceptos | Desarrolladores de Android) generalmente se usa solo para escribir algunas partes de su código en C ++, de modo que pueda optimizarse para velocidad / recursos. Dicho esto, aquí hay una manera de escribir actividades con NDK: NativeActivity | Desarrolladores de Android, lo cual es útil si estás creando un juego (supongo que eso es lo que quieres construir).

O si simplemente no le gusta Java, hay una mejor alternativa con un soporte realmente excelente en Android Studio 2.2+. Ese es el idioma de Kotlin: puedes leer aquí al respecto, es una excelente manera de hacerlo:

Kotlin para Android: una introducción

Si estás creando un juego, por otro lado, puedes considerar usar Unity. Se puede escribir en C ++ AFAIK. Echa un vistazo allí también.

Y al final, puedes leer este hilo sobre por qué no deberías escribir en C ++ con Android NDK, solo porque te gusta C ++ sobre Java:

¿Por qué no debería escribirse una aplicación de Android en C / C ++ porque “simplemente prefiere programar en C / C ++”?

¡Espero que esto ayude!

Usted puede. Pero probablemente no quieras.

Los juegos son realmente la única razón racional para usar C ++ para el desarrollo móvil multiplataforma. Esto se debe a que OpenGL es multiplataforma y puedes escribir la mayor parte de tu juego usando OpenGL para renderizar.

Pero el desarrollo general de aplicaciones necesita widgets de interfaz de usuario. Qt sería una opción:

http://doc.qt.io/qt-5/android-su
http://doc.qt.io/qt-5/ios-suppor

Pero Qt necesita una licencia comercial para distribuirla legalmente en iOS, a menos que desee proporcionar archivos de objetos que permitan a los usuarios reconstruir su aplicación (iOS prohíbe el enlace dinámico; LGPL requiere un enlace dinámico). Y la licencia comercial es de $ 350 / mes, lo cual es un poco caro.

Por lo tanto, probablemente esté mejor con otros entornos de desarrollo multiplataforma. Xamarin, React Native y NativeScript son tres que parecen sólidos.

Sí, puedes construir pero no es una buena idea.

Si desea hacer una codificación personalizada, debe aprender idiomas como Objective-C o Swift para desarrollar la aplicación iOS. O de otra manera es la plataforma de desarrollo de aplicaciones móviles. Con la ayuda de las herramientas de desarrollo de aplicaciones, puede desarrollar aplicaciones con funciones de arrastrar y soltar sin escribir una sola línea de código. Soy un desarrollador de aplicaciones iOS, he probado la mayoría de las plataformas de desarrollo de aplicaciones móviles. He desarrollado más de 50 aplicaciones hasta hoy con la ayuda de Phonegap, Telerik, ConfigureIT, etc. Se están ejecutando con éxito en la tienda de aplicaciones.

Según mi experiencia en este campo, recomiendo a los desarrolladores y principiantes que utilicen una plataforma de desarrollo de aplicaciones móviles como Configure.IT, ya que proporciona codificación automática, función de vista previa de la aplicación, conexión directa a la API y muchas más funciones. Estas cosas ahorran mucho más tiempo de desarrollo y proporcionan una aplicación rápida y bien diseñada en mucho menos tiempo.

El principal beneficio de esta herramienta es que es una plataforma basada en la web, por lo que no necesita comprar un sistema Mac, puede crear una aplicación desde cualquier lugar y desde cualquier sistema.

Espero que mi respuesta pueda ayudarte.

Puede desarrollar aplicaciones de Android utilizando C ++ utilizando el conjunto de herramientas NDK proporcionado por Google.

Android NDK | Desarrolladores de Android

Sin embargo, lo desaconsejo y recomiendo que utilice el lenguaje de programación preferido, Java.

La razón es que su aplicación tendrá un impacto en el rendimiento al no estar desarrollada en su idioma nativo.

También tendrá más dificultades para mantener y depurar su código, ya que el NDK no es el método que utilizan la mayoría de los demás. Por lo tanto, encontrar respuestas a los problemas que puedan surgir será un desafío.

Finalmente, no tendrá acceso al conjunto completo de apis de Android, ya que todas están escritas para Java y solo algunas para C ++.

Sí tu puedes.
Árbitro:
1. Android NDK | Desarrolladores de Android
2. Qt para Android | QtDoc 5.3 | Documentación | Proyecto Qt

Usted puede,

-Windows UWP Platform Crea tu primera aplicación

Android NDK para Android | Desarrolladores de Android

-iOS Introducción a C ++ para desarrolladores de iOS: Parte 1

Sin embargo, no se recomienda, ya que estaría trabajando en muchos aspectos del sistema operativo que, como desarrollador, no debería porque como desarrollador debería preocuparse menos por la administración de recursos del sistema operativo, pero más en su lógica comercial central,

Como el código no se administraría, lo que simplemente significa que debe administrar las pérdidas de memoria, la recolección de elementos no utilizados, la optimización de la memoria y los sdks API no administrados.

Usted puede.

Para Android, está el NDK de Android | Desarrolladores de Android.

No estoy seguro acerca de iOS, pero esta página tiene algunos enlaces que utilizan C ++ en aplicaciones iOS y Mac OS X.

Sí, con la ayuda de NativeActivity. Deberá declarar uno de estos en su manifiesto, decirle cuál es su biblioteca nativa y organizará la invocación de su código nativo en respuesta a varias devoluciones de llamada. Muchos juegos se implementan de esta manera.

Iba a preguntar lo mismo 😛
Corrígeme si me equivoco, pero por lo que obtuve leyendo en muchos lugares en línea …

La codificación en C ++ para Android era principalmente para el motor de una aplicación de Android, por ejemplo, un motor de aplicación de juegos usaría el código C ++ para los cálculos. Y sería más difícil crear elementos visuales usando C ++ en comparación con Java. Además, dado que muchas bibliotecas predefinidas de Android están escritas en Java. Java es más preferible.

El NDK es un conjunto de herramientas que permite el desarrollo de aplicaciones de Android usando C, C ++ y otros lenguajes de código nativo, compilando código en aplicaciones que pueden ejecutarse en dispositivos Android. Por lo general, no se recomienda usar el NDK porque las aplicaciones pueden experimentar un impacto en el rendimiento, sufrir problemas de compatibilidad, ser más difíciles de depurar y reducir la flexibilidad. Lo que garantiza el NDK es un aumento en la complejidad de la aplicación y la conectividad de la interfaz con el código nativo.

Las declaraciones anteriores pueden sonar desalentadoras, pero existen buenos casos de uso para el NDK. Esto incluye aplicaciones computacionalmente intensivas como juegos, motores de juegos, procesamiento de señales y simulaciones físicas. Otro buen caso de uso es reutilizar bibliotecas existentes escritas en C / C ++. Esto significa que puede aprovechar una gran colección de bibliotecas de códigos nativos disponibles en línea.

Asegúrese de equilibrar los pros y los contras de usar el NDK antes de decidir si vale la pena la complejidad adicional. Nunca debe basar su decisión en su idioma preferido, incluso si es un experto en C o C ++. Lee mas

No.Android usa Java (aunque Oracle ha estado luchando con Google por usar sus fuentes de forma gratuita) como lenguaje de programación central, HTML, CSS, JS para salida y visualización web y Linux como Kernal.
Sin embargo, todo el lenguaje de programación tiene las mismas expresiones lógicas y solo varía la sintaxis.
Diga: Queremos imprimir Hola.
Así es como se ve:

Java:
System.out.print (“\” Hola \ “”);

PHP:
echo “Hola”;

C ++:
cout << "Hola";

Entonces, si conoce C ++ (o cualquier lenguaje de programación), entonces no es un gran problema escribir una aplicación de Android.
Simplemente aprenda la sintaxis y estará listo para comenzar.

Vea esto, un sitio indio muy popular: Tutorial de Android
para aprender codificación en Android Studio.

Espero que sea útil tener una idea para algunos principiantes aquí.

¡Aclamaciones!
Geeky Ashim

Sí, pero no es una buena idea en la mayoría de los casos (excepto que estás haciendo juegos).

Android: Android NDK | Desarrolladores de Android
WP8: Comenzar a desarrollar para Windows Phone 8

Si hace esta pregunta para evitar aprender un nuevo idioma, entonces hay un problema mayor. 🙂

Bueno, la plataforma Android requiere que uno conozca Java ya que el SDK de Google está escrito en Java.

Aunque sí le permite incluir c ++ en su código para la optimización, no puede depender completamente de c ++ para crear su aplicación

Otra alternativa es usar python para crear aplicaciones.

echa un vistazo a kivy framework para más detalles.

feliz codificación 🙂

Sí, pero no se recomienda para aplicaciones normales, pero para algunos que usan mucha CPU, puede usar NDK y escribir su código en C, C ++, pero escribir una aplicación en C y C ++ lleva más tiempo que escribirlo en Java como se dijo en Android NDK | Desarrolladores de Android

El NDK es un conjunto de herramientas que le permite implementar partes de su aplicación utilizando lenguajes de código nativo como C y C ++. Por lo general, los buenos casos de uso para el NDK son aplicaciones intensivas en CPU, como motores de juegos, procesamiento de señales y simulación física.

Sí tu puedes. Tanto Android como iOS admiten aplicaciones de código de máquina nativas que se pueden crear en c ++. En muchos, si no en la mayoría de los casos, no será la forma más rápida de desarrollar ni la forma más compacta ni la más eficiente de hacer las cosas.

Consulte aquí el desarrollo multiplataforma de C ++ con Microsoft C ++:

Visual C ++ para desarrollo móvil multiplataforma

Para agregar a las otras respuestas, Objective-C de iOS puede vincularse con C ++. Puede usar C ++ para clases autónomas y crear clases “Objective-C ++” que puedan tender un puente entre C ++ y Objective-C (que necesitará para acceder a los servicios del sistema operativo). Simplemente use “.mm” como su extensión de nombre de archivo en lugar de “.m” o “.cpp” para obtener este modo mixto.

Solo tenga en cuenta que XCode cae un poco en cualquier cosa que no sea Objective-C o Swift. Por ejemplo, las características de refactorización no funcionan si el proyecto contiene C ++ u Obejctive-C ++.

Sí. Android NDK te permite hacer eso.

Android NDK | Desarrolladores de Android

Pero, Java es el lenguaje preferido para el desarrollo de Android y debería preferir usarlo.

Sí, puedes crear casi cualquier cosa con C ++