我们都知道做程序员有时会恶搞,就像android中,程序员在setting中就隐藏这样一项:

我们可以找到“关于手机"这一项在里面有“android版本”这一项,如图:android Setting中隐藏项实现原理与代码_第1张图片

当我们快速点击“android版本”这一项时会弹出一张图片(恶搞型android Setting中隐藏项实现原理与代码_第2张图片
,这是2.3操作系统,但是4.0系统的话会弹出一个android标志图片android Setting中隐藏项实现原理与代码_第3张图片

,你按住android标志不放的话会出现很多android标志在移动的动画:

android Setting中隐藏项实现原理与代码_第4张图片)。

这里我们就说说2.3系统的

首先我们找到Settings的源码,在package/app/Settings/src/com/android/settings下,我们要找到

DeviceInfoSettings.java这个文件,就是“关于手机”这一项的相关代码,在其的OnCreate方法中引用了一个xml文件:

复制代码 代码如下:
 addPreferencesFromResource(R.xml.device_info_settings);

所以我们找到device_info_settings.xml文件看看:
复制代码 代码如下:

style="?android:preferenceInformationStyle"
android:title="@string/firmware_version"
android:summary="@string/device_info_default"/>

这个就是代表“android版本”的相关代码,我们可以看到它的Key是
复制代码 代码如下:
firmware_version

所以我们在java文件中就去找到它所被引用的代码,在DeviceInfoSettings.java中有一个 public boolean onPreferenceTreeClick方法:
复制代码 代码如下:
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference.getKey().equals("firmware_version")) {
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
mHits[mHits.length-1] = SystemClock.uptimeMillis();
if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("android",
com.android.internal.app.PlatLogoActivity.class.getName());
try {
startActivity(intent);
} catch (Exception e) {
}
}
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}

在其中就实现了你快速点击“android版本”这一项所实现的功能。

更多相关文章

  1. Android 图片加载Bit地图 OOM异常解决方法
  2. Android布局优化(一)LayoutInflate — 从布局加载原理说起
  3. Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播
  4. Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命
  5. Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWo
  6. Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
  7. Android 系统概要 ——《第一行代码 Android》
  8. Android Studio 单刷《第一行代码》系列 04 —— Activity 相关

随机推荐

  1. android 带手电筒的扫一扫(1 可以自动打开
  2. android在TextView的最后一行后面拼接vie
  3. android不在坑五:Android(安卓)Glide You
  4. Android软键盘在清单文件中所有属性解释
  5. 在电脑端加密的文件,放在android上进行解
  6. 【Android】获取当前 Wifi 的 MAC 地址(BS
  7. Android下的指纹识别及登陆
  8. 【自定义控件系列一】android画图类---Ca
  9. Android(安卓)自定义控件之 SwitchButton
  10. Ubuntu上开发Android,手机调试配置