Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Medir el tiempo empleado en las aplicaciones de Android

Soy nuevo en android. En mi aplicación, quiero seguir durante cuánto tiempo se utilizan otras aplicaciones (que se instalan en el dispositivo) (en primer plano).

¿Es posible? En caso afirmativo, ¿cómo?

¡Gracias por adelantado!

  • En Android, compruebe si la base de datos sqlite existe falla de vez en cuando
  • Android: Mide / detecta el área cubierta con un toque de dedo en la pantalla (no solo las coordenadas táctiles)
  • Llamadas de método de burla usando power mockito - org.powermock.api.mockito.ClassNotPreparedException
  • ¿Se pueden combinar las cadenas de recursos de android en nuevas cadenas?
  • ¿Qué significa 'SRPy' en la documentación de Mockito
  • Reloj de 24 horas no funciona en formato dateformat android
  • Cómo construir numpy para Py4A?
  • ¿Código fuente de la aplicación Android de Google Chrome?
  • 2 Solutions collect form web for “Medir el tiempo empleado en las aplicaciones de Android”

    Lo primero, que es necesario conocer aquí es lo que son las aplicaciones que se ejecutan en primer plano:

    Puede detectar la aplicación de primer plano / fondo con la llamada ActivityManager.getRunningAppProcesses() .

    Por lo tanto, se verá algo como ::

      class findForeGroundProcesses extends AsyncTask<Context, Void, Boolean> { @Override protected Boolean doInBackground(Context... params) { final Context context = params[0].getApplicationContext(); return isAppOnForeground(context); } private boolean isAppOnForeground(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses(); if (appProcesses == null) { return false; } final String packageName = context.getPackageName(); for (RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) { return true; } } return false; } } // Now you call this like: boolean foreground = new findForeGroundProcesses().execute(context).get(); 

    Probablemente también puede comprobar esto: Determinación de procesos en primer plano / de fondo .

    Para medir el tiempo que toma un proceso para ejecutar su debido curso, puede utilizar este método:

     getElapsedCpuTime() 

    Consulte este artículo .

    Creo que la única forma de hacerlo es utilizando un servicio de fondo y buscando continuamente qué aplicación está en primer plano (es posible mediante ActivityManager).

    Pero esta solución es costosa en baterías

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.