Quiero saber sobre NDK. ¿Qué es el Android NDK (kit de desarrollo nativo)? ¿Cómo puede uno usarlo? ¿Por qué debería uno usarlo?¿Qué es el Kit de desarrollo nativo de Android (NDK)?
Respuesta
El NDK (Native Development Kit) es una herramienta que permite programar en C/C++ para dispositivos Android. Está pensado para integrarse con el SDK (se describe como una "herramienta complementaria") y se usa solo para partes de un proyecto que son críticas para el rendimiento. Consulte here para obtener más información.
@YoushaAleayoub - En un dispositivo Android, código escrito en Java se ejecuta en Java Virtual Machine, un programa suministrado por el sistema que interpreta códigos de bytes de Java. El código que está escrito en C/C++ se compila en las instrucciones de la máquina que ejecuta directamente la CPU. Este último código se llama código "nativo" porque es nativo de la CPU. Tenga en cuenta que diferentes CPU requieren diferentes instrucciones de código nativo. Por lo tanto, cuando utiliza el NDK tiene la opción de generar código para un solo tipo de hardware o para una amplia gama de CPU, que terminan empaquetados en el archivo .apk de su aplicación. –
Entonces, si quiero usar OpenCV en Android, ¿es mejor usar la versión de C++? – user8663682
@ user8663682 - Recomiendo usar la [versión de Android] (https://opencv.org/platforms/android/). Aún requiere el uso de NDK, pero ya se ha hecho todo el trabajo de exponer las capacidades a las aplicaciones de Android. –
El Android NDK es una herramienta complementaria que se utiliza solo junto con Android SDK, que permite a los desarrolladores de aplicaciones crear porciones de rendimiento crítico de sus aplicaciones mediante el uso de código nativo (C/C++).
Esto proporciona beneficios en forma de reutilización del código existente y mayor velocidad.
Por favor vaya a través de los enlaces a continuación.
El Android NDK es un conjunto de herramientas que permite incorporar componentes que uso de código nativo en sus aplicaciones para Android.
Las aplicaciones de Android se ejecutan en la máquina virtual Dalvik. El NDK permite implementar partes de sus aplicaciones usando lenguajes de código nativo como C y C++. Esto puede proporcionar beneficios a ciertas clases de aplicaciones , en forma de reutilización del código existente y en el caso de , algunos casos aumentan la velocidad.
Fuente: http://developer.android.com/sdk/ndk/overview.html
El NDK Android es una herramienta complementaria para el SDK de Android que le permite porciones acumulación rendimiento críticos de sus aplicaciones en código nativo. Es proporciona encabezados y bibliotecas que le permiten crear actividades, manejar la entrada del usuario, usar sensores de hardware, acceder a los recursos de la aplicación, y más, al programar en C o C++. Si escribe código nativo, las aplicaciones aún están empaquetadas en un archivo .apk y todavía se ejecutan dentro de una máquina virtual en el dispositivo. El modelo de aplicación fundamental de Android no cambia.
El Android NDK es una herramienta complementaria a la SDK de Android que le permite construir porciones de rendimiento crítico de sus aplicaciones en código nativo. Proporciona encabezados y bibliotecas que le permiten crear actividades, manejar la entrada del usuario, usar sensores de hardware, acceder a recursos de aplicaciones y más, al programar en C o C++. Si escribe código nativo, sus aplicaciones aún están empaquetadas en un archivo .apk y aún se ejecutan dentro de una máquina virtual en el dispositivo. El modelo de aplicación de Android fundamental no cambia.
Los siguientes enlaces también responde a su pregunta:
NDK puede mejorar el rendimiento de las aplicaciones. Esto suele ser cierto para muchas aplicaciones enlazadas al procesador . Muchas aplicaciones multimedia y videojuegos usan el código nativo para tareas intensivas del procesador. Las mejoras de rendimiento pueden provenir de tres fuentes. En primer lugar, el código nativo se compila en un código binario y se ejecuta directamente en el sistema operativo, mientras que el código Java se traduce en Java byte-code e interpretado por Dalvik Virtual Machine (VM). En Android 2.2 o superior, un compilador Just-In-Time (JIT) se agrega a Dalvik VM para analizar y optimizar el código de bytes Java mientras el programa se está ejecutando (por ejemplo, JIT puede compilar una parte del byte-code a código binario antes de su ejecución). Pero en muchos casos, el código nativo aún se ejecuta más rápido que el código Java.
El código de Java lo ejecuta Dalvik VM en Android. Dalvik VM está especialmente diseñado para sistemas con recursos de hardware restringidos (espacio de memoria, velocidad del procesador , etc.).
La segunda fuente de mejoras en el rendimiento en NDK es que el código nativo permite los desarrolladores hacer uso de algunas características del procesador que no son accesibles en el Android SDK, tales como neón, un de instrucción única de datos múltiples (SIMD) tecnología, permitiendo que varios elementos de datos se procesen en paralelo. Un ejemplo de tarea de codificación particular es la conversión de color para un fotograma de video o una foto. Supongamos que debemos convertir una foto de 1920x1280 píxeles desde el espacio de color RGB al espacio de color YCbCr. El enfoque ingenuo es aplicar una fórmula de conversión a cada píxel (es decir, más de dos millones de píxeles). Con NEON, podemos procesar múltiples píxeles a la vez para reducir el tiempo de procesamiento.
El tercer aspecto es que podemos optimizar el código crítico en un nivel de ensamblaje, que es una práctica común en el desarrollo de software de escritorio.
Desventaja
NDK no puede acceder a una gran cantidad de APIs disponibles en el SDK de Android directamente, y el desarrollo de NDK siempre introducir una complejidad adicional en su aplicación.
Explicado bien. Gracias. –
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++ .... Pago y envío este https://developer.android.com/tools/sdk/ndk/index.html
Este detalle ya está en la respuesta aceptada. ¿Cómo crees que debería ser una respuesta separada? –
Tratando de anotar más, supongo :) – Dennis
NDK es sólo un conjunto de herramientas que le permite escribir Códigos C/C++ para su aplicación. Por ejemplo, suponga que desea agregar una función/rendimiento crítico a su aplicación y desea escribirla en C/C++, eclipse o cualquier otro IDE no le permitirá escribir su C/C++ y en ese caso, debe usar NDK e integrarlo en su aplicación.
Android NDK (kit de desarrollo nativo)
Android kit de desarrollo nativo (NDK) es a los desarrolladores escribir código en C/C++ que compila a código nativo
¿Por qué una utilización ¿eso?
El código fuente se ha compilado en código máquina para la CPU (y no en un lenguaje intermedio, al igual que con Java) a continuación, los desarrolladores son capaces de obtener el mejor rendimiento
¿Cómo se puede usar?
Aquí mejores tutoriales
https://developer.android.com/ndk/index.html
https://www.androidauthority.com/android-ndk-everything-need-know-677642/
https://www.ntu.edu.sg/home/ehchua/programming/android/Android_NDK.html
- 1. Eclipse: ¿Dónde poner referencia NDK? ¿Falta el desarrollo nativo?
- 2. Desarrollo Android NDK
- 3. Android nativo NDK OpenGL ES: API no implementada
- 4. Android NDK - usando AssetManager en el código nativo
- 5. Valores de registro de variables en Android ndk nativo
- 6. Uso de Android NDK
- 7. Android - ¿Cómo habilitar CheckJni para el desarrollo de NDK?
- 8. Android: el proceso nativo provoca el desbordamiento de ReferenceTable después de un tiempo (android-ndk)
- 9. Android NDK con Visual Studio
- 10. Android NDK limitaciones?
- 11. ¿Qué es el código nativo?
- 12. Android NDK Mutex
- 13. ¿Qué es el "JavaScript nativo"?
- 14. Android Assets and NDK
- 15. Android - tutoriales para OpenGL ES 2.0 utilizando el NDK?
- 16. Instalación del kit de desarrollo FastCGI
- 17. ¿Qué teléfono Android usar para el desarrollo ...?
- 18. Dónde exactamente se ejecuta el código nativo NDK
- 19. Desarrollo nativo de Android/iOS vs Marmalade SDK
- 20. android ndk multitouch?
- 21. Android NDK: cómo limpiar el código nativo después de reiniciar la actividad?
- 22. Android: MediaRecorder @ Código nativo
- 23. Integración de ndk-gdb de android ndk con emacs?
- 24. usando librerías estáticas prediseñadas para desarrollo Android NDK
- 25. Uso de socket() en Android NDK
- 26. Requisitos para obtener un Kit de desarrollo de Kindle
- 27. Código nativo de modificación automática en Android
- 28. Es "std :: cout" utilizable en Android-ndk
- 29. Android NDK temporizadores
- 30. ¿Qué software se recomienda para la autenticación con el kit de desarrollo web Happstack?
tratar este enlace: [¿qué es el NDK?] (Http://developer.android.com/sdk/ndk /overview.html) –
posible duplicado de [Uso de Android NDK] (http://stackoverflow.com/questions/3068378/use-of-android-ndk) – Thilo