Android SDK

De Wikipedia, la enciclopedia libre
Android SDK
Información general
Tipo de programa EDI, KDS
Desarrollador Google
Licencia Gratuita. Acuerdo con Google
Idiomas Inglés
Información técnica
Programado en Java
Versiones
Última versión estable 24.0.2 ( 00 de diciembre de 2014 (9 años, 4 meses y 23 días)[1]​)
Enlaces

El SDK (Software Development Kit) de Android, incluye un conjunto de herramientas de desarrollo.[2]​ Comprende un depurador de código, biblioteca, un simulador de teléfono basado en QEMU, documentación, ejemplos de código y tutoriales. Las plataformas de desarrollo soportadas incluyen GNU/Linux, Mac OS X 10.5.8 o posterior, y Windows XP o posterior. El entorno de desarrollo integrado (IDE, Integrated Development Environment) soportado oficialmente es Android Studio junto con el complemento ADT (plugin Android Development Tools). Además, los programadores pueden usar un editor de texto para escribir ficheros Java y XML y utilizar comandos en un terminal (se necesitan los paquetes JDK (Java Development Kit y Apache Ant) para crear y depurar aplicaciones, así como controlar dispositivos Android que estén conectados (es decir, reiniciarlos, instalar aplicaciones en remoto, etc.).[3]

Las Actualizaciones del SDK están coordinadas con el desarrollo general de Android. El SDK soporta también versiones antiguas de Android, por si los programadores necesitan instalar aplicaciones en dispositivos ya obsoletos o más antiguos. Las herramientas de desarrollo son componentes descargables, de modo que una vez instalada la última versión, pueden instalarse versiones anteriores y hacer pruebas de compatibilidad.[4]

Una aplicación Android está compuesta por un conjunto de ficheros empaquetados en formato .apk y guardada en el directorio /data/app del sistema operativo Android (este directorio necesita permisos de superusuario, root, por razones de seguridad). Un paquete APK incluye .dex[5]​ (ejecutables Dalvik, un código intermedio compilado), recursos, etc.

Android Debug Bridge - Conector de Depuración de Android[editar]

Android Debug Bridge (Conector o puente para depuración de Android ), o ADB, es un juego de herramientas incluido en el paquete SDK de Android. Consiste en programas con función tanto de cliente, como de servidor, que se comunican entre ellos. El uso normal del ADB se realiza desde la línea de comandos,[6]​ aunque existen numerosas interfaces gráficas para controlarlo.

La forma de enviar comandos por medio del ADB es normalmente

adb [-d|-e|-s <NúmeroDeSerie>] <comando>

En un problema de seguridad, publicado en marzo del 2011, ADB fue utilizado como un vector para tratar de instalar programas como superusuario (root) en teléfonos conectados, por medio de un ataque de saturación de recursos ('resource exhaustion attack').[7]

Fastboot - Arranque rápido[editar]

Fastboot es un protocolo de diagnóstico incluido en el SDK cuya función principal consiste en modificar el sistema de ficheros flash mediante una conexión USB desde un ordenador. Para ello el dispositivo ha de arrancarse en modo boot loader (carga de inicio) o modo Second Program Loader (segundo cargador de programa) donde sólo se realiza una inicialización de hardware básica. Después de habilitar el protocolo en el dispositivo, este acepta un juego específico de instrucciones que recibe por medio de la conexión USB utilizando la línea de comandos. Algunos de los comandos más usados son:

  • flash – reescribe una partición con una imagen binaria almacenada en el ordenador.
  • erase  – borra una partición específica.
  • reboot – reinicia el dispositivo con el sistema principal, la partición de recuperación del sistema o de vuelta al bootloader.
  • devices  – muestra una lista de dispositivos ( con su número de serie) conectados al ordenador.
  • format – formatea una partición específica. El sistema de ficheros de la partición tiene que ser compatible con el dispositivo.

Native development kit - Sistema de desarrollo nativo[editar]

Android Native Development Kit (Android NDK)
Información general
Tipo de programa EDI, KDS
Desarrollador Google
Idiomas Inglés
Información técnica
Programado en C y C++
Versiones
Última versión estable 10d ( 00 de diciembre de 2014 (9 años, 4 meses y 23 días)[8]​)
Enlaces

El NDK permite instalar bibliotecas escritas en C, C++ y otros lenguajes, una vez compiladas para ARM, MIPS o código nativo x86. Los programas Java en ejecución en la máquina virtual Dalvik (Dalvik VM) pueden llamar a clases nativas por medio de la función System.loadLibrary, que forma parte de las clases estándares Java en Android.[9][10]

Se pueden compilar e instalar aplicaciones completas utilizando las herramientas de desarrollo tradicionales.[11]​ Sin embargo, según la documentación de Android, NDK no debe utilizarse para desarrollo, simplemente porque el programador prefiera programar en C/C++, ya que la utilización del NDK aumenta la complejidad sin que la mayor parte de las aplicaciones obtengan ningún beneficio por ello.[12]

El depurador ADB proporciona un shell root en el Simulador de Android que permite cargar y ejecutar código nativo ARM, MIPS o x86. Este código puede compilarse con GCC, o el compilador C++ de Intel en un ordenador personal normal.[13]​ La ejecución de código nativo es difícil porque Android utiliza una biblioteca de C propia (libc, llamada Bionic). La biblioteca gráfica que utiliza Android para controlar el acceso a este dispositivo se llama Skia Graphics Library (SGL), disponible con licencia de código abierto.[14]​ Skia tiene implementaciones en win32 y Unix, permitiendo el desarrollo de aplicaciones multiplataforma, y es el motor de gráficos que soporta al navegador web Google Chrome.[15]

NDK está basado en la línea de comandos, y al contrario que el desarrollo con Eclipse, requiere la invocación manual de comandos para construir, cargar y depurar las aplicaciones. Hay herramientas de terceros que integran el NDK con Eclipse[16]​ y Visual Studio.[17]

Android Open Accessory Development Kit[editar]

La plataforma Android 3.1 (también actualizada en la plataforma Android 2.3.4) introduce soporte para Android Open Accessory, que permite que equipos USB externos (y Android USB Accesory) puedan interactuar con dispositivos Android en un modo especial llamado "accessory" (accesorio). Cuando un dispositivo Android está en modo "accessory", el accesorio conectado actúa como un centro (host) USB (proporciona potencia al bus y ennumera los dispositivos ) mientras que el dispositivo Android funciona como un dispositivo USB. Los accesorios Android USB están diseñados específicamente para unirse a dispositivos Android mediante un protocolo sencillo (protocolo "Android accessory") que les permite detectar a los dispositivos Android compatibles con este modo.[18]

Referencias[editar]

  1. «SDK Tools | Android Developers». Developer.android.com. Consultado el 8 de noviembre de 2014. 
  2. «Tools Overview». Android Developers. 21 de julio de 2009. 
  3. Westfall, Jon (25 de agosto de 2009). «Backup & Restore Android Apps Using ADB». JonWestfall.com. Consultado el 7 de diciembre de 2009. 
  4. «SDK Tools». 
  5. «Android SDK Glossary». 
  6. "Android Debug Bridge | Android Developers" Accessed December 27, 2012
  7. Lemos, Robert "Open source vulnerabilities paint a target on Android" March 25, 2011, accessed December 27, 2012
  8. a b «Android NDK | Android Developers». Developer.android.com. 13 de noviembre de 2012. Consultado el 13 de marzo de 2014. 
  9. Srinivas, Davanum (9 de diciembre de 2007). «Android — Invoke JNI based methods (Bridging C/C++ and Java)». Archivado desde el original el 16 de diciembre de 2008. Consultado el 13 de diciembre de 2008. 
  10. «java.lang.System». Android Developers. Consultado el 3 de septiembre de 2009. 
  11. Leslie, Ben (13 de noviembre de 2007). «Native C application for Android». Benno's blog. Archivado desde el original el 13 de septiembre de 2009. Consultado el 4 de septiembre de 2009. 
  12. «Android NDK | Android Developers». Developer.android.com. 13 de noviembre de 2012. Consultado el 17 de junio de 2014. 
  13. «Intel C++ Compiler 14.0 for Android». Software.intel.com. Consultado el 17 de junio de 2014. 
  14. «Skia source». 
  15. Toker, Alp (6 de septiembre de 2008). «Skia graphics library in Chrome: First impressions». Archivado desde el original el 16 de diciembre de 2008. Consultado el 13 de diciembre de 2008. 
  16. «Using Eclipse for Android C/C++ Development». 
  17. «Tutorial: Android Native Development with Visual Studio». 
  18. «Accessory Development Kit | Android Developers». Developer.android.com. Consultado el 2 de octubre de 2012. 

Véase también[editar]