【高速改动android系统默认日期方法】临文乍了了,彻卷兀若无。这篇文章主要讲述高速改动android系统默认日期方法相关的知识,希望能为你提供帮助。
高速改动android系统默认日期方法
在android系统的设备上,都有一个默认的開始日期,看过非常多设备,有些设备在没有联网的时候没有同步到系统时间的时候,竟然默认的还是1970年的日期。也见过有些设备默认到2000年1月1日的,这样相对进了一步。可是还不够。
笔者以下非常简单的介绍一下一个超级简单的方法:
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
熟悉一下systemserver还是非常好的。systemserver里面有好东西,首先还是从main进去,我们能够肯定原始的代码是这样写的:
public
static
void
main(String[]
args)
{
1141
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
p=android/platform/frameworks/base.git;
a=blob;
f=services/java/com/android/server/SystemServer.java;
h=e55e2766226a5031f40ac5c4cde5535712392898;
hb=e55e2766226a5031f40ac5c4cde5535712392898#l1145">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
p=android/platform/frameworks/base.git;
a=blob;
f=services/java/com/android/server/SystemServer.java;
h=e55e2766226a5031f40ac5c4cde5535712392898;
hb=e55e2766226a5031f40ac5c4cde5535712392898#l1149">1149
*
the
property.
http://b/11463182
1150
*/
p=android/platform/frameworks/base.git;
a=blob;
f=services/java/com/android/server/SystemServer.java;
h=e55e2766226a5031f40ac5c4cde5535712392898;
hb=e55e2766226a5031f40ac5c4cde5535712392898#l1151">1151
SystemProperties.set("
persist.sys.dalvik.vm.lib"
,
1152
VMRuntime.getRuntime().vmLibrary());
1153
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.
p=android/platform/frameworks/base.git;
a=blob;
f=services/java/com/android/server/SystemServer.java;
h=e55e2766226a5031f40ac5c4cde5535712392898;
hb=e55e2766226a5031f40ac5c4cde5535712392898#l1160">1160
Slog.w(TAG,
"
System
clock
is
before
1970;
setting
to
1970."
);
1161
SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
p=android/platform/frameworks/base.git;
a=blob;
f=services/java/com/android/server/SystemServer.java;
h=e55e2766226a5031f40ac5c4cde5535712392898;
hb=e55e2766226a5031f40ac5c4cde5535712392898#l1162">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 程序打包及签名
- Vue-router结合transition实现app前进后退动画切换效果
- 2017最新xcode打包APP详细图文
- 扯谈spring mvc之WebApplicationContext的继承关系
- Django打造在线教育平台_day_2(新建users app 编写models之扩展user表)
- android读取通讯录
- 预防 app crash 之 unrecognized selector
- 免费带项目,免费指导1~2年开发经验的Android程序员
- Eclipse项目转Android