当前位置: 首页 > news >正文

网站友情链接深圳建网站兴田德润实惠

网站友情链接,深圳建网站兴田德润实惠,昆山哪里做网站好,网站集约化建设做法一、NTP介绍 NTP#xff1a;网络时间协议#xff0c;英文名称#xff1a;Network Time Protocol#xff08;NTP#xff09;是用来使计算机时间同步化的一种协议#xff0c; 它可以使计算机对其服务器或时钟源#xff08;如石英钟#xff0c;GPS等等)做同步化#xff…一、NTP介绍 NTP网络时间协议英文名称Network Time ProtocolNTP是用来使计算机时间同步化的一种协议 它可以使计算机对其服务器或时钟源如石英钟GPS等等)做同步化它可以提供高精准度的时间校正LAN上与标准间差小于1毫秒WAN上几十毫秒 且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。 二、NTP对时机制 Android系统使用NTP自动更新系统时间的触发机制 1、监听数据库字段AUTO_TIME也就是开关网络时间选项当这个字段发生变化的时候会立即触发一次时间同步 2、网络连接发生变化当网络接通会触发一次时间检查和同步 3、定时更新机制当预定的时间到了会触发一次时间检查和同步 public void handleMessage(Message msg) {switch (msg.what) {case EVENT_AUTO_TIME_CHANGED:case EVENT_POLL_NETWORK_TIME:case EVENT_NETWORK_CHANGED:onPollNetworkTime(msg.what);break;} } 三、检查与同步 frameworks/base/services/core/java/com/android/server/NetworkTimeUpdateService.javamPollingIntervalMs mContext.getResources().getInteger(com.android.internal.R.integer.config_ntpPollingInterval); // 正常获取网络时间间隔默认86400000秒也就是24小时mPollingIntervalShorterMs mContext.getResources().getInteger( com.android.internal.R.integer.config_ntpPollingIntervalShorter); // 3次快速尝试获取网络时间目的是防止网络不好间隔时间 60000秒也就是一分钟mTryAgainTimesMax mContext.getResources().getInteger( com.android.internal.R.integer.config_ntpRetry); // 快速尝试获取网络时间次数默认三次mTimeErrorThresholdMs mContext.getResources().getInteger( com.android.internal.R.integer.config_ntpThreshold); // ntp服务器时间与系统时间差阈值如果大于5秒则更新 以上信息可以通过命令dumpsys network_time_update_service 查看例如 PollingIntervalMs: 1d0h0m0s0ms PollingIntervalShorterMs: 1m0s0ms TryAgainTimesMax: 3 TimeErrorThresholdMs: 5s0ms TryAgainCounter: 1 LastNtpFetchTime: 1m28s223ms private void onPollNetworkTimeUnderWakeLock(int event) {final long refTime SystemClock.elapsedRealtime();// If NITZ time was received less than mPollingIntervalMs time ago,// no need to sync to NTP.if (mNitzTimeSetTime ! NOT_SET refTime - mNitzTimeSetTime mPollingIntervalMs) { // 如果开启NITZ 默认使用nitz更新的时间resetAlarm(mPollingIntervalMs);return;}final long currentTime System.currentTimeMillis();if (DBG) Log.d(TAG, System time currentTime);// Get the NTP timeif (mLastNtpFetchTime NOT_SET || refTime mLastNtpFetchTime mPollingIntervalMs|| event EVENT_AUTO_TIME_CHANGED) {if (DBG) Log.d(TAG, Before Ntp fetch);// force refresh NTP cache when outdatedif (mTime.getCacheAge() mPollingIntervalMs) { // 开机没有获取到网络时间强制执行连接ntp服务器获取时间mTime.forceRefresh();}// only update when NTP time is freshif (mTime.getCacheAge() mPollingIntervalMs) { // 如果已经获取到网络时间计算时间差并设置系统时间final long ntp mTime.currentTimeMillis();mTryAgainCounter 0;// If the clock is more than N seconds off or this is the first time its been// fetched since boot, set the current time.if (Math.abs(ntp - currentTime) mTimeErrorThresholdMs // 时间差小于5秒 则更新时间|| mLastNtpFetchTime NOT_SET) {// Set the system timeif (DBG mLastNtpFetchTime NOT_SET Math.abs(ntp - currentTime) mTimeErrorThresholdMs) {Log.d(TAG, For initial setup, rtc currentTime);}if (DBG) Log.d(TAG, Ntp time to be set ntp);// Make sure we dont overflow, since its going to be converted to an intif (ntp / 1000 Integer.MAX_VALUE) {SystemClock.setCurrentTimeMillis(ntp); // 更新系统时间,LOG为AlarmManagerService: Setting time of day to sec1721811969查看时间是否更新}} else {if (DBG) Log.d(TAG, Ntp time is close enough ntp);}mLastNtpFetchTime SystemClock.elapsedRealtime();} else {// Try again shortlymTryAgainCounter;if (mTryAgainTimesMax 0 || mTryAgainCounter mTryAgainTimesMax) { // 如果没有获取到网络时间就间隔一分钟后重试resetAlarm(mPollingIntervalShorterMs);} else {// Try much later mTryAgainCounter 0;resetAlarm(mPollingIntervalMs); // 尝试三次 间隔一分钟获取一次还没有获取到时 则24小时后再尝试}return;}}resetAlarm(mPollingIntervalMs); // 时间已经设置成功24小时后再获取}frameworks/base/core/java/android/util/NtpTrustedTime.javafinal String defaultServer res.getString(com.android.internal.R.string.config_ntpServer); // 默认NTP服务器2.android.pool.ntp.orgfinal long defaultTimeout res.getInteger( com.android.internal.R.integer.config_ntpTimeout); // 连接NTP服务器超时时间默认5秒final String secureServer Settings.Global.getString( resolver, Settings.Global.NTP_SERVER); // 可以通过命令动态修改ntp服务器重启后生效 adb shell settings put global ntp_server ntp2.aliyun.comfinal long timeout Settings.Global.getLong( resolver, Settings.Global.NTP_TIMEOUT, defaultTimeout); // 可以通过命令动态修改ntp服务器超时时间重启后生效 adb shell settings put global ntp_timeout 50000final String server secureServer ! null ? secureServer : defaultServer; sSingleton new NtpTrustedTime(server, timeout); // 动态配置npt服务器地址 与超时时间public boolean forceRefresh() {if (LOGD) Log.d(TAG, forceRefresh() from cache miss);final SntpClient client new SntpClient();if (client.requestTime(mServer, (int) mTimeout)) { // 获取网络时间mHasCache true;mCachedNtpTime client.getNtpTime();mCachedNtpElapsedRealtime client.getNtpTimeReference();mCachedNtpCertainty client.getRoundTripTime() / 2;return true;} else {return false;}} 四、调试 1、确认当前NTP服务器地址adb shell settings get global ntp_server 为空时 则需要查看代码中默认的服务器。 2、修改NTP服务器adb shell settings put global ntp_server ntp2.aliyun.com 3、logcat | grep -Ei NetworkTimeUpdateService|SntpClient|AlarmManagerService  查看服务及NTP服务器是否异常 4、dumpsys network_time_update_service 查看对时默认配置比如时间差快速重试时间快速重试次数等
http://www.w-s-a.com/news/942355/

相关文章:

  • 军博做网站公司wordpress评论插件
  • 如何申请一个网站 做视频网站报错解析
  • 徐州高端网站建设无锡找做网站
  • 网站如何不需要备案百度的宣传视频广告
  • 如何用易语言做网站采购系统有哪些
  • 建一个网站容易吗浙江省城乡建设厅官网
  • 奇点网站建设黄骅贴吧百度贴吧
  • 站长爱it如何分析网站设计
  • 服装公司网站定位seo网站关键词
  • 电商网站开发流程文档南京 seo 价格
  • 网站建设任务分解张家港网站制作服务
  • 化州+网站建设网络营销怎么做推广
  • 贵阳网站设计方案阿里云 wordpress 数据库
  • 如何做购物返佣金网站高校 网站建设实施方案
  • 网站如何连接微信支付网页制作与网站开发
  • 地名网站建设方案营销型网站策划书
  • 网站优化排名查询网站图片怎么做的高级
  • 官方网站建设调研报告小程序短链接生成
  • 专做耐克阿迪鞋网站免费微信网站模板下载
  • 视频在线制作网站wordpress怎么调用友情链接
  • 做微商什么是官方网站温州阀门外贸网站建设
  • 申请主机网站网站建设平台合同模板
  • 如何做ps4的游戏视频网站海口网红图书馆
  • 福建住房和城乡建设局网站做私人小网站赚钱吗
  • 物流的网站模板wordpress网站 800cdn
  • 建站公司合肥做精品课程网站需要啥素材
  • 成都三合一网站建设网站建设教程自学网
  • 门户网站跳出率wordpress火车头采集教程
  • 天津做网站的网络公司wordpress免费的模板
  • 有哪些关于校园内网站建设的法律如何申请免费网站空间