Что показывает статистика JobScheduler
У меня запланирована повторяющаяся работа с использованием API JobScheduler в Android 7.0.
Пожалуйста, помогите мне понять следующий вывод команды adb shell dumpsys jobscheduler -
u0a66 /
2 ответа
Работа может быть в pending
, active
а также active-top
государство.
u0a66 / package.name: 58x pending 5% 52x active
линия означает, что в течение указанной продолжительности package.name
имеет 58
рабочие места в pending
состояние (которое было pending
менее чем на 0,5% от общей продолжительности), 52
рабочие места в active
состояние (которое было active
на 5% от общей продолжительности) и 0
рабочие места в active-top
государство.
58 незавершенных заданий и 5 % (из 52 запущенных заданий) завершены. / * 5% выполненных заданий хранятся в очереди CompletedJobs для отслеживания */
adb shell dumpsys jobscheduler >> output.txt
gedit output.txt //read the complete output to get concepts
Обычно х используется для представления числа (как часто).
У меня есть вывод что-то, как показано ниже:
Current stats at 2017-07-25-01-42-38 (-5m30s657ms) over +5m30s657ms:
1000 / android: 2x pending 1x active
u0a14 / com.google.android.gms: 1x pending 1% 1x active-top
u0a66 / com.google.android.apps.photos: 3x pending 1x active
Max concurrency: 3 total, 1 foreground
Синтаксис:
/*<Uid> <reference> <app_name>: <% completed> <pending_jobs_count> <% completed>
<active_jobs_count> <status_that_tells_if_active_job_is_at_top_of_queue> */
Это общее понимание того, как это должно быть. Я не могу предоставить вам ссылку, поэтому я также не уверен на 100%. Я просто поделился с вами своим мнением.
JobScheduler должен эффективно поддерживать параллелизм (от уровня потока - так называемые задания). Даже для одной и той же программы может быть несколько процессов (например, служба может запускаться из другого процесса) и несколько потоков. В конечном итоге все эти потоки помещаются в ThreadPoolExecuter, и их операции планируются.