您的位置:首页 > 其它

jpcsp源码解读之四:Clock类

2012-03-19 11:36 169 查看
时钟类的行为:
当用户请求时,就返回当前时间与初始时间的差值。
注意,这是一个模拟器,该类就是模拟目标机器psp的时钟。该类的用户,就是运行于psp机器上的软件(应该是系统软件才会直接从硬件提取时钟信息),或者机器中的其他硬件(比如前一篇提到的Screen类)。返回给用户的时间,应该是机器自加电复位之后,已经运行了的时间。但是模拟器是提供了暂停功能的,暂停期间的时间,不应该被计入模拟器加电复位之后运行了的总时间。
nanoTime这个函数就是返回当前时间与初始时间的差值。该函数先检查模拟器当前是否被暂停,如果是暂停的,now就应该取暂停时的时间pauseNanos,否则now取当前系统时间System.nanoTime()。然后返回now-baseNanos
pause函数取得系统当前时间,记录在pauseNanos变量中,并且把暂停标记置位。
resume函数是相对于pause函数的,如果暂停标记被置位,说明之前pause过,resume才有动作。resume的动作是:
baseNanos += System.nanoTime() - pauseNanos;
也就是把暂停期间经历的时间累计到base中,这样以后用户请求nanoTime时,依然是上述的now-baseNanos的逻辑。(一个稍有味道的小技巧)
然后清除暂停标记。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: