4

エミュレータの時刻とシステム時刻をミリ秒単位の精度で同期する方法はありますか? では、呼び出しは CのSystem.currentTimeMillis()呼び出しと同じ時間に返されるのでしょうか?gettimeofday()

4

2 に答える 2

0

残念ながら、Android では、ルートのないアプリで時間を設定することはできません。 そのため、エミュレータをルート化した場合にのみ時間を設定できます。

于 2013-03-08T03:04:57.080 に答える
0

質問を 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のようなアプリを使用するのはどうですか。ホスト PC でも使用できる ntp プロトコルを使用します。

于 2012-07-16T08:59:16.390 に答える