Descripción general de la optimización del rendimiento del sistema Android

Tabla de contenido

introducción:

Optimización de la aplicación:

Optimización de la red:

Optimización de la memoria:

Optimización de catones:


introducción:

En primer lugar, haga una clasificación y clasificación sencillas de la optimización del rendimiento de Android. Debido a muchos factores que afectan el rendimiento, por ejemplo, las aplicaciones, la memoria, la red y los bloqueos clasificados en este artículo se afectan entre sí. Caton debería ser el problema de rendimiento más intuitivo y visible para los usuarios.

La optimización de la aplicación se centra en los tres aspectos del inicio, el dibujo de la interfaz de usuario y la optimización de recursos.

La optimización de la memoria se centra en la fluctuación de la memoria, las pérdidas de memoria y las consideraciones de expansión de la memoria.

La optimización de la red se considera desde los aspectos de solicitud de red y compresión de datos.

La optimización de los tres aspectos anteriores favorece la solución del problema de congelación de nuestro sistema. El usuario percibe intuitivamente la congelación que acabamos de mencionar. Desde la perspectiva de la visualización, el problema de congelación se debe a la pérdida de fotogramas. Este artículo no ampliará ni explicará el principio de actualización de la pantalla por el momento.


Optimización de la aplicación:

    Optimización del diseño de la optimización de la interfaz de usuario (optimización del diseño, optimización del dibujo)
        : RelativeLayout reemplaza a LinearLayout como el diseño raíz predeterminado. Reduzca los diseños anidados y mejore la eficiencia de representación Las
        etiquetas <include> Las
        etiquetas <ViewStub> cargan diseños poco comunes, retrasan la carga
        Las etiquetas <merge> reducen los niveles de anidamiento del diseño
    Optimización del paquete de instalación (optimización de archivos de recursos res)
        reduce el volumen optimización         del código de
        recursos res Optimización:         optimización de recursos lib:         Ofuscación de código         de optimización de recursos de activos         Utilice la herramienta de ofuscación de código proGuard, que incluye compresión, optimización, ofuscación y     otras         funciones .






        Inicio en frío, inicio en caliente, los subprocesos que consumen mucho tiempo utilizan subprocesos para ejecutarse

        Lógica de inicio, lógica de carga,
        los objetos no esenciales se pueden inicializar de manera perezosa,
        no cree objetos estáticos globales, sino que cambie al modo singleton, de modo que el proceso de aplicación solo necesite inicializarse por primera vez.
        Considere el marco de inyección de dependencia
        

Optimización de la red:

    Fusione solicitudes de red, reduzca las solicitudes de red,
    evite el análisis de DNS,
    cargue una gran cantidad de datos, use
    datos de red paginados, use compresión GZIP
    para agregar caché de datos de red, evite solicitudes frecuentes a la red
    para cargar imágenes y comprima imágenes cuando sea necesario
    

Optimización de la memoria:

    Evite pérdidas de memoria: los objetos de larga duración se refieren a objetos de corta duración. Los objetos asignados en el montón ya no se utilizan, pero el recopilador de GC no puede reclamarlos.
    Problema de variable estática: establezca la clase interna como una clase interna estática o use context.applicationContext() como
    modo singleton de forma independiente: pase parámetros a la
    propiedad context.getApplicationconText() animación: Activity.onDestroy llama a Animation.cancel()
    Controlador: use estática clase interna + referencia débil de WeakReference; borre la cola de mensajes cuando la clase interna finalice su ciclo de vida Problema de subproceso
    : configure AsyncTask y Runnable como clases internas estáticas o sepárelas, use referencias débiles dentro del subproceso para guardar el
    recurso de referencia de contexto no está cerrado: incluso si se cierra cuando se destruye la actividad O cerrar sesión:
        BroadcastReceiver llama a unregisterReceiver()
        Cursor, flujo, archivo: llame a cerrar
    Problema del adaptador:
        vuelva a crear una instancia del elemento cada vez sin usar el caché y solo confíe en getView(), que creará presión sobre GC Utilice convertView     Problema de WebView
        al construir Adaptador     : hay referencias estáticas en el mapa, etc., y no se realiza ninguna operación de eliminación


    Ampliar la memoria: agregue el atributo largeHeap="true" a la aplicación en el archivo de manifiesto; la misma aplicación inicia varios procesos para ejecutarse, lo que puede aumentar el espacio de memoria total de la aplicación.        


Optimización de catones:

    No realice acceso a la red ni operaciones de E/S de archivos grandes en el hilo principal
    Optimice el diseño
    y optimice el dibujo: evite redibujar y sobredibujar innecesarios
        enDraw No cree nuevos objetos locales.
        No realice operaciones que requieran mucho tiempo en el método onDraw
 


 

Supongo que te gusta

Origin blog.csdn.net/haigand/article/details/132506650
Recomendado
Clasificación