2010-02-20 16 views
24

estoy interesado en las siguientes características:¿Puedo hacer una aplicación en C++ bastante nativa con Android?

  1. Escribir una aplicación para Android Market que está escrito completamente en C++ (un puerto de producto existente en realidad).
  2. Utilice el rápido empuje de píxeles del búfer de pantalla (o más bien use OpenGL ES para esto).
  3. Capture la entrada del usuario y diríjalo al código C++.

¿Es legal escribir una aplicación para Market? ¿Es la política de mercado de alguna manera estricta para tales cosas?

Respuesta

0

http://developer.android.com/guide/basics/what-is-android.html

"El SDK de Android proporciona las herramientas y APIs necesarias para iniciar aplicaciones en la plataforma Android usando el lenguaje de programación Java en desarrollo."

http://arstechnica.com/open-source/news/2009/06/android-goes-beyond-java-gains-native-cc-dev-kit.ars

En general, no lo hace. Existe cierto soporte limitado de C++ a través de JNI, pero en su mayoría está destinado a complementar el código de Java, no a reemplazarlo. No hay soporte de marco/API (AFAIK) para C++, por lo que hacer esto no es realmente una opción.

+0

I cree que las API de OpenGL al menos están expuestas directamente en el nivel NDK, por ejemplo, para juegos de pantalla completa nativos completos definitivamente es una opción (y probablemente recomendada). –

8

Realmente no es mi taza de té, pero hay algo llamado Android NDK (Native Development Kit) para usar si quieres escribir tu programa en C. Sin embargo, no estoy seguro de cómo es el compilador de C++.

Hasta donde yo sé, su aplicación puede ser casi 100% código nativo, pero tenga en cuenta que al caminar de esa manera probablemente tendrá dificultades para soportar las diferentes CPU que hay en el hardware de Android. Si necesita iniciar 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 "Android NDK". This one is a very minimalistic Hello World. Obviamente, usted quiere algo mucho más que una biblioteca que devuelve una cadena a Java, pero es un buen comienzo y probablemente tendrá que hacer todas las cosas descritas. Haga una búsqueda usando 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 dentro de un año más o menos.

Supongo que el Android Developer site oficial de Google se mantendrá actualizado en nuevas versiones de la plataforma, tiene un enlace al NDK actual.

+0

¿Por qué el voto a favor? – Fredrik

+0

Si tuviera que adivinar, es porque sugirió a Gooling una cadena en lugar de proporcionar un enlace directo al proyecto. A veces la gente quiere ser exigente. +1 para el enlace que proporcionó, sin embargo. Es un recorrido bastante completo para configurar un entorno de desarrollo, no solo un poco de código. –

+0

Excepto que el enlace no es para NDK AFAICT. Es para escribir aplicaciones de consola, utilizando el compilador cruzado que es parte del proyecto de código abierto de Android. El término "NDK" ni siquiera aparece en la página, y la publicación se escribió antes de que se lanzara el NDK. – CommonsWare

1

No hay una solución nativa 100%, pero lo que creo que busca es la Android NDK (kit de desarrollo nativo)

De su sitio "Tenga en cuenta que el NDK no le permite desarrollar de sólo aplicaciones nativas .El tiempo de ejecución principal de Android sigue siendo la máquina virtual de Dalvik ".

Creo que le permite hacer llamadas a su propio código nativo de una aplicación Android

Yo personalmente nunca he utilizado para mis juegos, pero estoy seguro de que ayudaría en muchas cosas (como poder para administrar mi propia memoria y no tener "lag" para el recolector de basura)

15

A partir de NDK r5 con Android 2.3 (Gingerbread) esto es posible, aunque supongo que solo los dispositivos para admitir aplicaciones nativas deben tener Gingerbread en ellos.

De la muestra-actividad nativa:

El SDK de Android 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 Android y su código nativo , por lo que no tiene que subclasificarlo ni 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 .

+1

danos un ejemplo. Ver para creer :) –

+3

@Deo Checkout samples/native-activity/en el NDK. – tonylo

2

Con Gingerbread (Android 2.3) parece que puedes construir toda tu aplicación en C++.

cf:. http://phandroid.com/2011/01/11/android-developers-blog-awesome-ndk-leads-to-awesome-apps/

" Con la última versión de la NDK, R5, se han hecho muchos grandes mejoras para coincidir con el lanzamiento de pan de jengibre El 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 sin conocimiento de Java no tendrán que implementar una sola línea de ese código ... "

No se puede garantizar la veracidad de este blogger, sin embargo, de lo que he leído, parece que puede hacer esto

Cuestiones relacionadas