ADROID 2.1 架构解析 11 系统时间
11 系统时间
11.1 时间操作
文件:frameworks/base/core/java/android/os/SystemClock.java
native public static boolean setCurrentTimeMillis(long millis);
转向如下文件
文件:frameworks/base/core/jni/android_os_SystemClock.cpp
static jboolean android_os_SystemClock_setCurrentTimeMillis(JNIEnv* env,
jobject clazz, jlong millis)
{
return (setCurrentTimeMillis(millis) == 0);
}
转向如下文件
文件:frameworks/base/libs/utils/SystemClock.cpp
int setCurrentTimeMillis(int64_t millis)
{
...
#if HAVE_ANDROID_OS
fd = open("/dev/alarm", O_RDWR);
if(fd < 0) {
LOGW("Unable to open alarm driver: %s/n", strerror(errno));
return -1;
}
ts.tv_sec = tv.tv_sec;
ts.tv_nsec = tv.tv_usec * 1000;
res = ioctl(fd, ANDROID_ALARM_SET_RTC, &ts);
if(res < 0) {
LOGW("Unable to set rtc to %ld: %s/n", tv.tv_sec, strerror(errno));
ret = -1;
}
close(fd);
#else
...
}
也就是对设备/dev/alarm进行操作
更多相关文章
- 清除Mac中Android studio的配置文件
- Android中日期时间格式转换
- Android/Linux 的时间和定时器
- Android读取assests目录下文件
- android 时间,日期对话框
- Android时间互换代码
- android 资源文件
- Android将获取到文件的uri转换为字符串的路径
- Android 监听开机广播启动服务 动态注册时间变化监听广播