Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo evaluar el análisis del código fuente del sistema Android de Luo Shengyang

Cómo evaluar el análisis del código fuente del sistema Android de Luo Shengyang

He estado trabajando en el desarrollo del SDK de Android durante 3 años, pero sentí que estaba demasiado agotado para seguir adelante, así que dediqué más de un año y probablemente lo aprendí. Según la experiencia de los predecesores, se necesitan dos años para comenzar por completo con la capa inferior de Android. Permítanme hablar primero sobre mi proceso de inicio: Paso 0, descargar el código fuente. Descargué 4.2, el código fuente de la capa de marco es 10G, el kernel es más de 2G y los archivos de etiquetas creados por ctags para la capa de marco son 600M. Me sorprendió un poco leer vim ctags cscope, es bastante bueno y la estructura es bastante clara. Primer paso, encontré un buen libro "Diseño e implementación de Android Volumen 1" que habla sobre el inicio, la inicialización, la inicialización del marco de servicios, Binder, bucle de mensajes, PackageManagerService, ActivityManagerService de la capa del marco de Android. Según el autor, más adelante se publicará un segundo volumen sobre los subsistemas de interfaz de usuario, así que estad atentos. De hecho, después de leer docenas de páginas de este libro, me di cuenta de que necesitaba el conocimiento del segundo paso; de lo contrario, no podría leerlo, así que salté al segundo paso. El segundo paso es aprender a programar el sistema Linux. Al leer "Diseño e implementación de Android", descubrí que la parte nativa de la capa del marco es toda la programación de Linux. Para dominar esta parte del conocimiento, pasé 4 meses estudiando el "Manual de programación del sistema Linux" (TLPI), un libro con más de 1000 páginas que solía trabajar en el sistema de archivos de Windows, por lo que estoy relativamente familiarizado con él. Lenguaje C. TLPI Los ejercicios son muy interesantes y la cantidad es relativamente grande. Si los sigues, ganarás mucho. El tercer paso fue pasar 4 meses aprendiendo algunos conocimientos sobre el kernel de Linux. Vi LKD y más de la mitad de PLKA. Cuanto más aprendo, menos sé y siento que no entiendo más y más. Pero esto es normal. Solo tienes que hacerlo lentamente. Supongo que tendré que seguir haciéndolo en el futuro. El cuarto paso es volver a mirar el código fuente de Android. Esta vez leí "Diseño e implementación de Android Volumen 1" de una vez y finalmente entendí la capa del marco. Al mismo tiempo, realmente me mareé varias veces. No estaba tan mareado cuando miré el código fuente del kernel de Linux antes. Saltar constantemente entre la capa Java y la capa nativa me consumía un poco de cerebro. Entre ellos, sentí que la base de Java no era muy sólida, así que volví y recuperé la octava edición de "Core Java" durante un mes. Pero este libro no cubre el subsistema de interfaz de usuario, así que leí "Análisis del kernel de Android" El quinto paso, "Análisis del kernel de Android" (este libro en realidad habla sobre la capa de marco, y el autor también es una persona integrada, por lo que cuando Estaba escribiendo sobre la capa de marco, su escritura no era muy buena y muy prolija, pero todavía había muchos puntos interesantes. Cuando más tarde escribió ROM y jugó con la placa de desarrollo, probablemente habló sobre su especialidad. , todavía puede ver que es bastante bueno. El conocimiento de este libro es un poco antiguo. Después de todo, es aproximadamente 2.3 y gran parte del código está desactualizado, pero muchas de las ideas del autor son de gran valor de referencia). Sigue siendo muy importante hablar sobre el subsistema de interfaz de usuario y el sistema de procesamiento de mensajes clave/táctiles. Especialmente el dibujo de Vista en el Capítulo 13, es muy gratificante combinar la investigación del código fuente. Más tarde, habló sobre el marco de compilación y cosas relacionadas con ROM, que son información muy valiosa. Paso 6: Para complementar el conocimiento de otros subsistemas, como los módulos de administración de energía, leí la serie "Comprensión profunda de Android". Personalmente creo que esta serie parece un poco incómoda, pero sigue siendo valiosa como confirmación complementaria. El séptimo paso es "Análisis de escenarios del código fuente del sistema Android", la obra maestra de análisis del código fuente de Luo Shengyang, que es más detallada que "Diseño e implementación de Android", pero la desventaja es que involucra menos módulos y el código fuente seleccionado también es más detallado. que "Diseño e implementación de Android". "Diseño e implementación" es un poco más antiguo. Después de leer el libro, debes estudiar el blog del autor. Hay muchas cosas que definitivamente te satisfarán. El octavo paso es comprar una placa de desarrollo y jugar con ella usted mismo. Aún no he llegado a este paso porque siento que todavía no estoy preparado para el conocimiento. Es posible que pasen algunos meses más y luego estaremos listos para lanzar el 6410 o Raspberry Pi.

Finalmente, como trabajé en el campo de Windows hace 11 años, no sé mucho sobre Linux. Tuve que leer estos libros. Si eres alguien que ha estado trabajando en Linux, puedes ahorrarte muchos pasos. Ir directamente al código fuente es la forma correcta. Estoy involucrado en el desarrollo de SIG móvil y aprendí la capa de marco por interés. Sin embargo, la plataforma de contratación para desarrolladores de la capa de marco de Android es bastante competitiva. Después de todo, es difícil encontrar talentos para trabajos de televisión inteligente. Hoy en día, varias capacitaciones de iOS han atraído a personas que se apresuran a ganar dinero para desarrollarse. Se exponen las deficiencias de iOS que solo se pueden usar para el desarrollo de SDK. Abarrotado en el desarrollo del SDK. Eh, no creo que sea bueno. Por otro lado, en el lado de Android, aunque los principiantes de nivel de entrada no han ganado dinero con iOS, la sostenibilidad es muy buena y pueden continuar desde el kernel del controlador "framework" SDK. Hay muchas personas que se convierten gradualmente en desarrolladores de Linux/desarrolladores integrados después de trabajar duro. Los recién llegados, los veteranos, los novatos y los expertos ocupan sus propios puestos, y la jerarquía es muy buena. Reimprimir