8 votos

¿Por qué Android de Arranque relativamente tan lento?

Esta cuestión es motivo de preocupación para mí (y tal vez muchos por ahí) porque no hay ninguna parte de spinning en mi teléfono.

Mi teléfono tiene un Quad Core, 3 gb de RAM, y mucho espacio de almacenamiento, todos los SSD-como en la naturaleza, con increíbles velocidades de lectura/escritura.

Con todo esto, Android (Tanto KitKat y Lollipop) tarda unos 80 segundos en arrancar hasta su finalización. Se tarda menos en Ubuntu usando systemd o upstart. (algunos usuarios informan de menos de 10 segundos del tiempo de inicio usando Ubuntu con systemd y unos 20 segundos cuando se utiliza Advenedizo, con especificaciones como Intel i5 y la memoria RAM de 8 Gigas)

Así, lo que hace Android de arranque tan lento? Y no hay nada como un usuario, que puedo hacer para acelerar el proceso de arranque?

Edit: según el proceso de arranque explicado (http://android.stackexchange.com/a/29738/27870 ), no parece ser mucha diferencia en el conjunto del proceso de arranque en comparación con los convencionales sistemas operativos como Ubuntu. ¿De dónde Android ir mal en el proceso.

10voto

AADTechnical Puntos 344

Unos años, he trabajado en Android de arranque, optimización del tiempo, como un desarrollador de Android. Obviamente, como parte de este trabajo, lo primero que se necesita para analizar dónde Android pasa el tiempo durante el arranque.

A continuación es una breve conclusiones:

Hardware utilizado : OMAP3430 Board que es igual a la junta de desarrollo en el que el Stock de Android se está actualizando. En comercial real/producción del dispositivo, habrá adicionales de hardware específico. Para visualizar el tiempo de arranque, se utilizó una herramienta de desarrollo llamada bootchart

La mayoría de las veces pasan por Android es en los 2 siguientes áreas:

  1. Cigoto proceso. Cuando el sistema operativo android se inicia iniciar Cigoto proceso, precarga clases para crear un área de memoria compartida para aplicaciones. Este trabajo de proloading de clases de java toma @23 segundos para su realización.

Por qué? Debido a que El cigoto clase de precarga es esencial para el buen desempeño del sistema después de arrancar. Así que una vez que las clases se cargan de todas las aplicaciones, luego en tiempo de ejecución de la aplicación es mucho más rápido.

  1. El administrador de paquetes de servicio. En logcat de salida, podemos ver que el administrador de Paquetes exploraciones 4 directorios. /system/app, /system/framework, /data/app, /data/app-private.

Después, hay un componente llamado Administrador de Actividad que empezar a diferentes servicios tales como servicios de Localización, servicios de Telefonía, etc. Y tarda casi 11 y 12 seg para terminar esto.

Por qué? Porque, El paquete de escaneo puede, en teoría, hacer algo de caché de sus resultados tras el primer inicio y puede comprobar las vulnerabilidades de seguridad.

Si se suman estos 2 veces, es de unos 35 Segundos

Puede hacer caso omiso de estos números en el día de Hoy y la edad, pero el punto que estas cifras indican que es donde Android AOSP código pasa el tiempo durante el arranque. Los oem tienen su propio conjunto de hardware que varía de un dispositivo a otro.

Por supuesto, hay otro tipo de hardware y software inicializaciones que Android necesita hacer después de estos 2 tiempo de consumo de pasos, que pueden extenderse en el tiempo de arranque más.

Y no hay nada como un usuario, que puedo hacer para acelerar el arranque proceso?

No mucho, supongo. El Androide de la comunidad de desarrolladores y fabricantes de equipos originales todavía están trabajando para acelerar el tiempo de arranque, pero como usted puede imaginar, no es fácil y hacer los cambios para optimizar el tiempo de arranque puede terminar causando más de la aplicación en el tiempo de carga durante las operaciones normales, como insinuó por Android marco de ingeniero.

4voto

Shamik Puntos 1780

Android de arranque es lento?

Mi teléfono tiene un Quad Core, 3 gb de RAM ... Android (Tanto KitKat y Lollipop) tarda unos 80 segundos en arrancar hasta su finalización.

Mi teléfono es dual core con 1GB de RAM (Zenfone 4) y nunca tengo ese problema. Arranque en frío en ~60 segundos, reinicio en el 40-ish (CyannogenMod 12.1).

algunos usuarios informan de menos de 10 segundos del tiempo de inicio usando Ubuntu con systemd y unos 20 segundos ...

Depende de la config y lo que se considera "tiempo de arranque". Mi portátil (i5 1ª Generación, 4 GB de RAM con disco giratorio) se considera utilizable (terminado de arrancar) después de unos 90 segundos. Estoy seguro que se puede retrasar/desactivar algunos de los servicios a llegar más rápido tiempo de arranque y de inicio manualmente según sea necesario. Pero en mi punto de vista, basado en mi preferencia, que no cuentan como utilizable.

En PC vs Móvil

Hay algunas diferencias que se deben considerar cuando se comparan entre móvil y pc linux. desde la CPU hasta el núcleo. La mayoría de las notables diferencias:

  • Debido a la naturaleza del dispositivo, móvil de la CPU en su mayoría diseñado con la conservación de energía como principal consideración. Esto afectar en gran medida el rendimiento.
  • Android kernel tienen algunos móviles de características específicas que pueden afectar el tiempo de inicio y el hardware de e/s de acceso.
  • Además, Android kernel conocido a tener problemas de compatibilidad con la línea principal/estable. Esto es principalmente debido a un proveedor de la preferencia de palo con la vieja versión del kernel compatible con los controladores de dispositivos. AOSP Malvavisco pistas 3.18.10 , mientras que los núcleos estables se encuentra actualmente en 4.6.2.

Así, lo que hace Android de arranque tan lento?

¿Por qué no? :)

Si usted tiene acceso a adb y ya habilitar las Opciones de Desarrollador, compruebe el registro de inicio en el uso de

adb logcat -d -b events -v threadtime | grep "boot"

en mi dispositivo, este es el resultado:

bambang@pamungkas ~ % adb logcat -d -b events -v threadtime | grep "boot"
06-08 04:35:01.417   193   193 I boot_progress_start: 9906
06-08 04:35:03.718   193   193 I boot_progress_preload_start: 12208
06-08 04:35:07.838   193   193 I boot_progress_preload_end: 16328
06-08 04:35:08.158   513   513 I boot_progress_system_run: 16647
06-08 04:35:09.880   513   513 I boot_progress_pms_start: 18370
06-08 04:35:10.204   513   513 I boot_progress_pms_system_scan_start: 18693
06-08 04:35:24.487   513   513 I boot_progress_pms_data_scan_start: 32977
06-08 04:35:28.552   513   513 I boot_progress_pms_scan_end: 37042
06-08 04:35:28.696   513   513 I boot_progress_pms_ready: 37186
06-08 04:35:33.088   513   513 I boot_progress_ams_ready: 41578
06-08 04:35:40.755   513   533 I boot_progress_enable_screen: 49244

Como se puede ver, el total de tiempo de inicio de la VM de inicio hasta que la pantalla inicial de dibujo de la ventana de administrador de es ~40 segundos. El tiempo adicional en el firmware y el espacio del kernel (en su vinculados respuesta, traduce esto a paso 1-4) no está incluido.

Observe que se tarda ~18 segundos para el proceso de todo el sistema de la apk (boot_progress_pms_*), traduce esto a ~45% de tiempo de arranque, el cual incluye:

  • limpieza inexistente paquetes del sistema y de la instalación incompleta de los paquetes,
  • la validación de las aplicaciones instaladas,
  • configuración de la ruta de la biblioteca,
  • etc (ver: el código fuente completo de PackageManagerService)

Así, en general, el total de tiempo de arranque es dependiente con el número de paquetes (app) instalado en el dispositivo. Más de la aplicación significa más tiempo de espera durante el síndrome premenstrual proceso. Además, el inicio de las actividades se lleva a ~5 s / 20% de tiempo de arranque. El resto no es ni importante ni modificables de forma segura sin un profundo conocimiento del comportamiento del sistema.

Hay algo que yo pueda hacer para acelerar el proceso de arranque?

  • Probar otras ROM. Sony es uno de los "chicos buenos" que proporcionan un medio ambiente sano para jodida. Recomiendo AOSP o Cyanogen. Acaba de ser conscientes de las limitaciones
  • Prueba, no asuma! Es fácil hacer el supuesto de que Un arranque lento, B es más rápido. Un simple logcat comando como anteriormente se revelan algunas informaciones básicas de arranque tiempo de benchmarking entre ROMs.
  • Si usted sabe lo que está haciendo, Linux Embebido Wiki tiene una lista de posibles ajustes para mejorar el tiempo de arranque.

Sobre la mejora en el tiempo de arranque

En tu comentario

El ARTE fue diseñado para hacer funcionar las aplicaciones más rápido. Que está trabajando en una para que arranque más rápido fuera de la caja?

En mi opinión, ajustar el tiempo de arranque es tanto unnecesarry y proporcionar insignificante de ganancia. Desde su teléfono, en teoría, permanecer la mayor parte del tiempo; es mucho más importante para mantener la estabilidad del sistema (con la desventaja de no proceso de arranque) para garantizar un mayor tiempo de actividad y menos errores.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X