Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 03/05/14, 07:18:15
Avatar de rhada
rhada rhada no está en línea
Usuario novato en la web
Mensajes: 8
 
Fecha de registro: may 2014
Mensajes: 8
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Post Complejidad de las aplicaciones NDK

Hola tengo una duda sobre NDK.
En la página de Android se lee la siguiente advertencia:

"Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++."

Y mi pregunta es: ¿A qué se refiere exactamente con complejidad?
A mi se me ocurren 2 cosas:
1) Un mayor esfuerzo para el procesador y mayor demanda de RAM.
2) Dificultad en la escritura y mantenimiento del programa.

En concreto quiero saber si hay riesgos de "sobre-esfuerzo" o desgaste extra para el hardware.
Saludos desde Argentina y un Gracias anticipado.

P/D: La principal razón para usar NDK es adaptar una parte de un programa q ya estuve desarrollando en c++.
Además, no quiero aprender Java.
Responder Con Cita


  #2  
Viejo 03/05/14, 10:04:01
Avatar de ctkd17
ctkd17 ctkd17 no está en línea
Usuario poco activo
Mensajes: 37
 
Fecha de registro: feb 2012
Mensajes: 37
Modelo de smartphone: Sony xperia neo V
Versión de ROM: CROM kk v5.9 20140413
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Muy buenas,

Yo me imagino que la complegidad viene del NO uso de la JVM de Android. Android esta basado en esa JVM y todas las API's que se pueden usar terminan en la maquina virtual.

Si te pasas a NDK estarás programando directamente en el micro lo que conlleva a que tengas que tener en cuenta la gestión de memoria o cosas similares.

El NDK se usa para implementar funciones a bajo nivel pero en paralelo a la JVM de manera que se incremente la funcionalidad de Android. Realmente la idea es añadir librerias que luego uses en java.

Aqui te dejo una imagen de lo que me refiero:
http://3.bp.blogspot.com/-5olcmkhQge...uraAndroid.png
y aqui una explicación:
http://developing.frogtek.org/2011/1...o-ndk-frogtek
Responder Con Cita
  #3  
Viejo 03/05/14, 10:04:06
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Se refiere al 2, dificultad de escritura y mantenimiento del programa.

Técnicamente es posible hacer una aplicación 100% en NDK, sobre todo desde que se introdujo el NativeActivity en Gingerbread, pero tal y como dice Google no es nada recomendable. En el caso de que quieras hacerlo espero que tengas muy controlado el OpenGL 2.0, porque es la única forma de poder hacer una aplicación 100% en C++.
Responder Con Cita
  #4  
Viejo 17/05/14, 05:01:54
Avatar de rhada
rhada rhada no está en línea
Usuario novato en la web
Mensajes: 8
 
Fecha de registro: may 2014
Mensajes: 8
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchicimas Gracias x las aclaraciones!! ctkd17 y KriogeN
La verdad m sorprendió la rapidez
Voy a leer con atención esos enlaces y volveré... a comentar
Saludos!!!
Responder Con Cita
  #5  
Viejo 25/05/14, 09:19:05
Avatar de rhada
rhada rhada no está en línea
Usuario novato en la web
Mensajes: 8
 
Fecha de registro: may 2014
Mensajes: 8
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
ctkd17:
Si ya había entrado a ese blog. También hay una explicación detallada del uso de NDK en:
http://universo.emergya.es/espacios/...ciones-android
Saludos y gracias.
Responder Con Cita
  #6  
Viejo 25/05/14, 09:20:07
Avatar de rhada
rhada rhada no está en línea
Usuario novato en la web
Mensajes: 8
 
Fecha de registro: may 2014
Mensajes: 8
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Kriogen:
Me decis q la segunda, bue entonces m quedo tranquilo, porque no peligra el hardware. Mi pregunta iba x ahí: el sentido de la palabra "complexity" en la advertencia ...el único riesgo, entonces, es q yo quede rendido y frustrado si el proyecto excede mis capacidades... Jej aunque, de todas formas me imagino q en el peor de los casos una mala implementación provocará inestabilidad y reinicios inesperados. No es para andar jugando tampoco :P eso está claro. Saludos y gracias.

P/D: te iba a hacer una pregunta sobre sdl, pero para mantener el orden mejor hago otra consulta
Responder Con Cita
  #7  
Viejo 25/05/14, 09:42:29
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Técnicamente requiere muchos más recursos una aplicación en Java que en C++, de hecho, cuando una aplicación tiene que hacer una tarea con un consumo muy alto (por ejemplo los motores 3D de los juegos, o aplicar filtros gráficos a una imagen directamente desde la cámara, o comprimir vídeo, etc) se hace siempre en C++, porque en Java funciona lento y muy inestable, terminando dando en el 90% de las ocasiones el famosísimo OutOfMemoryError, cosa que con C++ no pasa.

Pero como ya te he dicho antes, no es recomendable hacer la aplicación 100% en NDK, deberías hacerla en Java y las partes "gordas" programarlas mediante funciones en C++, si es que realmente necesitas algo que requiera tanta potencia, que salvo los casos que te he puesto anteriormente pocas cosas necesitan del NDK.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 03:35:53 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007