高速改动android系统默认日期方法
Posted zhchoutai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高速改动android系统默认日期方法相关的知识,希望对你有一定的参考价值。
高速改动android系统默认日期方法
在android系统的设备上,都有一个默认的開始日期,看过非常多设备,有些设备在没有联网的时候没有同步到系统时间的时候,竟然默认的还是1970年的日期。也见过有些设备默认到2000年1月1日的,这样相对进了一步。可是还不够。
笔者以下非常简单的介绍一下一个超级简单的方法:
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
熟悉一下systemserver还是非常好的。systemserver里面有好东西,首先还是从main进去,我们能够肯定原始的代码是这样写的:
public static void main(String[] args) {
1142 /*
1143 * In case the runtime switched since last boot (such as when
1144 * the old runtime was removed in an OTA), set the system
1145 * property so that it is in sync. We can‘t do this in
1146 * libnativehelper‘s JniInvocation::Init code where we already
1147 * had to fallback to a different runtime because it is
1148 * running as root and we need to be the system user to set
1149 * the property. http://b/11463182
1150 */
1151 SystemProperties.set("persist.sys.dalvik.vm.lib",
1152 VMRuntime.getRuntime().vmLibrary());
1154 if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
1155 // If a device‘s clock is before 1970 (before 0), a lot of
1156 // APIs crash dealing with negative numbers, notably
1157 // java.io.File#setLastModified, so instead we fake it and
1158 // hope that time from cell towers or NTP fixes it
1159 // shortly.
1160 Slog.w(TAG, "System clock is before 1970; setting to 1970.");
1161 SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
1162 }
明显里面有一个推断当然时间。跟预设时间点的一个比較,假设比预设时间点晚的话,就设置成这个时间点,充分利用这一点就非常easy了。还是用这样的方法,仅仅只是把预设的时间点挪动一下。实际上仅仅要改一行不是代码的代码就能够了,笔者改动例如以下:
- private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000; - + //private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000; + //default 2014-07-01-12:00 + private static final long EARLIEST_SUPPORTED_TIME = 1404187200000L; + /** * Called to initialize native system services. */ @@ -1157,7 +1159,8 @@ public class SystemServer { // java.io.File#setLastModified, so instead we fake it and // hope that time from cell towers or NTP fixes it // shortly. - Slog.w(TAG, "System clock is before 1970; setting to 1970."); + //Slog.w(TAG, "System clock is before 1970; setting to 1970."); + Slog.w(TAG, "System clock is before 20140701; setting to 20140701."); SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME); }
看了是不是感觉非常认为,改这个是简单,知道在这里能够改并不简单,加油!
以上是关于高速改动android系统默认日期方法的主要内容,如果未能解决你的问题,请参考以下文章