Programación Cygwin
La plataforma Android ha soportado el desarrollo de C y C++ desde su nacimiento. Como todos sabemos, el SDK de Android se implementa en base a Java, lo que significa que las aplicaciones de terceros desarrolladas en base al SDK de Android deben utilizar el lenguaje Java. Pero esto no significa que "las aplicaciones de terceros sólo puedan utilizar Java". Cuando se lanzó por primera vez el SDK de Android, Google afirmó que su máquina virtual Dalvik admitía el modo de programación JNI, es decir, las aplicaciones de terceros podían llamar a sus propias bibliotecas dinámicas C a través de JNI, es decir, el modo de programación "Java+C" podía siempre se implementará en la plataforma Android.
Sin embargo, Google también afirmó que el uso de la programación SDK nativa tiene algunas desventajas en comparación con la máquina virtual Dalvik, y no hay ayuda de JNI en la documentación del SDK de Android. Incluso si los desarrolladores de aplicaciones de terceros han completado su propio desarrollo de biblioteca de enlaces dinámicos en C utilizando JNI, ¿cómo se puede empaquetar en un apk y publicarlo junto con la aplicación? También hay obstáculos técnicos. Por ejemplo, el programa es complejo, la compatibilidad es difícil de garantizar y no se puede acceder al marco.
La API y la depuración son más difíciles. Los desarrolladores deben utilizarlo a su propia discreción.
Así nació NDK. El nombre completo de NDK es Native Development Kit.
Con el lanzamiento de NDK, el modelo de desarrollo "Java + C" finalmente se ha vuelto oficial y se ha convertido en un modelo de desarrollo con soporte oficial. NDK será el comienzo de la plataforma Android que soportará el desarrollo en C.
En segundo lugar, ¿por qué utilizar NDK?
Protección mediante código. Debido a que el código de la capa Java de apk es fácil de descompilar, es más difícil descompilar la biblioteca C/C++.
2. Las bibliotecas de código abierto existentes se pueden utilizar fácilmente. La mayoría de las bibliotecas de código abierto existentes están escritas en código C/C++.
3. Mejorar la eficiencia de ejecución del programa. Será necesario desarrollar una lógica de aplicación de alto rendimiento en C para mejorar la eficiencia de ejecución de la aplicación.
4. Fácil de trasplantar. Las bibliotecas escritas en C/C++ se pueden reutilizar fácilmente en otras plataformas integradas.
Tres. Introducción a NDK
1. NDK es una colección de herramientas.
NDK proporciona una serie de herramientas para ayudar a los desarrolladores a desarrollar rápidamente bibliotecas dinámicas C (o C++) y puede empaquetar automáticamente aplicaciones SO y Java en apk. Estas herramientas son de gran ayuda para los desarrolladores.
NDK integra un compilador cruzado y proporciona los archivos mk correspondientes para aislar diferencias en CPU, plataforma, ABI, etc. Los desarrolladores solo necesitan modificar el archivo mk (señalando "qué archivos deben compilarse" y "requisitos de funciones de compilación", etc.) para crearlo. ).
NDK puede empaquetar automáticamente aplicaciones Java y So, lo que reduce en gran medida el trabajo de empaquetado de los desarrolladores.
2. NDK proporciona declaraciones de archivos de encabezado API estables y limitadas.
Google afirma claramente que la API es estable y admitirá de forma estable la API publicada actualmente en todas las versiones posteriores. A juzgar por esta versión del NDK, las funciones admitidas por estas API son muy limitadas, incluidas: biblioteca estándar C (libc), biblioteca matemática estándar (libm), biblioteca de compresión (libz) y biblioteca de registro (liblog).
Cuarto, construcción del entorno de desarrollo NDK
1. Descargue e instale el NDK de Android.
Dirección:/sdk/ndk/index.html
2. Descargue e instale cygwin
Debido a que NDK debe usar make y gcc al compilar el código, entonces A Primero se debe construir el entorno Linux. Cygwin es un entorno de simulación Unix que se ejecuta en la plataforma Windows. Es muy útil para aprender el entorno operativo Unix/Linux o migrar aplicaciones de Unix a Windows. A través de él, puede utilizar NDK para compilar código C y C++ sin instalar Linux. Dirección de descarga:
1) Luego haga doble clic para ejecutar. Después de ejecutarlo, verá la interfaz del asistente de instalación.
2) Haga clic en "Siguiente" para permitirle elegir el método de instalación:
Instalar desde
Internet: descargue directamente desde Internet e instálelo inmediatamente (después de Una vez completada la instalación, el archivo de instalación descargado no se eliminará y se conservará hasta la siguiente instalación).
Descargar sin instalación: Descargue solo el archivo de instalación localmente y no lo instale temporalmente.
Instalar desde el directorio local: instale directamente desde el directorio local que contiene los archivos de instalación sin descargar los archivos de instalación.
3) Seleccione el primer elemento y haga clic en Siguiente.
4) Seleccione el directorio a instalar. Tenga en cuenta que es mejor no colocarlo en un directorio con caracteres y espacios chinos, ya que esto puede causar problemas de instalación. No es necesario cambiar otras opciones y luego haga clic en Siguiente:
5) El paso anterior es seleccionar el directorio donde está instalado cygwin. Esto es para seleccionar el directorio donde descarga el paquete de instalación. El directorio predeterminado es el directorio donde se ejecuta setup.exe. Simplemente haz clic en Siguiente:
6) En este punto, * * * tienes tres opciones de conexión:
Conexión directa: Conexión directa.
Usar la configuración de IE5: utilice la configuración de los parámetros de conexión de IE para conectarse.
Usar proxy HTTP/FTP: Utilice una conexión de servidor proxy HTTP o FTP (requiere dirección del servidor y número de puerto).
Los usuarios pueden elegir según la situación real de su conexión de red. En circunstancias normales se elige la primera opción que es el modo de conexión directa. Luego haga clic en "Siguiente".
7) Esto es para seleccionar el sitio que desea descargar y luego hacer clic en Siguiente.
8) La lista de paquetes de instalación se descargará y cargará.
9) Puede ingresar el nombre del paquete que desea descargar en la búsqueda y puede filtrar rápidamente los paquetes que desea descargar. Los cuatro botones de opción se utilizan para seleccionar el estilo del árbol a continuación. El valor predeterminado está bien, no lo mueva. La vista predeterminada es la categoría. Se recomienda cambiarla para mostrar todos los paquetes y verificar nuevamente. Algunos paquetes guardados están ocultos. La casilla de verificación en la esquina inferior izquierda indica si se deben ocultar los paquetes caducados. Por defecto, no está marcado. Comencemos a descargar los paquetes que queremos instalar. Para evitar todas las descargas, los siguientes son los paquetes necesarios para el desarrollo futuro de NDK: autoconf2.1, automake1.10, binutils, gcc-core, gcc-
G++, gcc4-core, gcc4-g++ , gdb, pcre , pcre-devel, gawk, make***12 paquete.
10) Luego comience a seleccionar e instalar estos paquetes. Haga clic en Omitir para convertirlo al formato de versión digital. Asegúrese de que el elemento Bin se convierta en una cruz y que el elemento Src sea el código fuente. No es necesario seleccionar esto.
11) Probemos si cygwin está instalado.
Ejecute cygwin e ingrese: cygcheck -c en la ventana emergente de línea de comando.
El comando cygwin imprimirá la versión actual y el estado de ejecución de Cygwin. Si el estado es correcto, cygwin se ejecuta normalmente.
Luego ingrese gcc -version, g++-version, make -version, gdb en secuencia.
-Versión Beta. Si la información de la versión y parte de la información de descripción se imprimen al mismo tiempo, ¡la instalación de cygwin se realizó correctamente!
3. Configurar las variables de entorno del NDK
A. Primero busque el directorio de instalación de cygwin y busque un directorio de inicio. archivo bash_profile, el mío es: e:\Cygwin\home\administrator\. bash_profile, (nota: cuando lo instalé, no había nada en mi carpeta de inicio. Lo solucioné.
Solución: primero abra las variables de entorno, elimine la variable INICIO en las variables de usuario, cree una carpeta llamada Administrador (nombre de usuario ) en la carpeta E:\cygwin\home y luego copie e:\Cygwin\etc\skel\bash_profile a esta carpeta).
B. Abra el archivo bash_profile y agregue ndk =/cyg drive//<robot
Directorio Ndk>Por ejemplo:
NDK=/cygdrive/ e /android-ndk-r5
Exportar NDK
El nombre NDK se eligió casualmente. Para uso futuro, elija un nombre corto y guárdelo.
C.Abre cygwin e ingresa al CD.
$NDK, si se genera la información de /cygdrive/e/android-ndk-r5 configurado anteriormente, significa que la variable de entorno se configuró correctamente.
4. Compile el programa con NDK
A. Ahora compilaremos un programa simple con el ndk instalado. Elegimos el ejemplo hello-jni que viene con el NDK, el mío está ubicado en E:\Android-NDK-R5\samples\hello-JNI (depende de su ubicación de instalación específica).
B. Ejecute cygwin e ingrese el comando cd.
/cyg drive/e/Android-NDK-R5/samples/hello-JNI, ingrese al directorio e:\Android-NDK-R5\samples\hello-JNI.
C. Introduzca $NDK/ndk-build. Después de una ejecución exitosa, generará automáticamente un directorio libs y lo compilará. Así que archívalo. ($NDK es la variable de entorno que configuramos antes de llamar, NDK-build es el compilador que llama a ndk).
D. En este momento, vaya al directorio libs de hello-jni para ver si se ha generado. Así que archívalo. Si es así, ¡tu ndk está funcionando normalmente!
5. Integrar el entorno de desarrollo c/c++ en eclipse.
A. Instale el complemento del entorno C/C++ de Eclipse: CDT. Elija la instalación en línea aquí. Primero inicie sesión en http://www.eclipse.org/cdt/downloads.php y busque la dirección de instalación en línea del complemento CDT correspondiente a su versión de Eclipse.
B. Luego haga clic en el menú Ayuda para encontrar el menú Instalar nuevo software.
C. Haga clic en el botón Agregar, complete la dirección y, cuando aparezca la lista de complementos, seleccione Seleccionar todo y luego seleccione Siguiente para completar la instalación.
D. Una vez completada la instalación, haga clic derecho para crear un nuevo proyecto en eclispe. Si aparece un proyecto c/c++, significa que su complemento CDT se instaló correctamente.