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 mostrar la lista de alertas de notificación una por una de la actividad?
- Android QuickContactBadge con letras como Android Lollipop
- Método Call Activity del adaptador
- List namevaluepair elements
- Buenas prácticas para ordenar una lista con una de las cuatro reglas
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; }
- Kotlin: Cómo trabajar con Casts de listas: Desmarcado Cast: kotlin.collections.List <Kotlin.Any?> A kotlin.colletions.List <Waypoint>
- Tipo de lista para almacenar tipos de datos Multipe
- Lista sin fin de Android
- ¿Cómo puedo crear DialogFragment de ListActivity en Android?
- Android: Cómo ocultar un elemento ListView
- Cómo personalizar los elementos de la lista en un AlertDialog de Android
- Android Cómo saber qué casilla de verificación está seleccionada
- Usando limit () y offset () en QueryBuilder (ANDROID, ORMLITE)
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