¿Por qué es difícil para los teléfonos Android superar a los teléfonos Apple en términos de rendimiento? Y todos los problemas como multinúcleo.
Sin embargo, el pasante Andrew Munn es un estudiante universitario con especialización en ingeniería de software. No ha trabajado en el equipo de marco del equipo de Android ni ha visto el código fuente de renderizado de Android. no ser 100% exacto. Y también trabajó en el equipo de Windows Phone, por lo que puede estar inconscientemente predispuesto contra Android. Aquí está su opinión sobre por qué la experiencia de Android no es tan fluida como la de iOS.
La razón por la que Android no es tan fluido como iOS no es porque Java GC provoque pausas, ni porque Android ejecute código de bytes compilado por Java, mientras que iOS ejecuta código nativo. La causa principal es que la representación de la interfaz de usuario de iOS utiliza prioridad en tiempo real, mientras que la representación de la interfaz de usuario de Android sigue el modelo informático tradicional de prioridad normal del hilo principal.
Esto puede parecer abstracto y difícil de entender, pero inténtalo. Usando su iPad o iPhone, abra Safari y cargue una página web compleja, como la página de inicio de Sina.com. Cuando la página esté cargada hasta la mitad, coloque el dedo en la pantalla y muévalo hacia la izquierda o hacia la derecha, y notará que todo el procesamiento se detendrá inmediatamente y la página no continuará cargándose hasta que retire el dedo. La página no se recargará hasta que retires el dedo.
Repita esto en un dispositivo Android y encontrará que el navegador continuará intentando cargar la página y renderizar el HTML, intentando realizar múltiples tareas al mismo tiempo, razón por la cual se necesita un eficiente procesador de doble núcleo. También es importante para Android. He aquí por qué el Galaxy S II funciona tan bien.
En iOS, el proceso de representación de la interfaz de usuario tiene prioridad absoluta. Cuando el usuario toca la pantalla táctil del iPhone, todos los procesos en iOS se detendrán, el hilo de la interfaz de usuario interceptará todos los eventos y el sistema utilizará todos los recursos. La representación del proceso de la interfaz de usuario para garantizar que la representación en tiempo real de la interfaz de usuario tenga prioridad. En Android, la prioridad del proceso de representación de la interfaz de usuario no es tan alta, lo que significa que cuando tocas la pantalla del teléfono Android, los programas en segundo plano del sistema no se detienen, sino que continúan ejecutándose, como la descarga y verificación de información de texto, para que el interfaz de usuario del sistema No hay suficientes recursos, por lo que el sistema Android no funciona correctamente.
Debido a esto, el recién lanzado Galaxy Nexus o incluso la tableta EeePad Transformer Prime equipada con un procesador de cuatro núcleos no pueden garantizar una experiencia operativa fluida, y la fluidez de estos dispositivos solo se puede comparar con la de Hace 3 años, el iPhone está a la par, entonces, ¿por qué el equipo de Android no resuelve fundamentalmente este problema?
¿Por qué el equipo de Android no resuelve fundamentalmente este problema?
Además de la presentación de la interfaz de usuario, la falta de aceleración de hardware efectiva de Android también es una razón. Los diferentes teléfonos con Android tienen grandes diferencias en la aceleración de hardware, y Apple es la única empresa de computadoras portátiles que produce solo hardware y software. Apple puede incorporar optimizaciones de software en el hardware para que los dispositivos basados en chips de Apple no sólo sean energéticamente eficientes, sino también fluidos.
De hecho, el desarrollo de Android comenzó antes del lanzamiento del primer iPhone, y el prototipo original de Android era un dispositivo que usaba un teléfono con teclado y competía con el BlackBerry.
En teléfonos que usan teclados, el nivel de prioridad de representación de la interfaz de usuario es menos importante. Pero después del lanzamiento del iPhone, el equipo de Android rápidamente cambió Android a un sistema de telefonía móvil con pantalla táctil para lanzar rápidamente productos que pudieran competir con el iPhone. Sin embargo, en este momento, ya no era posible reescribir el marco de la interfaz de usuario. Porque si este es el caso, todos los programas en el mercado de aplicaciones de Android no estarán disponibles y la relación entre las dos partes siempre estará en un círculo vicioso.
(La pseudociencia de este pasante es realmente buena, lo siguiente es una refutación)
Según este pasante, la interfaz de usuario de Android no es fluida debido a que la interfaz de usuario responsiva no tiene suficiente prioridad y Google ¿No lo está mejorando porque teme afectar las aplicaciones ya lanzadas?
Esta persona no comprende en absoluto el mecanismo de control de procesos de ios y Android, y no sabe que la prioridad de la interfaz de usuario en ios es la más alta (risas, ¿cuándo tuvo la prioridad de la interfaz de usuario en ios la prioridad más alta? (Obviamente es la prioridad de interrupción del sistema El nivel más alto), en realidad dijo cosas tan ridículas como que Android mantiene los procesos en segundo plano en ejecución cuando toca la interfaz de usuario. Me pregunto si alguna vez se quedó en Google. Dudo que haya pasado algún tiempo en Google. Incluso si dice que las prioridades de la interfaz de usuario son razonables, es poco probable que cambiar las prioridades envíe al programa a un círculo vicioso. Si comprende la arquitectura de Android, debe saber que el procesamiento de gráficos (parte prioritaria) se encuentra en la penúltima capa de Android, que es el núcleo. El diseño de Android tiene un bajo acoplamiento entre capas y cada capa solo se basa en interfaces. En la siguiente capa, los cambios dentro de la capa no afectarán en absoluto el comportamiento fuera de la capa.
En pocas palabras, al igual que cuando vas al mostrador del banco, tienes que ir a la ventanilla de divisas para solicitar divisas y tienes que ir a la ventanilla de bonos para solicitar bonos. el banco maneja su solicitud internamente es asunto suyo. Solo necesita enviarla. Simplemente cargue sus datos y reciba los resultados. Los cambios en el personal interno del banco no afectarán sus asuntos. Si se trata, como dijo el pasante, de un problema con la prioridad del marco de la interfaz de usuario, Google puede fácilmente aumentar directamente la prioridad sin afectar ningún programa existente, porque actualmente no existe ningún programa que pueda eludir el marco del programa de Android y llamarlo directamente. método de la capa inferior de UI, por lo que la mejora de la capa inferior no causará molestias en la compatibilidad de la capa superior. Y no aumentará ningún costo de producción.
Pero ¿por qué todavía parece que Android va más lento que iOS? Creo que es una sensación de estar "atascado" (muchas personas han sido adoctrinadas en el pensamiento de que Android tiene retrasos y menos que iOS, y si lo escuchas demasiado, tus propios sentimientos no serán exactos), entonces, ¿por qué? Android es menos lento que iOS, hay muchas opiniones "científicas y de expertos". "Creo que además de la dialéctica, también deberíamos utilizar una perspectiva de desarrollo para explicar por qué Android es inferior a iOS. Creo que además de la dialéctica, también debemos utilizar una perspectiva de desarrollo para analizar este problema.
Al principio, Android no estaba tan optimizado como iOS, esto se debe al concepto de diseño y la antigüedad del producto (Android fue adquirido por una empresa en 2007 y el sistema no se había verificado en la práctica antes de eso). , mientras que iOS ha sido un producto de Apple desde la era Mac) y su hardware es mucho menor que el del iPhone, junto con su apertura y libertad, por lo que cualquier fabricante con una mezcla de cosas se unirá, mientras que los proveedores de componentes están dentro. Situación desesperada, lo que resultó en niveles desiguales de productos. La comprensión de la brecha entre Android e iOS también se estableció en ese momento. Mire el iPhone, que solo sale un año, ya sea software o hardware, hay suficiente tiempo por parte del proveedor. Desde la selección hasta la producción, todo es un ajuste fino. En otras palabras, el campo de Android va desde la gama baja hasta la gama alta, y la gama baja es abundante y desordenada, mientras que la gama alta es escasa e imprecisa. El iPhone es solo de gama alta, lo que deja la impresión generalizada de que Android no es tan bueno como iOS. De hecho, en comparación con los productos iOS de esta época, es cierto que los productos Android no son tan buenos como el iPhone.
Pero en los últimos años, el hardware de Android básicamente ha superado al del iPhone, pero ¿por qué sigues pensando que es más difícil de usar que iOS? Además de los factores psicológicos restantes mencionados anteriormente, personalmente creo que esto no tiene nada que ver con Android en sí, ni es tan simple como la optimización del sistema operativo. Es un problema de hardware, de hecho, a nadie le importa especialmente este problema, pero lo que quiero decir es que es como el tiempo de respuesta del monitor, si el tiempo de respuesta es rápido, la reproducción será fluida y sin manchas. .
Las pantallas capacitivas también tienen un tiempo de respuesta y tienen requisitos de alto voltaje para el entorno de trabajo. Las pantallas capacitivas comunes responden relativamente lentamente, solo entre 50 y 100 ms, y responden incluso cuando el voltaje es inestable. más lento y el tiempo de respuesta de la pantalla capacitiva del iPhone 4 es de 10 a 20 ms. La diferencia de casi 80 ms es menos de una décima de segundo, pero en la experiencia real esto afectará la experiencia intuitiva de las personas. Otro factor es el material de vidrio de la pantalla táctil. Cuanto mayor es la dureza, más suave es, lo que se puede medir según el coeficiente de amortiguación y el coeficiente de fricción. Lo mismo ocurre con las superficies de los espejos. Cuanto mayor sea la dureza, más suave será el material al tocarlo. El iPhone usa Gorilla, con una dureza de 7. Cuando está desnudo, se siente suave al tacto sin ningún retraso. Además, la mayoría de las personas que compran iPhones gastarán más en aplicar una película (yo gasté 129 en la película). y la película también tendrá repercusión. A los ojos de la gente común, hay muy pocas personas que usan Gorilla Film en sus teléfonos Android, y menos aún que están dispuestas a aplicar bien la película. Tampoco se siente tan bien como el iPhone.
Mi experiencia personal es que la interfaz de usuario de Android en realidad carece de demasiados efectos de animación, como los detalles del cambio de interfaz (observe con atención, cuando la interfaz de iOS cambia, además de la ventana que se mueve, la barra de título y Los controles de arriba también se mueven a diferentes velocidades y se sienten muy ágiles y delicados, como nubes que fluyen y agua que fluye), lo que crea una sensación abrupta al operar. De hecho, desde una perspectiva táctil, siento que no hay diferencia perceptible entre conejo y conejo. Obviamente, si tienes programas en segundo plano en tu iPhone, o estás ejecutando muchos programas, experimentarás un retraso al cambiar de una interfaz a la siguiente, y es muy notable.
El último punto importante a agregar es que iOS es un desarrollo pseudo-multiproceso, Android presta más atención al modelo de programación e iOS presta más atención a la experiencia del usuario. Android coloca el renderizado (controles) en la aplicación (en proceso) y el renderizado entre procesos (deslizador de superficie) en diferentes módulos y espacios, lo que conduce a cambios de hilo de animaciones demasiado frecuentes.
Android necesita un chip de mayor rendimiento para lograr el mismo efecto que iOS. Al mismo tiempo, hacer coincidir el renderizado se ha vuelto muy complicado, por lo que la rotación de la pantalla en iOS no ocurre al cambiar entre pantallas horizontales y verticales; animación.