android Setting中隱藏項(xiàng)實(shí)現(xiàn)原理與代碼
我們都知道做程序員有時(shí)就像android中,程序員在setting中就隱藏這樣一項(xiàng):
我們可以找到“關(guān)于手機(jī)"這一項(xiàng)在里面有“android版本”這一項(xiàng),如圖:
當(dāng)我們快速點(diǎn)擊“android版本”這一項(xiàng)時(shí)會(huì)彈出一張圖
,這是2.3操作系統(tǒng),但是4.0系統(tǒng)的話會(huì)彈出一個(gè)android標(biāo)志圖片
,你按住android標(biāo)志不放的話會(huì)出現(xiàn)很多android標(biāo)志在移動(dòng)的動(dòng)畫:
)。
這里我們就說說2.3系統(tǒng)的:
首先我們找到Settings的源碼,在package/app/Settings/src/com/android/settings下,我們要找到
DeviceInfoSettings.java這個(gè)文件,就是“關(guān)于手機(jī)”這一項(xiàng)的相關(guān)代碼,在其的OnCreate方法中引用了一個(gè)xml文件:
addPreferencesFromResource(R.xml.device_info_settings);
所以我們找到device_info_settings.xml文件看看:
<!-- Device firmware version -->
<Preference android:key="firmware_version"
style="?android:preferenceInformationStyle"
android:title="@string/firmware_version"
android:summary="@string/device_info_default"/>
這個(gè)就是代表“android版本”的相關(guān)代碼,我們可以看到它的Key是
firmware_version
所以我們?cè)趈ava文件中就去找到它所被引用的代碼,在DeviceInfoSettings.java中有一個(gè) 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);
}
在其中就實(shí)現(xiàn)了你快速點(diǎn)擊“android版本”這一項(xiàng)所實(shí)現(xiàn)的功能。
相關(guān)文章
Android應(yīng)用開發(fā)中Fragment與Activity間通信示例講解
這篇文章主要介紹了Android應(yīng)用開發(fā)中Fragment與Activity間通信實(shí)例講解,需要的朋友可以參考下2016-02-02Android小程序?qū)崿F(xiàn)訪問聯(lián)系人
這篇文章主要為大家詳細(xì)介紹了Android小程序?qū)崿F(xiàn)訪問聯(lián)系人,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一2020-05-05Android自定義ViewGroup實(shí)現(xiàn)豎向引導(dǎo)界面
這篇文章主要為大家詳細(xì)介紹了Andoird自定義ViewGroup實(shí)現(xiàn)豎向引導(dǎo)界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Android獲取手機(jī)號(hào)碼和運(yùn)營(yíng)商信息的方法
這篇文章主要介紹了Android獲取手機(jī)號(hào)碼和運(yùn)營(yíng)商信息的方法,以實(shí)例形式完整講述了獲取手機(jī)號(hào)碼和運(yùn)營(yíng)商信息的技巧,代碼中包含完整的注釋說明,需要的朋友可以參考下2015-01-01Android實(shí)現(xiàn)簡(jiǎn)單畫圖畫板
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)單畫圖畫板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01在ubuntu下編譯ijkplayer-android的方法
下面小編就為大家分享一篇在ubuntu下編譯ijkplayer-android的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01Android中判斷手機(jī)是否聯(lián)網(wǎng)實(shí)例
這篇文章主要介紹了Android中判斷手機(jī)是否聯(lián)網(wǎng)實(shí)例,包括xml配置文件及功能代碼的實(shí)現(xiàn),需要的朋友可以參考下2014-10-10Ubutu1604安裝colmap實(shí)現(xiàn)方法詳細(xì)教程
這篇文章主要介紹了Ubutu1604安裝colmap實(shí)現(xiàn)方法詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Android View的事件分發(fā)機(jī)制深入分析講解
事件分發(fā)從手指觸摸屏幕開始,即產(chǎn)生了觸摸信息,被底層系統(tǒng)捕獲后會(huì)傳遞給Android的輸入系統(tǒng)服務(wù)IMS,通過Binder把消息發(fā)送到activity,activity會(huì)通過phoneWindow、DecorView最終發(fā)送給ViewGroup。這里就直接分析ViewGroup的事件分發(fā)2023-01-01