Время загрузки Android с точностью до мксAndroid

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

Сообщение Anonymous »

Это факт, что и время безотказной работы -s, и Kotlin:

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

object X {
private val startTime = Clock.System.now()
private val androidBootTime = startTime - SystemClock.elapsedRealtime().toDuration(DurationUnit.MILLISECONDS)
с X, на который ссылается подкласс Application,
возвращает точность около ±10 секунд, т.е. разные вызовы приводят к разному времени загрузки для одного и того же сеанса загрузки.
Существует ли образец кода Kotlin, обеспечивающий время загрузки с точностью до микросекунды?
Что такое максимально достижимая точность времени загрузки Android?
Фактом также является то, что определить время запуска вашего приложения можно только по статической метке времени, все другие интеллектуальные средства не работают при кэшировании Android. и намеренная медлительность
Уникификаторы загрузки Android
Обновление от 29 октября 2024 г.:
есть счетчик загрузки Android 7 + уровень API 24+

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

int boot_count = Settings.Global.getInt(getContext().getContentResolver(),
Settings.Global.BOOT_COUNT);
есть uuid загрузочного сеанса:

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

cat /proc/sys/kernel/random/boot_id
c4dfb88f-2a9a-49cf-a649-291b4969db88
есть btime, секундная точность эпохи Unix:

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

cat /proc/stat | grep btime
btime 1729814103
При плохой загрузке Android с резервной батареей время может быть неправильным
видимо, читается uptime -s

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

cat /proc/uptime
408824.96 624814.45
чтобы между двумя показаниями часов можно было получить некоторую точность, например, взять среднее значение, округлить до ближайшей секунды или что-то в этом роде, если разница во времени меньше мс или около того.
Путь вперед — это приемник загрузки и периодическое чтение унификатора, первое расчетное значение времени загрузки, которое считается авторитетным. эмпирические данные для выбора метода
Проблемы с пользовательским интерфейсом
Пользовательский интерфейс Android также может перезапуститься. Я обнаружил две ситуации в logcat:
  • WATCHDOG уничтожает застрявший поток пользовательского интерфейса
  • DeadSystemException
Если в приложении есть фоновая служба с перезапуском, которая никогда не должна завершаться, это может быть обнаружено
может быть полезно передать logcat в потоковую передачу SD-карта емкостью 150 МБ, 1 М строк в день
Выводы 29 октября 22024 г.
Я буду использовать унификатор загрузки и первое рассчитанное время загрузки
Это все, что может сделать Android.
.
Счетчик загрузки работает до сброса 1…UUID загрузки работает
/proc/uptime так же плохо, как Android SystemClock.elapsedRealtime
/proc/stat не читается без root-прав, но btime с точностью до секунды (при хорошей батарее настоящий Android)

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-accuracy
Ответить

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

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

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

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

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