Android(Linux)使用时钟单调的正常运行时间
根据Android(Linux)使用时钟单调的正常运行时间,android,linux,time,linux-kernel,Android,Linux,Time,Linux Kernel,根据uptimeMillis()返回自启动以来的毫秒数,不计算深度睡眠时间。我检查了计划的实施情况 uptimeMillis()在我的代码中,大致如下- struct timespec t; t.tv_sec = t.tv_nsec = 0; clock_gettime(CLOCK_MONOTONIC, &t); return (int64_t)(t.tv_sec)*1000000000LL + t.tv_nsec; 据我所知,CLOCK\u单调的从一些未指定的点开始计数线性地包括睡眠
uptimeMillis()
返回自启动以来的毫秒数,不计算深度睡眠时间。我检查了计划的实施情况
uptimeMillis()
在我的代码中,大致如下-
struct timespec t;
t.tv_sec = t.tv_nsec = 0;
clock_gettime(CLOCK_MONOTONIC, &t);
return (int64_t)(t.tv_sec)*1000000000LL + t.tv_nsec;
据我所知,CLOCK\u单调的
从一些未指定的点开始计数线性地包括睡眠时间
这是我的疑问-
CLOCK\u MONOTONIC
包括睡眠时间,为什么uptimeMillis()
不考虑睡眠时间?如果我的理解是错误的,CLOCK_monotic
没有考虑睡眠,那么我应该使用什么来获得系统正常运行时间,包括睡眠非常感谢janneb!!这很有帮助。但是你能详细说明一下吗?挂起是指进程挂起还是整个CPU闲置?@Pavan:suspend,就像整个系统挂起一样。再次感谢!我在2.6.35登记<代码>时钟启动时间还没有!但是仍然
SystemClock.elapsedRealtime()
能够做到这一点!知道它是怎么回事吗?@Pavan:方法名称中的“Realtime”表明它是一个实时时钟,你不觉得吗?请注意时钟启动时间,我链接到的补丁发布于2011年2月,而2.6.35发布于2010年8月,所以你在那里找不到它也就不足为奇了。时钟启动时间在ndk-9c中-只花了2.5年;)