2011-07-12 11 views
59

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)?

+1

tratar este enlace: [¿qué es el NDK?] (Http://developer.android.com/sdk/ndk /overview.html) –

+1

posible duplicado de [Uso de Android NDK] (http://stackoverflow.com/questions/3068378/use-of-android-ndk) – Thilo

Respuesta

63

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.

+2

@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. –

+0

Entonces, si quiero usar OpenCV en Android, ¿es mejor usar la versión de C++? – user8663682

+0

@ 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. –

15

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.

Link-1

Link-2

Link-3

2

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.

Fuente: http://developer.android.com/sdk/ndk/index.html

6

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:

What is NDK?

When to Develop in Native Code

NDK Download

How to build NDK app

how to work with NDK

10 tips for Android NDK

41

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.

+0

Explicado bien. Gracias. –

1

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

+3

Este detalle ya está en la respuesta aceptada. ¿Cómo crees que debería ser una respuesta separada? –

+0

Tratando de anotar más, supongo :) – Dennis

1

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.

0

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

Cuestiones relacionadas