Cómo aprender la arquitectura de Android

La arquitectura de Android consiste aproximadamente en capas inferiores.

1. Linux Kernel
2. Nivel de abstracción de hardware o HAL
3. Android Run Time y bibliotecas
4. Marco de aplicación
5. Aplicaciones.

Para empezar, primero debes aprender lo básico sobre el kernel de Linux, qué todo el módulo tiene cómo Android lo utiliza para usar los recursos del sistema.
Básicamente, Android aprovecha los controladores del kernel de Linux para varios componentes de hardware como Bluetooth, memoria, teclado, administración de energía, audio / video, WiFi, pantalla y muchos más.

Intente buscar en el código de estos controladores, aquí está el enlace Referencia cruzada que podría ayudarlo a entender esto en el árbol de código fuente que debería considerar buscar en el código.
HAL consiste en códigos independientes del proveedor para varios módulos de hardware como Audio, Video, Cámara y muchos más módulos.

Hay varias bibliotecas que proporciona Android, como SQLite, Surface Flinger, Media Framework, Open GL, libc, Webkit, SSL, etc. que deberías considerar leer y cómo desempeñan un papel en el sistema Android.

Los marcos de aplicación consisten básicamente en un conjunto de marcos estándar proporcionados por android para facilitar que los desarrolladores de android usen el recurso disponible con android de manera efectiva.
Consiste en el Administrador de actividades, el Administrador de notificaciones, el Administrador de ventanas, los Proveedores de contenido, el Administrador de telefonía, el Administrador de ubicaciones, el Administrador de paquetes, el Administrador de recursos, etc. Obtenga información sobre estos marcos y cómo funcionan.

Luego aparecen las aplicaciones de Android reales que usamos. Intenta crear algunas aplicaciones y publicarlas en playstore

La arquitectura de Android es algo muy vasto y no es algo que se pueda dominar en aproximadamente un mes.
Por lo tanto, sugiero primero analizar dónde está y lo que ya sabe y comenzar a aprender gradualmente.

Aquí hay algunos enlaces importantes:
Arquitectura de android
Arquitectura del sistema operativo Android
Interfaces y arquitectura de Android
Para una referencia completa del código fuente del sistema operativo y el núcleo: Referencia cruzada:

Espero que esto te ayude a empezar.

Yo sugeriría tomar un tema en particular a la vez y bajar lentamente la pila (Interfaces y Arquitectura de Android) para lograr un conocimiento profundo de la arquitectura de Android, algunas respuestas aquí comienzan desde la parte más difícil como el kernel de Linux primero, pero esa es la parte más difícil Y puede ser intimidante para el principiante.

  1. Comience con el desarrollo de una aplicación, digamos una aplicación de Android bluetooth / LE o NFC, necesita Java, y luego use este recurso (Conectividad | Desarrolladores de Android) para desarrollar una aplicación, esto le dará conocimiento y experiencia en los bloques de construcción de Android como Actividades, servicios, intenciones, receptores de difusión, AIDL, etc.
  2. Desarrolle una aplicación basada en NDK basada en Bluetooth / NFC o cualquier otra aplicación que haya desarrollado en el paso 1, esto le dará una mejor comprensión de la arquitectura en términos mucho más prácticos que los diagramas y la teoría de la arquitectura, necesita C y C ++. Comenzó con el NDK), esto es un poco más complejo que el paso 1, le brindaría conocimientos y experiencia en JNI, IPC, etc.
  3. Si tiene un teléfono Android nexus de sobra (existe la posibilidad de dañar su teléfono, por lo que no se recomienda para todos), puede modificar el AOSP, puede crear sus propias imágenes y mostrarlas en el teléfono. El código fuente del proyecto de código abierto de Android, le brindará conocimientos y experiencia en el sistema de compilación de Android, archivos y otros detalles del nivel del sistema, como la capa de servicio de Android, los marcos de Android, etc.
  4. Una vez que tenga el código fuente de AOSP, intente implementar cualquier característica adicional a las características existentes, sugeriría que seleccione el mismo campo como Bluetooth / NFC, etc. para tener una comprensión más profunda, consulte este enlace para Bluetooth, Proyecto de código abierto de Android (Bluetooth) .
  5. Si tiene un kit de desarrollador de Beagleboard, puede aprender a realizar sus propias modificaciones en el kernel de Linux e integrar hardware externo adicional. Digamos que desea integrar un kit de Bluetooth para cualquier aplicación específica que haya desarrollado en el paso 1 o 2. necesita conocimientos de lenguaje de programación C y Ensamblaje y Linux Controladores, firmware y arquitectura de la computadora, esta es la parte más difícil, sugeriría tomar esto último debido a la complejidad involucrada, consulte esta comunidad de sitios compatible con hardware abierto para computadoras, y tomar cualquier proyecto.

De esta manera, puede comenzar desde la parte más fácil y pasar a las partes más difíciles y en el camino puede aprender la arquitectura completa, no solo la teoría, y también aprender un componente (bluetooth / NFC / Audio, etc.) de arriba a abajo, y luego continuar. a otros componentes.

Esto es más o menos si solo quieres ver qué es la arquitectura:
Si no, aprender toda la arquitectura de Android es realmente un objetivo valiente. No es que sea imposible, sino porque involucra muchas cosas: sistemas operativos, máquinas virtuales, bibliotecas, programación del kernel, gráficos, etc.

En su mayoría, “Desarrollador de Android” implica personas que desarrollan aplicaciones utilizando el marco de la aplicación (consulte la figura) y, a veces, utilizan las bibliotecas nativas según el requisito. El conocimiento de la VM / entorno de tiempo de ejecución también es una buena cosa.

La arquitectura puede ser “aprendida” si tiene el conocimiento de lo siguiente:

  • Programación del kernel de Linux – torvalds / linux, Guía de programación del módulo del kernel de Linux
  • Android Run Time / Dalvik Virtual Machine – android / platform_dalvik
  • Java, C ++ y algunas bibliotecas: puede encontrar muchos recursos para esto
  • API de Android – Cualquier buen libro de Android o tutoriales en video.

Todos los cuales son de código abierto.

PD: si se siente cómodo con Java y puede codificar sin supervisión en Java, la API de Android no tarda mucho en sumergirse.
Fuente: Arquitectura de Android

Esto es prácticamente todo lo que necesita para desarrollar, diseñar y distribuir su aplicación: Desarrolladores de Android. Se divide en 3 secciones:

  1. Desarrollar | Desarrolladores de Android: esto incluirá todos los detalles en el extremo posterior de la aplicación Incluye :
    • Empezando | Desarrolladores de Android: tiene todos los tutoriales, desde la instalación del sdk a la conectividad, gráficos, sensores, etc.
    • Índice del paquete | Desarrolladores de Android: es la documentación completa para todos los niveles de API (API 1 a API 18).

2. Diseño | Desarrolladores de Android – si ya terminaste con el back-end
Es hora de obtener algunos tutoriales en la parte delantera . No importa lo complejo que sea
Algoritmos que ha utilizado en su código, pero la interfaz de usuario es bastante
Todo lo que un laico apreciará.
3. Distribuir aplicaciones | Desarrolladores de Android: es la última fase de su aplicación y también es muy importante en el desarrollo de aplicaciones profesionales.
Además de estos, encontrarás numerosos problemas durante el desarrollo.
Luego viene la pila Desborda el salvador.

Disfrutar….

Android se puede dividir en las siguientes capas:

  • Kernel de linux
  • Capa de abstracción de hardware
  • Bibliotecas básicas y entorno de ejecución.
  • Marco de aplicación
  • Carpeta IPC
  • Aplicaciones

Puede consultar algunos de los detalles de la arquitectura y el sistema de construcción desde

Arquitectura del sistema Android y descripción general del sistema de construcción

Si quieres entender conceptos avanzados de Android puedes referirte.

Conceptos avanzados de aplicaciones de Android

Su respuesta a esta pregunta se describe debajo del enlace.

Este video tutorial gratuito describe con ejemplos en detalles:

Arquitectura de android

En Learnvern puedes aprender Android gratis con los mejores videos disponibles en varios idiomas.

Una vez finalizado este curso obtendrás el Certificado.

Para saber más sobre Android visita Learnvern.

Es posible que desee ver los componentes de la arquitectura de Android lanzados por Google este año. Proporcionan una base técnica para las mejores prácticas cuando se trata del desarrollo de aplicaciones de Android y pueden enseñarle algunos conceptos, incluso si decide no usarlos como biblioteca.

Componentes de la arquitectura de Android

4 capas básicas de Android. Puedes aprender desde allí.
http://androidebook.com/android-