синхронизация времени эмулятора Android - PullRequest
4 голосов
/ 01 февраля 2011

Есть ли способ синхронизации времени эмулятора и системного времени с точностью до миллисекунд? Таким образом, вызов System.currentTimeMillis() будет возвращен одновременно с вызовом gettimeofday() в C?

Ответы [ 2 ]

0 голосов
/ 08 марта 2013

К сожалению, Android не позволяет устанавливать время приложением без рута. Таким образом, вы можете установить время, только если вы корень эмулятора .

0 голосов
/ 16 июля 2012

Я не уверен, что понимаю вопрос на 100%.

Если вы посмотрите на dalvik/vm/native/java_lang_System.c, вы увидите:

static void Dalvik_java_lang_System_currentTimeMillis(const u4* args, JValue* pResult)
{
    struct timeval tv;

    UNUSED_PARAMETER(args);

    gettimeofday(&tv, (struct timezone *) NULL);
    long long when = tv.tv_sec * 1000LL + tv.tv_usec / 1000;

    RETURN_LONG(when);
}

Итак, System.currentTimeMillis () вызывает gettimeofday () - по крайней мере в реализации dalvik, которую я смотрю.

Как насчет использования приложения, такого как ClockSync , чтобы установить время на эмуляторе.Он использует протокол ntp, который вы также можете использовать на своем хост-компьютере.

...