user interface, view 和activity究竟是啥?



User Interface 這個在安卓中隨處可見,隨處可及的詞語。Uer “用戶”的意思,interface“接口,界面”的意思。整合起來理解“用戶接口”“用戶界面”。

接口Interface,在程序語言中,有着其特殊的含義,場景不同,含義也不一樣。在面向對象的設計語言中,接口是對抽象類的抽象,抽象類是對具體類的抽象,具體類是對具有共同屬性和方法的對象集合抽象,而具體的對象就是現實世界中形形色色的具體的個體(包括人眼能看見的,也包括人眼看不見的但人可以理解的)。接口的具體內容只包含靜態常量和方法簽名。有些接口甚至只有接口名稱,稱爲標識接口。這樣的接口是用來解決單一繼承的問題,是對繼承的補充,用來擴展子類的功能。當然,面向對象技術中接口的內容非常豐富,此處不做詳述。

接口的另外一種含義是指程序暴露給其他程序或應用的方法簽名。這些方法簽名(或接口)是程序與外界(程序本身以外)發生聯繫(通信或交互)的唯一途徑。

可視化的用戶界面,是我們與計算機交互的良好接口。

理解了上面的,再看看androidUser Interface的含義。

Android中,闡述到User Interface的地方有如下:

 

The user interface for an activity isprovided by a hierarchy of views—objects derived from the View class.

針對activityuser interface由視圖體系結構提供,視圖對象來源於視圖類。

在看看導航中給出的user interface,內容包括佈局,輸入控制,輸入事件,菜單,動作條,設置,對話框,通知,提示等,其重在描述能夠與用戶進行交互的部分,無論是用戶被動接受的還是主動參與(通過觸發)的。

Activityandroid的四大組件之一。那麼Activity又究竟是什麼呢?我們來看看開發文檔中,對activity的一段描述:

An Activity is an applicationcomponent that provides a screen with which users can interact in order to dosomething, such as dial the phone, take a photo, send an email, or view a map.Each activity is given a window in which to draw its user interface. The windowtypically fills the screen, but may be smaller than the screen and float on topof other windows.

該段是說activity是一個應用組件,該組件提供了一個供用戶交互的屏幕。這樣用戶可以做一些事情,比如打電話,照相,發送郵件,查看地圖。每個activity會給出一個窗口,在窗口內繪製它的用戶界面(接口)。一般該窗口會充滿整個屏幕,但也可以比屏幕小或懸浮在其他窗口之上。

本段話自始至終都沒有這樣的一句話An activity is a user interface 。只是說Each activity isgiven a window in which to draw its user interface。很顯然,activity只是承載userinterface的載體,提供了繪製view的一塊區域。

如果通過viewer分析工具,可以看出,在我們添加的佈局中,在最底層的總有一個FrameLayout。可能你會奇怪,在工程中我並沒有使用一個FrameLayout來容納LinearLayoutRelativeLayout啊?怎麼回事,不要驚訝,這是每個activity都具有的,是其內嵌的。可見activity承載view也是靠一個ViewGroup容器FrameLayout實現的。所以可以說真正承載我們在工程佈局中view的還是view

再從activity的繼承結構看,activity繼承自ContextThemeWrapper,其超類是ContextWrapper,其祖先是Context

現在是不是對acitvityuser interface有一個更深的理解呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章