В какое именно время лучше всего вызывать reportFullyDrawn?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 В какое именно время лучше всего вызывать reportFullyDrawn?

Сообщение Anonymous »

Справочная информация
Я нашел совет о том, что вызов Activity.reportFullyDrawn может помочь сократить время запуска приложений, и это упоминается в некоторых местах: Вот что там написано:

Вызовите reportFullyDrawn(), чтобы сообщить о TTFD и сообщить системе, что ваша деятельность завершила рендеринг . Чтобы улучшить запуск приложения, система Android настраивает оптимизацию, расставляя приоритеты работы, выполняемой до вызова reportFullyDrawn(). Вызов этого метода, когда ваше приложение находится в полностью пригодном к использованию состоянии, улучшит время запуска вашего приложения. Каждое приложение должно использовать этот API! И не забудьте измерить его.


Сообщите системе, что ваше приложение теперь полностью прорисовано, для диагностики и целях оптимизации. Система может корректировать оптимизацию, чтобы расставить приоритеты в работе, выполняемой до вызова reportFullyDrawn, чтобы улучшить запуск приложения. Искажение окна запуска путем слишком позднего или слишком раннего вызова reportFullyDrawn может снизить производительность приложения и запуска.
Это также используется для определения времени запуска приложения, чтобы приложение могло сообщить, когда оно будет запущено. полностью в рабочем состоянии; без этого единственное, что может определить сама система, — это точка, в которой окно активности впервые отрисовывается и отображается. Чтобы участвовать в измерении времени запуска приложения, вам всегда следует вызывать этот метод после первого запуска (когда вызывается onCreate(android.os.Bundle)), в тот момент, когда вы полностью отрисовали свой пользовательский интерфейс и заполнили его всеми важными данными. Вы также можете безопасно вызвать этот метод в любое время после первого запуска, и в этом случае он будет просто проигнорирован.
Если этот метод вызывается до того, как окно активности впервые отрисовывается и отображается как измеренное системой время, указанное здесь, будет сдвинуто к измеренному системой времени.

Проблема
Я ни в одном из них не могу найти, в какое время лучше всего вызывать эту функцию.
Что я пробовал
Я пытался поискать код других приложений, чтобы проверить здесь, на StackOverflow, и спросить на Reddit. В документации я вижу только то, что вам следует всегда вызывать этот метод после первого запуска (когда вызывается onCreate(android.os.Bundle)) .
Но при какой там момент...
Я не смог найти ни одного примера кода, который бы ее использовал, и здесь, на StackOverflow, эта функция почти не упоминается. Кажется, это небольшой совет, как улучшить то, о чем люди обычно не беспокоятся...
Вопросы
1.Когда мне следует вызвать reportFullyDrawn?
В конце каждого onCreate действия? Или в каком-нибудь обратном вызове, например в onPreDraw этого:

Код: Выделить всё

val contentView = findViewById(android.R.id.content)
contentView.viewTreeObserver.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
...
?
Или, может быть, после setContentView или внутри него?
Или что-то еще, например, после завершения работы заставки?
2. Действительно ли это улучшает что-либо в работе приложения? Или просто для статистики, которая появляется на различных веб-сайтах, таких как Play Console и Firebase Analytics? Вы тоже его использовали? Заметили разницу?
  • И только это здесь помогает? Больше ничего не нужно? Если да, то почему Android не делает этого автоматически, если это так приятно и легко добавить?


Подробнее здесь: https://stackoverflow.com/questions/786 ... fullydrawn
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»