Почему часы эмулятора Android не соответствуют часам системы хоста? Он не разность часовых поясов - он всегда отключается на несколько минут.
Есть ли способ синхронизировать их, кроме того, вручную устанавливая время эмулятора?
Почему часы эмулятора Android не соответствуют часам системы хоста? Он не разность часовых поясов - он всегда отключается на несколько минут.
Есть ли способ синхронизировать их, кроме того, вручную устанавливая время эмулятора?
Я считаю, что синхронизировать время невозможно. По умолчанию образ эмулятора устанавливается в UTC/GMT (+00: 00). Однако вы можете изменить его на свой.
Вот изображение того, как это сделать: Сначала снимите флажок "Автоматический часовой пояс" (красная стрелка), затем щелкните "Выбранный часовой пояс" (зеленая стрелка) и, наконец, выберите свой часовой пояс, и он должен соответствовать таковому в вашей системе (желтая стрелка).
Если между временем AVD и хостом возникают некоторые расхождения, в основном после перезапуска из моментального снимка, вы можете использовать adb shell date
для проверки и/или установки даты сразу после запуска эмулятора.
Поскольку у меня это как верхняя ссылка в google:)
В окна вы можете получить нужное время, выпустив
adb shell date -s %date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%
-s
Значение должно быть в формате: YYYYMMDD.hhmmss
В системах с разным временным форматом часть с окнами оболочки args будет отличаться!
Вы можете проверить в cmd.exe
:
> echo %date%
Thu 01/22/2015
Для вывода части YYYY: %date:[position of char. 0-based],[length]%
В Linux:
adb shell date -s $(date +%Y%m%d.%H%M%S)
В Windows вам нужно поставить цитату вокруг строки datetime, чтобы избежать ошибки, когда синтаксический анализ возвращает пробел перед цифрой.
Полный синтаксис:
adb shell date -s '%date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%'
Команда date
изменилась в новых андроидах, так как другие ответы. У вас должен быть root, -s
не распознается и формат формата изменился.
Мне повезло с помощью adb shell su root date -u @$(date +%s.%N)
, который использует @
, чтобы установить его, используя временные метки UNIX с точностью до наносекунды. -u
требуется, если по какой-то причине вы изменили часовой пояс, хотя временные метки не должны иметь часовой пояс!