標籤:android style blog http io color ar os sp
Android中很多架構性的設計都已經存在了,但在市場上的發布版本裡卻因為沒有很好的理解Android的設計意圖而進行自己的定製,或者自己又做一 個冗餘的實現。Android中的Provision其實就是類似剛出廠時或者恢復出廠預設值之後,一步一步引導使用者完成各種設定的Setup Wizard程式。
在Android的原生代碼中,Provision並沒有被編譯進系統,這可能是Provision不被人所知的原因。另外SdkSetup是一個實現相同功能的程式,從名字來看,SdkSetup是被用來在類比環境中完成初始設定的程式。
Provision在其AndroidManifest.xml中被定義如下:
[html] view plaincopy
- <application> <activity=
- => <intent-filter=> <action= /> <category= /> <category= /> </intent-filter> </activity> >
Activity DefaultActivity的category被定義成HOME,並且priority為1,是比系統Launcher啟動還要早的程式。
Provision中DefaultActivity的實現如下:
[java] view plaincopy
- publicclass
- protectedvoid super
- );
-
- newthisclass );
-
- }
DefaultActivity的原生實現只做了兩件事:
- 沒有UI介面,只是設定Setting項裡的Settings.Secure.DEVICE_PROVISIONED為1,指示其他Framework和其他程式,機器已經Provisioned。
- Line#10~#12之後,Launcher才會被啟動,完成整個啟動過程。
注意:還沒有Provisioned的機器,有些功能的表現是不一樣的。比如,如果還沒有Provisioned,鎖屏程式不會鎖屏;對HOME key的處理也不同;電話也是打不進來的,etc。
通過Provision,可以定製:
- 加入一些初始設定項的設定,比如時區/時間初始設定,背景資料是否允許,是否允許安裝非Android市場上的程式,等不需要使用者幹預就可以完成的設定。具體也可看SdkSetup中的DefaultActivity完成的設定,除了多了些設定項的設定,並沒有太多區別。
- 加入UI設計,引導使用者一步步完成需要使用者參與選擇或輸入的設定過程,也就是Setup Wizard的工作。
- 上一篇Android 擷取螢幕尺寸與密度
- 下一篇解決Android textview自動換行問題
[置頂] Android Provision (Setup Wizard)