Código abierto: Hardcoder: aplicación de Android y solución de comunicación entre sistemas
El nacimiento de Hardcoder
A medida que WeChat se vuelve cada vez más complejo, la optimización del rendimiento se vuelve cada vez más difícil y el efecto de mejora aportado por la optimización se vuelve cada vez menos obvio. Por eso siempre estamos pensando en cómo superar los límites de esta optimización.
Hasta la comunicación con los fabricantes, supimos que algunos fabricantes harán algunos pequeños cambios en WeChat, uno de los más típicos es "aumentar la frecuencia de la violencia". Cuando el sistema reconoce que WeChat se está iniciando o cambiando de página, aumentará violentamente la frecuencia de la CPU para mejorar el rendimiento de la aplicación.
Sin embargo, debido a que los fabricantes no pueden determinar con precisión los escenarios de uso de WeChat, el efecto del aumento violento no es ideal y si la frecuencia de la CPU aumenta demasiado, también tendrá un impacto en el consumo de energía de; el teléfono móvil. Esta situación nos inspiró a saltar del campo del software y explorar una mayor optimización del rendimiento en el hardware de los teléfonos móviles. Nació el marco Hardcoder.
Qué es Hardcoder
La razón por la que la fuerza bruta del proveedor no funciona es que, bajo el marco actual de Android, el teléfono no sabe exactamente cuándo una aplicación necesita recursos. Si necesitamos optimizar el rendimiento a nivel de hardware, debemos omitir el marco de aplicaciones del sistema operativo Android y abrir un canal entre los desarrolladores de aplicaciones y el hardware para que el hardware pueda programar recursos directamente de acuerdo con las necesidades de los desarrolladores de aplicaciones.
Hardcoder crea un marco de comunicación confiable entre la aplicación y el sistema (ROM), superando el problema de que la aplicación solo puede llamar a la API estándar del sistema pero no puede llamar directamente a los recursos de hardware subyacentes del sistema, logrando Real- comunicación en tiempo real entre las aplicaciones de Android y el sistema.
A través de Hardcoder, la aplicación puede programar completamente los recursos del sistema, como la frecuencia, el tamaño y el núcleo de la CPU, la frecuencia de la GPU, etc., mejorando así el rendimiento de la aplicación, y el sistema también puede obtener más información del lado de la aplicación en Para que sea más razonable Proporciona varios recursos del sistema. Al mismo tiempo, para las funciones para las que Android carece de implementación de interfaz estándar, las aplicaciones y los sistemas también pueden implementar la adaptación del modelo y la expansión de funciones a través de este marco.
Proceso de comunicación del marco Hardcoder
El marco Hardcoder se divide en lado del servidor y lado del cliente. El lado del servidor se implementa en el lado del sistema del proveedor y el lado del cliente se integra en la aplicación en forma de aar.
Cuando la aplicación necesita recursos, enviará una solicitud al cliente Hardcoder. Después de recibir la solicitud, el cliente la enviará al servidor Hardcoder. Después de recibir la solicitud, el servidor realizará diferentes solicitudes. el hardware de acuerdo con los parámetros de solicitud, como ajustar la frecuencia de la CPU, vincular subprocesos a núcleos grandes, etc.
El marco Hardcoder se divide en dos partes: lado del servidor y lado del cliente. El servidor Hardcoder solicitará diferentes recursos del hardware según los parámetros de solicitud, como ajustar la frecuencia de la CPU, vincular subprocesos para ejecutarlos en núcleos grandes, etc.
Al mismo tiempo, el sistema también puede notificar al Cliente sobre el estado actual del sistema a través de la devolución de llamada de la interfaz registrada por el Cliente Hardcoder en el lado del Servidor, de modo que la APLICACIÓN pueda acceder al estado del sistema y realizar la comunicación. entre el sistema y la APP.
El cliente y el servidor de Hardcoder se comunican mediante LocalSocket. Dado que Hardcoder se implementa utilizando Native, utiliza la interfaz de socket de Linux en la capa C para implementar un mecanismo LocalSocket como método de comunicación entre el cliente y el servidor. Hardcoder utiliza implementación nativa.
El marco de comunicación de Hardcoder tiene las siguientes funciones:
Escenarios y efectos de la aplicación Hardcoder
El marco de Hardcoder puede mejorar efectivamente la recarga del inicio de WeChat, el envío de videos, iniciar aplicaciones, etc. La velocidad de la escena. El efecto de optimización es del 10% al 30%.
Además, debido a que WeChat es el solicitante activo, Hardcoder puede controlar los recursos de la escena de manera más cuidadosa y precisa, mientras solo mejora el rendimiento en un 2%, lo que equivale a intercambiar el 2% del consumo de energía por un promedio del 20%. Mejoras de rendimiento.
El marco Hardcoder ahora está disponible en los principales fabricantes de teléfonos móviles como OPPO, vivo, Huawei, Xiaomi, Samsung y Meitu, abarcando más de 460 millones de dispositivos.
Hardcoder es de código abierto
A partir del concepto de apertura de la tecnología WeChat, hemos publicitado y promovido el marco Hardcoder dentro de Tencent. Actualmente, existen QQ móvil, WeChat empresarial y Tiantian. Kuaibao Acceso a múltiples aplicaciones. Después de conectar QQ móvil al código físico, el efecto de optimización promedio alcanza entre el 10% y el 50% en escenarios como el inicio, la apertura de la interfaz de chat y el envío de imágenes.
Actualmente, estamos haciendo que el marco Hardcoder sea de código abierto para que más desarrolladores de Android puedan disfrutar del valor del marco Hardcoder y resolver los problemas de optimización del rendimiento y adaptación del modelo. Bienvenido a ver el sitio de github:
/Tencent/Hardcoder.git
Cómo usar Hardcoder
1. Comprenda los principios del marco de Hardcoder a través de la introducción de la solución técnica Hardcoder;
2. Utilice el marco Hardcoder para resolver problemas de optimización del rendimiento y adaptación del modelo. p>
2. Utilice la aplicación de prueba que viene con el proyecto para usar rápidamente Hardcoder y verificar el efecto. Consulte la Guía de prueba de Hardcoder Testapp
3. Para acceder a Hardcoder desde; la APLICACIÓN, consulte la Guía de acceso de Hardcoder:
4. Solicite permisos en línea al fabricante, consulte las preguntas frecuentes
5.
Adjunto el enlace a la documentación wiki: