Una breve discusión sobre el rendimiento del terminal móvil Android.

A medida que el producto madura, cuando sus funciones alcanzan a las de los productos de la competencia y cuando el efecto de grupo pequeño emerge gradualmente, el desempeño emergerá, pero tendrá un impacto sutil.

1. Antecedentes

      A medida que los proyectos móviles maduran, muchas aplicaciones y empresas rivales han superado inicialmente la etapa de captación de cuota de mercado y han comenzado a entrar en la vía de la retención, el reembolso y la rigidez de los usuarios. En este momento, es posible que algunas empresas se hayan lanzado con prisa o con prisas. las primeras etapas Los problemas heredados causados ​​​​por limitaciones arquitectónicas, etc., llevaron al hecho de que, aunque se implementan algunas funciones, la experiencia del usuario no es buena. Una vez que surgen los problemas, los usuarios se interrumpirán y se perderán;

      Por supuesto, si el producto es único y necesario, su rendimiento puede generar quejas de los usuarios, pero debido a la situación actual, tienen que seguir usándolo, como 12306 en el pasado; pero ahora, la gente está más acostumbrada a usarlo. Meituan, Ctrip, Fliggy, etc. utilizan a largo plazo aplicaciones "sensoriales" buenas y estables;

      Por lo tanto, cuando un producto es opcional, la "experiencia sensorial" será una prueba importante que afectará la retención, el pago y la permanencia del usuario. Por ejemplo, siempre he tenido la costumbre de tomar una siesta mientras veo transmisiones en vivo. Antes de 2017, había estado usando el cliente Douyu. Más tarde, el cliente de PC Douyu a menudo experimentaba "tartamudeo" cuando jugaba durante mucho tiempo. "infinito reproducción", "audio y video no sincronizados" e incluso atascado en la pantalla negra, cambié a Huya Live. Aunque Douyu pudo haber solucionado estos problemas en la nueva versión más tarde, porque estaba en Huya. No hubo problemas importantes. durante el uso, por lo que nunca lo reemplacé y lo he estado usando hasta el día de hoy;

      ¡La optimización del rendimiento siempre ha sido un tema especial que requiere atención continua! En el camino para ponernos al día con las funciones, debemos considerar no solo la eficiencia y los ingresos, sino también la optimización sostenible a largo plazo. Una vez que demos un gran paso, fácilmente perderemos usuarios ~

2. Interpretación de los elementos de desempeño y su impacto

1. Ocupación física

        1.1 Volumen del paquete

                1>El volumen del paquete se refiere al tamaño del paquete de instalación.

                2>Impacto:

                        2.1>Compartir

                        Entre los métodos comunes para atraer nuevos usuarios, compartir ocupa una parte esencial. Por ejemplo, es común hacer clic en compartir desde la página de actividad de la aplicación para llevar automáticamente la apk al cuadro de chat de WhatsApp; (algunas empresas compartirán lanzando un versión de velocidad, y después de instalar algunos módulos, luego descargar a través de la red Wi-Fi)

                        2.2>Descargar e instalar

                        En algunos escenarios, el tamaño del paquete es demasiado grande, lo que puede afectar la decisión del usuario de descargar e instalar; por ejemplo, si el usuario usa datos para descargar, el teléfono móvil del usuario no tiene espacio suficiente, etc.;

        1.2 Ocupación del espacio (memoria física)

                1> El uso del espacio generalmente se compone del uso de aplicaciones, el uso de datos y el caché

                2>Impacto:

                        2.1>Ejecutar

                        Un mayor uso de espacio aumentará la carga en los dispositivos Android, afectará la fluidez del funcionamiento y, en ocasiones, provocará fallos, ANR, etc.

2. Hora de inicio

        2.1 Arranque en frío

                1> El inicio en frío generalmente se refiere a cuando no hay ningún proceso de aplicación en segundo plano (distinga los datos recopilados por la máquina de mantenimiento de vida), a partir del momento en que el usuario inicia la aplicación, durante el cual el sistema crea un proceso y lo asigna a la aplicación. y luego ingresa a la página de inicio después de que la aplicación completa la inicialización (SplashActivity);

                2>Influencia

                        2.1> Una entrada más rápida puede brindar a los usuarios una experiencia mejor y más rápida; algunas empresas también cubrirán el problema del inicio lento configurando anuncios en pantalla;

                        2.2> Generalmente, puede consultar el principio 2/5/8 para el arranque en frío. Es aceptable en 2 segundos, debe optimizarse en 5 segundos, la experiencia es mala en 8 segundos y es un accidente si excede 8 segundos ~

        2.2 Arranque en caliente

                1>El inicio en caliente es el tiempo que lleva iniciar la aplicación con el proceso en segundo plano (el proceso está activo);

                2>Influencia

                        2.1>Completar el procesamiento de transacciones cortadas rápidamente, permitiendo a los usuarios reanudar el uso lo antes posible;

                        2.2>El reinicio en caliente generalmente puede referirse al principio 1/2/4. De manera similar, si una aplicación simplemente cambia al fondo y luego regresa, y el proceso está activo, en este caso no se puede operar durante más de 4 segundos. básicamente se puede omitir Optimice la aplicación y optimice directamente RD y QA;

        2.3 Inicio completo

                1> A veces, dependiendo del escenario, prestaremos atención a la duración desde que el usuario hace clic en el icono de la aplicación hasta el primer cuadro operable en la página de inicio. Este tipo de estadísticas está más cerca de la perspectiva del usuario y se centra en la duración del Inicio "somatosensorial". Aquí se puede considerar el juicio lógico de la página de inicio, almacenamiento en caché, carga de datos, renderizado, etc.;

                2>Influencia

                Un inicio completo más rápido puede brindar una mejor experiencia a los usuarios y reducir los costos de espera;

        2.4 inicio de enlace profundo

                1>En algunos escenarios específicos, se prestará atención al tiempo de inicio del enlace profundo, como cuando se comparte una página de destino y se inicia la aplicación, el tiempo total desde el inicio hasta el salto a la representación de la página. Si el tiempo es demasiado largo, afectará la conversión final de la actividad;

                2>Influencia

                Los escenarios iniciados desde un enlace profundo generalmente tienen un propósito específico. Por ejemplo, la página de inicio de una actividad regresa a la página de actividad especificada en la aplicación. Luego, puede optar por no cargar o cargar los elementos no esenciales en la ruta de salto;

        2.5 Iniciar sin red

                1> Generalmente se centra en la carga, el reintento y la duración de visualización predeterminada cuando no hay red;

                2>Influencia

                Una vez me encontré con una falla de inicio causada por problemas de red que no se podían recuperar excepto reiniciando: no había página predeterminada, ni actualización, ni botón de reintento, e incluso la interfaz de configuración había fallado, pero las interfaces posteriores no limitaban los reintentos. ;

                Debemos prestar atención al costo de cada reinicio de usuario, lo cual es fatal para un escenario específico con altos requisitos de fluidez;

3.PSS (uso de memoria)

        3.1 En el sistema Android, además de compartir memoria con otros procesos (compartida sucia), cada proceso de aplicación también usa memoria privada (privada sucia), generalmente usamos PSS (memoria privada + memoria compartida proporcional) para medir el rendimiento de una aplicación. ... sobrecarga de memoria. Dado que la memoria de un dispositivo móvil es fija, si el consumo de memoria es demasiado grande, la aplicación se congelará o fallará y será necesario probar la memoria. En circunstancias normales, las aplicaciones no deberían ocupar demasiados recursos de memoria y pueden liberar memoria de manera oportuna para garantizar la estabilidad y fluidez de toda la aplicación.

Se puede obtener a través de adb shell dumpsys meminfo nombre del paquete

        3.2 Impacto

        Matar: cuando la aplicación se coloca en segundo plano, si el sistema Android encuentra una situación específica de sobrecarga de memoria insuficiente, comenzará a matar procesos en orden descendente de PSS.

        Accidente: accidente

        Otros: cuando ocurre OOM (pérdida de memoria), también pueden ocurrir retrasos en el programa, respuesta lenta, reinicio, ANR, etc.

4.CPU

        Cuando realizamos pruebas de CPU, además de prestar atención a los atributos de rendimiento del dispositivo en sí, también prestaremos atención a la carga de rendimiento del entorno actual; por ejemplo, los usuarios domésticos generalmente tienen WeChat, software de música, software de cámara, etc. Se abren en segundo plano, y los usuarios en algunas áreas del extranjero generalmente las tienen abiertas: Facebook, WhatsApp, Instagram, etc.; al realizar pruebas de rendimiento, además de considerar la presión de rendimiento que la aplicación bajo prueba trae al dispositivo, debes considere también el rendimiento de la aplicación bajo prueba bajo diferentes cargas de rendimiento del dispositivo;

4.1 Puntos de preocupación

        1>Uso general de CPU

        2>Uso de CPU de la aplicación

4.2 Seguir métodos

        1>Herramienta de visualización DDMS propia de Android

        2>Android Studio 3>Calcule la tasa de ocupación a través de los archivos /proc/stat y /proc/<pid>/stat del sistema Linux

        3> Verifique la situación actual de la CPU en tiempo real mediante el comando superior o dumpsys cupinfo y otros comandos.

4.4 Impacto

        En cierta versión de King of Kings en la segunda mitad de este año, encontrarás que hace mucho calor cuando lo juegas. Además de las características de compatibilidad del sistema, el alto uso de la CPU también es una razón para la alta proporción. Cuando prestamos atención al uso de CPU de las aplicaciones, debemos Para garantizar que la ocupación efectiva se controle dentro de un rango razonable, también se debe prestar atención a verificar la fluidez, temperatura, potencia, etc., en diferentes entornos operativos y cargas de rendimiento del equipo;

        Además de afectar el proceso operativo, la temperatura y el consumo de energía, el uso excesivo de la CPU también puede causar problemas fatales como reinicio de aplicaciones, fallas y ANR;

5.FPS

        5.1 FPS (fluidez), que debería ser familiar para los estudiantes que juegan juegos FPS. En teoría, si el FPS cumple con las expectativas del sistema (el sistema Android generalmente requiere que cada cuadro se dibuje dentro de 16 ms), no habrá un retraso obvio; cuando no hay retraso dentro de los 16 ms. Una vez completado el dibujo, se producirá una caída de fotogramas que atraerá la atención del usuario;

        5.2 Impacto

El diseño irrazonable, el dibujo excesivo, la recolección frecuente de basura, etc., son todas posibles razones para provocar caídas de fotogramas. Cuando se producen caídas de fotogramas, los usuarios se sentirán atascados y desordenados; además, habrá desgarros y desplazamientos de la pantalla y otros problemas; en general Para los juegos FPS, este es un indicador muy clave; por ejemplo, cuando juegas al pollo, cada vez que conoces a alguien, se congela. Puede que no sea un problema de red, sino una caída de FPS. Problema de marco ~

6.Renderizado de GPU (renderizado de GPU de perfil)

        6.1 El renderizado de GPU generalmente se refiere al consumo de renderizado de cada cuadro, que generalmente se compone de tres partes: tiempo de dibujo, tiempo de ejecución y tiempo de procesamiento; la mayoría de las máquinas Android tienen la función de depuración del renderizado de GPU;

6.2 Impacto

        El renderizado de GPU generalmente afecta la fluidez de FPS

        Sobregiro de GPU:

        Azul: Sobregirado una vez;

        Verde: Sobregirado 2 veces;

        Rosa: Sobregirado 3 veces;

        Rojo: Sobregirado 4 o más veces.

7.Consumo de energía

        7.1 El consumo de energía de la APLICACIÓN es el consumo de energía total de todos los componentes involucrados durante el funcionamiento de la APLICACIÓN;

        Wakelock: para aumentar la duración de la batería del dispositivo tanto como sea posible, el sistema Android apagará continuamente varios módulos de hardware para ahorrar energía. Cuando queremos realizar una solicitud de red mientras la aplicación está en suspensión, primero activaremos el dispositivo y luego realizaremos una solicitud de red. Después de un período de tiempo, el dispositivo entrará lentamente en el estado de suspensión nuevamente;

        Cuando el dispositivo se ejecuta en primer plano, el uso de la CPU (E/S, procesamiento de cosas), la red (cantidad de datos transmitidos por la red), varios sensores (giroscopio, GPS), etc., determinan la potencia de la aplicación. ranking de consumo;

        7.2 Impacto

        El consumo de energía excesivo y rápido afecta la disposición de los usuarios a usar en algunos escenarios; podemos optimizar el consumo de energía verificando transacciones innecesarias en el escenario; también podemos posponer tareas no orientadas al usuario y establecer el procesamiento de algunas transacciones Estrategias como el tiempo ( (como hacer una copia de seguridad de los datos durante la carga), o descargar Wi-Fi de recursos específicos, fusionar tareas dispersas, etc., para mejorar la percepción de los usuarios sobre el consumo de energía en situaciones sin carga;

8. Consumo actual

        8.1 Hoy en día, existen muchos software de estadísticas de tráfico en el mercado de aplicaciones de Android, que pueden observar visualmente las estadísticas de consumo de tráfico durante el proceso de ejecución de la aplicación;

        8.2 Dimensiones estadísticas

                1>Wifi

                2>3G/4G/5G

        8.3 Impacto

        Generalmente, los usuarios creen que las aplicaciones con una alta sobrecarga de red no solo consumirán mucho tráfico, sino que también consumirán mucha energía, e incluso culpan a este motivo por problemas como retrasos, sobrecalentamiento y fallas cuando el teléfono móvil está funcionando; por lo tanto, debemos prestar atención al consumo de la red, verificando las solicitudes de recursos innecesarias, el almacenamiento en caché, el tiempo de descarga de recursos, etc., para reducir la percepción de los usuarios sobre un alto consumo de tráfico;

9. Compatibilidad

        9.1 Las pruebas de compatibilidad se refieren a probar si el software puede ejecutarse bien en plataformas de producción de hardware específicas, diferentes software de aplicación, diferentes plataformas de sistemas operativos, diferentes redes y otros entornos.

        9.2 Impacto

        Las diferentes marcas, modelos, resoluciones, CPU con diferentes arquitecturas, diferentes sistemas operativos, etc. de Android afectarán el rendimiento del software.

10. Estabilidad

        10.1 Estabilidad Además de las dimensiones de falla, ANR y rendimiento, también debemos prestar atención a la alta disponibilidad del negocio; en algunos procesos centrales, a medida que aumenta el número de usuarios y el número de visitas comerciales, los problemas de estabilidad son propensos para que ocurra, por lo que la estabilidad de los procesos centrales es muy necesaria.

        10.2 Clasificación

                1> Choque

                2>ANR

                3>Rendimiento

                4>Alta disponibilidad empresarial

        10.3 Impacto

        Una mayor estabilidad no sólo satisfará las necesidades diarias de los productos de los usuarios, sino que también seguirá aumentando la credibilidad del producto. Es uno de los requisitos previos clave para la autopromoción y la autofisión de los usuarios. La estabilidad no sólo afecta la retención y el reembolso, sino que también tiene efectos secundarios. Indicadores de crecimiento: podemos mejorar la garantía de estabilidad y reducir el tiempo necesario para abordar los problemas de estabilidad mediante mecanismos de alerta temprana como el seguimiento y la automatización;

3. Triángulo de desempeño

Antes de que comience la prueba de rendimiento, es muy importante preparar los datos para la prueba de rendimiento, que deben formularse de manera integral en función del país de audiencia del producto, los usuarios objetivo, el entorno del equipo, el entorno de red, etc.;

1. Equipo y Medio Ambiente

        En pruebas de rendimiento anteriores, generalmente primero verificamos los datos relevantes a través de Hive, incluidos los modelos superiores y los sistemas (versiones) superiores cubiertos por los productos actuales, y elegimos los modelos con una mayor proporción para el equipo de recopilación de datos de rendimiento, que puede ser mejor. datos de escenas reales;

        Después de obtener el dispositivo, simularemos los diversos entornos de los usuarios locales según los países que cubre principalmente el producto. Por ejemplo, recopilamos los usuarios que han instalado app_list y luego obtenemos los usuarios de este país, grupo de edad, etc. analizar el sitio web Utilizar los hábitos y ciclos de la aplicación para preparar el entorno;

        Por ejemplo: en una prueba de rendimiento de una aplicación de software de música extranjera que realicé una vez, uno de los dispositivos seleccionó el Redmi Note 4, que tiene la base de usuarios más grande.

        1>Parámetros principales del dispositivo: memoria de 4 GB + memoria flash de 64 GB, frecuencia máxima de CPU de 2,1 GHz, pantalla de 5,5 pulgadas, batería de 4100 mAh, carga de 5 V/2 A, sensores (infrarrojos, giroscopio, sensor de luz ambiental, etc.), GPS, huella dactilar, dual SIM dual standby, MIUI8, etc.

        2>Principales parámetros del medio ambiente:

                2.1>Instalada: Aplicación para probar, Facebook, WhatsApp, instagram, soloP, Messenger, Snapchat, Twitter, Paytm, Zomato, Swiggy, KFC, Pizza Hut, Amazon, My More Store, Big Basket, Google Map, Tinder, Book My Espectáculo, Ferrocarril Indio, Jugnoo, etc.

                2.2>Iniciado: procesos en segundo plano de la aplicación a probar, Messenger, WhatsApp, soloP y algunos servicios básicos de Google y otras aplicaciones;

                2.3>Red: Depende de circunstancias específicas;

2. Escena

        En cuanto a la selección de escenarios de prueba de rendimiento, también clasificamos los cinco procesos principales con mayor cobertura de negocio central enfocándonos en ellos y diseñamos escenarios para estos procesos. Una vez completado el diseño, finalizamos el plan final mediante revisión y optimización de ruta. , etc.;

3.Indicadores

        La mayoría de los indicadores de desempeño tienen dos curvas, una es el promedio de la industria y la otra es la curva de productos competitivos; establecemos los indicadores de desempeño de la versión de stock, generalmente no más bajos que el promedio de la industria, pero también alcanzando los indicadores de productos competitivos; al realizar un período Después de un cierto período de tiempo, debe prestar atención a los indicadores de rendimiento de la versión incremental. Si los datos de rendimiento de la versión actual y la versión anterior son significativamente diferentes, debe analizar si la implementación de la función es razonable, analizar el registro de datos de rendimiento, localizar el escenario del problema y realizar una optimización especial;

4. Herramienta de adquisición de elementos de desempeño

1. Ocupación física

        1.1 Volumen del paquete

                Estadísticas de Jenkins/estadísticas del tamaño del paquete APK

        1.2 Ocupación del espacio (memoria física)

                Estadísticas de aplicación del sistema

2. Hora de inicio

        adb/PerfDog/AirtestIDE

3.PSS (uso de memoria)

        adb/Android Profiler (Android Studio)/PerfDog/soloP

4.CPU

        adb/Android Profiler (Android Studio)/PerfDog/soloP

5.FPS

        adb/GT/PerfDog

6.Renderizado de GPU

        Herramientas de desarrollo del sistema Android/renderizado de GPU de perfiles/PerfDog

7.Consumo de energía

        adb/Historiador de batería/PerfDog

8. Consumo actual

        adb/Android Profiler (Android Studio)/PerfDog

9. Compatibilidad

        Pruebas/automatización en la nube

10. Estabilidad

        Gobernanza/seguimiento/automatización especial

5. Automatización del rendimiento y CI (integración continua)

1. Ocupación física: obtenida utilizando Python u otros lenguajes de escritura;

2. Tiempo de inicio: obtenido usando AirtestIDE (poco+reconocimiento de imagen)+adb;

3. PSS, CPU: utilice AirtestIDE + SoloP para registrar el rendimiento anidado externo de la escena de automatización de la interfaz de usuario y luego analice y calcule los datos de rendimiento mediante scripts de Python;

4. FPS, GPU, consumo de energía, consumo de corriente: de manera similar, puede usar airtestIDE+PerfDog+python para realizar la recopilación automatizada de datos;

5. Integre estas capacidades a través de Jenkins y scripts de shell, y luego integre herramientas de empaquetado existentes, máquinas virtuales o máquinas reales para una integración continua de la automatización del rendimiento;

6. Documentos del apéndice

Prueba de aireIDE

SoloPi

perroperf

adb obtiene parámetros de rendimiento

Instrucciones de uso de la versión de Android de la prueba de rendimiento GT

Tutorial detallado para comenzar con la implementación automatizada de Jenkins

Sólo trabajando duro puedes aprobar, y trabajando duro puedes ser excelente ~

Supongo que te gusta

Origin blog.csdn.net/yaoliang_cui/article/details/132423922
Recomendado
Clasificación