Android: Obtención de la lista de aplicaciones del dispositivo – Muy lento
Tengo que obtener la lista de todas las aplicaciones instaladas en el dispositivo dentro de 5-10 segundos después de que el usuario abra mi aplicación.
Esto es porque, toma aprox. 5-10 segundos para un usuario típico de mi aplicación Android, para solicitar la información sobre las aplicaciones instaladas en un dispositivo.
- ¿Cómo puedo cambiar el aspecto del cuadro de diálogo ListPreference?
- Diálogo de lista personalizada de Android
- Lista de comparación <String >
- Obtener la lista de aplicaciones de Android instaladas
- ListView cambiar el texto en el elemento de clic
Para ser relevante, tengo que crear una copia nueva de la lista de aplicaciones instaladas cada vez que se carga mi aplicación.
Sin embargo, el uso de código a continuación toma más de 30 segundos en un dispositivo Android de cuatro núcleos con aprox. 400 aplicaciones (sistema e instalado – necesito ambos).
Tenía el código de ejecución en 'en crear', pero nadie esperaría 30 segundos para abrir la aplicación. Así que lo he movido a AsyncTask, sólo para que mi aplicación se abre inmediatamente. Pero aún así, se tarda +30 segundos; Y si alguien solicita una aplicación específica antes de cargar la lista, es posible que no obtengan la información correcta.
¿Por qué este código es tan lento? ¿Y qué puedo hacer para acelerar esto? Voy a pagar en oro a cualquiera que pueda hacerlo 10 veces más rápido o darme un buen consejo.
final PackageManager pm = getPackageManager(); List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo packageInfo : packages) { InstalledAppsName.add(packageInfo.loadLabel(pm).toString()); CountApps=CountApps+1; }
- Visibilidad de vista para Android en ListAdapter
- EditText llama aFocusChanged tres veces en vez de una vez
- Cómo comprobar si un Array contiene un término específico - Android
- Iconos en un diálogo de lista
- Aplicación de presupuesto de Android, botones siguientes y posteriores
- Android: diseño de vista personalizada para SectionIndexer e inhabilitación de SectionIndexer sobre la marcha
- Lista de guardar de Android <String>
- ¿Cómo puedo crear DialogFragment de ListActivity en Android?
Vea PackageInfo LoadLabel rendimiento lento
Conseguir la etiqueta está tomando tanto tiempo, porque (creo) que necesita ser cargado desde el APK. Usted podría mientras tanto apenas mostrar los nombres del paquete y paso a paso reemplazarlo con la etiqueta.
- Problema con el espacio en blanco de Android TabWidget
- Android Frame by Frame Problema de animación en elementos en un CursorAdapter