Red de conocimiento de recetas - Recetas gastronómicas - ¿Cómo lee Daniel el código fuente del sistema Android?

¿Cómo lee Daniel el código fuente del sistema Android?

Si solo desea ver la implementación de algunas clases comunes, descargue el código fuente en el administrador de paquetes de Android y simplemente mire un IDE con una ruta de código fuente.

Pero si quieres saber más sobre el sistema Android, puedes echar un vistazo a algunos de mis sencillos resúmenes.

Conocimiento

Lenguaje Java (un lenguaje informático, especialmente utilizado para la creación de sitios web)

Java es uno de los lenguajes principales de AOSP. No hace falta decir que hay que dominarlo.

Competente en el desarrollo de aplicaciones de Android

Sistema operativo Linux

Android está basado en Linux y el entorno de compilación recomendado por AOSP es Ubuntu 12.04. Por lo tanto, es fundamental dominar el uso y la comprensión del sistema Linux. Si desea comprender el código subyacente, debe comprender el desarrollo básico de programas en el entorno Linux. Si profundiza en la capa del controlador, también debería tener conocimientos relacionados con el kernel.

Fabricación

AOSP es compilado por el sistema Make. Comprender la preparación básica de Makefile le brindará una comprensión más clara de cómo se construye AOSP.

Fantong

AOSP utiliza el repositorio git para la gestión del código fuente. Esta debería ser una habilidad esencial para los programadores.

C

Algunos módulos sensibles al rendimiento y bibliotecas de terceros del sistema Android se implementan en C, como: sistema de entrada, proyecto Chromium (la implementación subyacente de WebView).

Hardware

Red internacional fluida

La descarga del código AOSP requiere que tengas una red internacional fluida. Si pierde la paciencia para descargar el código, definitivamente no tendrá la paciencia para mirar el código AOSP desordenado. Además, todos los buenos programadores deberían dominar Google.

PC con Ubuntu 12.04.

Si solo miras el código fuente y no haces demasiados cambios, no necesitas una configuración demasiado alta.

Dispositivos Nexus

De forma predeterminada, el proyecto AOSP solo admite dispositivos de la serie Nexus. No importa si no lo tienes, aún puedes mirar el código. Pero si quieres ir más allá en el camino de Daniel, lo mejor es cambiar el código y depurarlo.

Cable USB de alta calidad

No podría estar más feliz cuando se rompió un cable mientras estaba flasheando mi máquina.

Software

Ubuntu 12.04

Oficialmente recomendado, no hay elección.

Oracle Java 1.6

Cuidado con no utilizar OpenJDK. Esto es un pozo. Aunque está escrito en el documento oficial, se menciona por separado.

Instalación:

sudo apt-get install python-software-properties

sudo add-apt-repository PPA: webupd 8 team/Java

sudo apt-get update

sudo apt-get install oracle-java6-installer

sudo apt-get install oracle-java6-set-default

Eclipsado

Se estima que mucha gente se quejará de por qué se utiliza esta antigüedad. De hecho, la razón es muy simple y apropiada. Cuando comencé AOSP por primera vez, probé Eclipse, IntelliJ Idea, Vim CTAG y SublimeText CTAG para encontrar la herramienta más eficaz. El resultado final es un eclipse solar. Las principales ventajas son:

También existe análisis de sintaxis (saltos de clases y métodos rápidos y precisos).

Soporte C (el soporte C de IntelliJ es demasiado lento).

Las herramientas de depuración integradas, como DDMS, visualizan jerarquías.

Para mejorar la eficiencia, vale la pena dedicar 5 minutos a memorizar las teclas de acceso directo más utilizadas.

Ajusta tu classpath y no importes código inútil, porque hay demasiado código en el proyecto AOSP. No agregue soporte C a su proyecto cuando no necesite leer el código C, el proceso de indexación lo arruinará.

Concepto Inteligente

Es necesario desarrollar una App. Cuando desea depurar una determinada función del sistema, a menudo necesita escribir una aplicación para depurarla rápidamente. En este momento, el antiguo Eclipse ya no es fácil de usar. La función de autocompletar xml de Itellij IDEA es muy poderosa.

Los hombros de los gigantes

Primero debes leer esto. La introducción del proyecto, la descarga del código, la configuración del entorno, el método de actualización de la computadora y la configuración de Eclipse están todos aquí. Ésta es la base de todo.

Esto es en realidad para desarrolladores de aplicaciones. Pero también hay muchas introducciones sobre el mecanismo del sistema, que vale la pena leer detenidamente.

El blog del profesor Luo Shengyang es muy nutritivo y básicamente puede usarse como un tutorial para guiarlo a comenzar a leer el código fuente de AOSP. Podéis leerlos uno a uno en orden cronológico del blog. Sin embargo, esta serie de blogs también tiene algunos problemas:

Los primeros blogs se basan en versiones antiguas de Android

Una gran cantidad de seguimiento del flujo de código. Al leer un artículo, asegúrese de conocer la ubicación de lo que está viendo en todo el sistema.

El profesor Deng Fanping también es un gurú de Android y su blog también es muy nutritivo. Pero no es tan bueno como el sistema del maestro Luo Shengyang. Es más bien una discusión en profundidad de algunos puntos técnicos.

Lista oficial de problemas de Android. Se descubrieron algunos errores extraños durante el proceso de desarrollo y finalmente descubrí que básicamente están registrados aquí. Por supuesto que puedes mencionar algunos nuevos, si alguien los cambia es otra cuestión.

Asegúrate de dominar el uso de esta herramienta. Muchos conocimientos relevantes no se resumen sistemáticamente y es necesario hacerlo usted mismo.

Otros

Organización del código

La unidad de compilación de AOSP no corresponde uno a uno al proyecto git, sino al archivo Android.mk. Compilar módulos con el comando mmm le ahorrará mucho tiempo.

Binder

Esta es la comunicación entre procesos más básica en Android. Es ampliamente utilizado entre aplicaciones y servicios del sistema. No solo necesita saber cómo usar AIDL, sino que también necesita saber cómo escribir manualmente la interfaz de Binder. Esto es importante para comprender cómo interactúan las aplicaciones de Android y los servicios del sistema. No tiene que esperar para ver cómo se implementa Binder.

Hardware Abstract Layer (abreviatura de Hardware Abstract Layer)

A menos que esté particularmente interesado en el hardware o quiera trabajar en una empresa de soluciones, no dedique demasiado tiempo a esta capa. .

Cyogen Mod

Esta es una Rom de terceros basada en AOSP. Puede aprender mucho de la wiki del proyecto que los funcionarios de AOSP no le dicen, como por ejemplo cómo admitir dispositivos distintos de Nexus.

Agencia de Inteligencia de Defensa

Esta es una herramienta para dibujar UML en Linux, que puede ayudarte a organizar el código que has leído.

XDA