Published October 17, 2026 | Version 1.0

Manual de laboratorios de Programación Nativa de Dispositivos Móviles: perfil térmico, ABI, frontera JNI, instrumentación con Perfetto y simpleperf, SIMD en AArch64 y atestación de claves

  • 1. Universidad de Almería

Description

Manual de laboratorios complementario del libro Programación Nativa de Dispositivos Móviles. Arquitectura, rendimiento, seguridad e identidad digital, del Máster en Ingeniería Informática de la Universidad de Almería.

Desarrolla paso a paso los seis laboratorios del itinerario docente, que en el libro aparecen como fichas dentro del capítulo que los motiva, y los convierte en un recorrido que puede seguirse de principio a fin sin otro apoyo: qué hay que tener preparado, qué orden se ejecuta en cada paso, qué debe verse en pantalla tras ejecutarla, qué condición debe cumplirse antes de continuar y con qué cifras y gráficas hay que comparar el resultado propio.
 
Los seis laboratorios forman una progresión que va de observar a medir, de ahí a optimizar con evidencia y finalmente a proteger:

  • L1. Perfil energético y degradación térmica. Carga sostenida de quince minutos con registro de frecuencia, temperatura y batería; demuestra con medida propia que el rendimiento sostenido es una propiedad del dispositivo y el de pico, del instante en que se empezó a medir.
  • L2. Verificar la ABI real. Un mismo código en tres paquetes y dos entornos; distingue ejecución nativa, virtualización y traducción binaria por proceso, y muestra que la primera evidencia que se encuentra no es la que discrimina.
  • L3. El coste de la frontera nativa. Mide los cuatro parámetros del modelo de coste de una llamada JNI con Jetpack Microbenchmark y contrasta el umbral que predice el modelo con el observado, incluido el caso en que no existe.
  • L4. Instrumentación y cuello dominante. Una aplicación con un defecto deliberado que hay que localizar con Perfetto y simpleperf, formulando la hipótesis por escrito antes de leer el código; separa tiempo de CPU, espera de entrada y salida y planificación.
  • L5. De bucles a SIMD en AArch64. Cinco versiones sucesivas de una multiplicación de matrices medidas por separado para atribuir cada mejora a su causa real; es la campaña que produce las cifras del propio libro.
  • L6. Superficie de ataque y protección de claves. Extracción de un secreto mal protegido de una aplicación propia, sustitución por una clave respaldada por hardware y verificación de la cadena de atestación hasta una raíz conocida de antemano.

Cada capítulo sigue la misma estructura: ficha (sesión, capítulos, duración, dificultad, requisitos y resultados de aprendizaje), objetivo y fundamento, contenido del proyecto plantilla, pasos numerados con recuadros de comprobación, campaña de referencia, interpretación de los datos, evidencias y preguntas de la memoria con el criterio específico de evaluación, problemas frecuentes, alternativa sin dispositivo y restauración del entorno.

Un capítulo inicial recoge el marco común a los seis: el dispositivo de referencia y cómo leer la topología del propio, la verificación del entorno, la afinidad de núcleo, las evidencias exigidas en toda entrega, la rúbrica común y el marco ético, que restringe todo análisis a las aplicaciones escritas para el laboratorio. Un apéndice propone una plantilla de memoria.
 
Todas las salidas, tablas y figuras proceden de campañas reales medidas sobre (mi smartphone persona) un Samsung Galaxy S21 FE (Snapdragon 888, Android 16) y se presentan como punto de comparación, no como resultado que haya que reproducir. Las versiones de las herramientas son Android 17 (API 37), Android Studio Quail 4, Android Gradle Plugin 9.4.0 sobre Gradle 9.6.0 y JDK 17, Kotlin 2.4.10 y NDK r29. Los proyectos plantilla de los seis laboratorios, con sus guiones de campaña, los datos de referencia y los guiones de análisis, se distribuyen con el material del libro; cada uno compila y se ejecuta sin modificación antes de escribir una línea.

El volumen se publica en dos ediciones: la del estudiante y la del profesorado (esta útima no se distribuye), que añade notas didácticas sobre dónde se atasca el alumnado, qué conviene provocar en clase y, en el laboratorio 4, cuál es el defecto que hay que localizar. Está escrito en español y compuesto en LaTeX.

Contenido original bajo licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0). Las marcas y nombres de productos se citan con propósito descriptivo. Los laboratorios de seguridad deben realizarse exclusivamente sobre sistemas propios o expresamente autorizados y en entornos controlados.

Files

manual-labs.pdf

Files (3.3 MB)

Name Size
md5:1a54e1939c82a17f79fda63804315204
3.3 MB Preview Download

Additional details

Related works

Is supplement to
Book: 10.5281/zenodo.23249302 (DOI)

Software

Programming language
Kotlin , Java , C , C++