Red de conocimiento informático - Conocimiento informático - Cómo depurar el marco de Android

Cómo depurar el marco de Android

Uso de Android Studio para la depuración del código fuente

Como se mencionó anteriormente, si necesita implementar la depuración del código fuente, debe conocer suficiente información de depuración en la depuración local, esta información se denomina "símbolos de depuración". Sin embargo, la versión publicada de la biblioteca de enlaces dinámicos o el archivo ejecutable generalmente no contiene la información de depuración que necesitamos. En el sistema Android, el sistema en el directorio /system/lib/* no tiene suficiente información de depuración, por lo que si lo desea. al código fuente Para la depuración de código, debe compilar su propio código fuente de Android para obtener información de depuración y luego dejar que el depurador nos ayude en la depuración.

Compilar el código fuente de Android es muy problemático. He presentado cómo usar Docker para compilar en el artículo. Sin embargo, hay muchas versiones de Android, si realmente necesitas depurar cada versión, entonces casi no lo es. Es posible compilar localmente: una versión ocupa alrededor de 60 gigabytes, si compila para cada versión, debe compilar localmente y, si compila localmente, debe compilar el código fuente usted mismo. Si compilo todas las versiones, ¿todavía habrá espacio en Mac? Por lo tanto, se recomienda utilizar servicios en la nube para compilar el código fuente. Por ejemplo, utilizando ECS de Alibaba Cloud, el código fuente se puede descargar en 15 minutos con una velocidad de red de 20 M, y la velocidad de compilación es apenas aceptable, con 4 núcleos y 8G; dos horas y media. Si no tiene la energía para compilar el código fuente de Android, mi proyecto de demostración puede permitirle experimentarlo. Contiene algunos archivos necesarios para la depuración y puede experimentar la sensación de depuración nativa.

Si ya tenemos símbolos de depuración, también debemos asegurarnos de que su archivo de símbolos corresponda a la DLL o al archivo ejecutable que realmente se ejecuta en el dispositivo; de lo contrario, será lo mismo. La forma más sencilla es utilizar un emulador. Después de compilar el código fuente, uno de los principales productos de compilación es system.img. Este system.img se montará en la partición /system del dispositivo después del inicio, y la partición del sistema contiene la mayoría de los archivos ejecutables y la biblioteca de enlaces dinámicos. , estos archivos son nuestra salida de compilación, que se pueden depurar utilizando los símbolos de depuración obtenidos por el compilador. Estos archivos son el resultado de nuestra compilación y se pueden usar para depurar utilizando símbolos de depuración obtenidos mediante la compilación. El emulador tiene una opción -system que especifica el archivo system.img utilizado por el emulador, por lo que el problema está resuelto.

La última pregunta es que, dado que estamos depurando desde el código fuente, necesitamos el código fuente, podemos descargar el código fuente de AOSP. Tenga en cuenta que cuando revise la rama, debe asegurarse de que su La rama es consistente con la misma rama que usaste para compilar tu código fuente.