Hay muchas herramientas y funciones para ayudar a depurar las aplicaciones de Flutter, algunas de las cuales se enumeran a continuación:
Las herramientas de desarrollo son un conjunto de herramientas de análisis y rendimiento que se ejecutan en el navegador.
Flutter inspector, un inspector de widgets proporcionado por las herramientas de desarrollo, también se puede usar directamente en Android Studio e IntelliJ (con la ayuda de los complementos de Flutter). El inspector puede mostrar visualmente el árbol de widgets, ver widgets individuales y sus valores de atributo, habilitar capas de rendimiento, etc.
1. Herramientas para desarrolladores
Para depurar y analizar aplicaciones, las herramientas de desarrollo pueden ser su primera opción. La herramienta para desarrolladores se ejecuta en el navegador y admite las siguientes funciones:
Depurador de código fuente
El inspector de widgets muestra el árbol de widgets visual, en el modo de "selección de widget", seleccione un widget en la aplicación y se ubicará directamente en el árbol de widgets.
Análisis de memoria
Vista de línea de tiempo, seguimiento de soporte, información de seguimiento de importación y exportación
Vista de registro
Si está ejecutando en modo de depuración o en modo de perfil, puede abrir las herramientas de desarrollador en su navegador para conectarse a su aplicación. Las herramientas de desarrollo no se pueden utilizar en aplicaciones compiladas en modo de lanzamiento porque se ha eliminado la información de depuración y análisis.
Si desea analizar la aplicación con herramientas de desarrollo, asegúrese de utilizar el modo de perfil. De lo contrario, el resultado principal del análisis serán las aserciones de depuración utilizadas para verificar los diversos invariantes en el marco (consulte las aserciones del modo de depuración).
2. Establecer puntos de interrupción
3. Analizador de dardos
Si usa la línea de comando, puede usar el flutter analyze
código de verificación.
El analizador de Dart se basa en gran medida en las anotaciones de tipo que agrega al código para ayudar a rastrear problemas. Se recomienda que agregue anotaciones en varios lugares (evitar var
, parámetros sin tipo, literales de lista sin tipo, etc.), porque esta es la forma más rápida y menos dolorosa de rastrear problemas.
4. Registro
Otra herramienta de depuración útil es el registro. Configure el registro mediante la codificación y luego vea el resultado en la vista del registro o en la consola de la herramienta para desarrolladores.
5. Capa de aplicación de depuración
Flutter adopta una arquitectura en capas, que incluye widgets, capas de renderizado y dibujo. Para obtener más información y videos, consulte la arquitectura de Framework en la wiki de GitHub y el artículo de la comunidad The Layer Cake.
El inspector de widgets de Flutter proporciona una visualización del árbol de widgets. Si desea más detalles o volcados de texto detallados sobre wigets, jerarquías o árboles de renderizado, verifique la bandera de depuración de la página de la aplicación Flutter agregando el código de salida: Aplicación Parte de la capa.
6. Aserción del modo de depuración
Durante el proceso de desarrollo, se recomienda encarecidamente que utilice el modo de depuración de Flutter. Si está ejecutando con el icono de error de Android Studio o ejecutando en la línea de comandos flutter run
, el modo de depuración se utilizará de forma predeterminada. Algunas herramientas --enable-assets
pueden admitir declaraciones de aserción a través de indicadores de línea de comando.
En este modo, la declaración de aserción de Dart está activada y el marco de Flutter calculará los parámetros de cada declaración de aserción que se encuentre durante la ejecución y generará una excepción cuando el resultado sea falso. De esta manera, los desarrolladores pueden controlar la apertura o el cierre de la verificación invariante, y la correspondiente pérdida de rendimiento solo ocurrirá durante la depuración.
Cuando se infringe una invariante, se informará a la consola con información contextual para ayudar a rastrear la fuente del problema.
7. Animación de depuración
La forma más sencilla de depurar animaciones es ralentizarlas. El inspector Flutter proporciona un botón para ralentizar las animaciones (animaciones lentas), también puede ralentizar la animación en el código.
7.1 Medición del tiempo de inicio de la aplicación
Para recopilar información detallada sobre el tiempo que tarda en iniciarse una aplicación Flutter, puede flutter run
utilizar las opciones trace-startup
y en tiempo de ejecución profile
.
$ flutter run --trace-startup --profile
La salida de seguimiento se guarda en el directorio del proyecto Flutter en el build
directorio, en un start_up_info.json
archivo JSON llamado . La salida enumera el tiempo desde el inicio de la aplicación hasta estos eventos de seguimiento (capturados en microsegundos):
-
Al entrar en el motor Flutter
-
Al mostrar el primer fotograma de la aplicación
-
Al inicializar el marco Flutter
-
Cuando se inicializa el marco Flutter
{
"engineEnterTimestampMicros": 96025565262,
"timeToFirstFrameMicros": 2171978,
"timeToFrameworkInitMicros": 514585,
"timeAfterFrameworkInitMicros": 1657393
}
ulimit
aumentar el número de identificadores disponibles con el comando:
ulimit -S -n 2048