Android 應用程序框架之無(wú)邊界設計意圖
Android的應用框架的外特性空間的描述在SDK文檔有十分清楚的描述,Android應用的基本概念,組件生命周期等等有詳細的描述。在外特性空間中,Android提供了Activity,Service,Broadcast receivers,Content Provider,Intent,task等概念,我在這里不討論這些概念定義,因為SDK文檔已經(jīng)講得夠詳細。
本文引用地址:http://dyxdggzs.com/article/201609/303969.htm在閱讀SDK文檔和研究Activity這個(gè)概念時(shí),我感覺(jué)到了在A(yíng)ndroid中若隱若現的Android自由無(wú)邊界這個(gè)設計意圖。Android的應用只是一個(gè)虛的概念,并沒(méi)有實(shí)際的入口,這個(gè)不像Window平臺上的應用程序的概念,Android更多的是提供組件(Components)的概念。為什么要虛化應用的概念?我想這個(gè)虛化就是自由無(wú)邊界設計意圖的直接體現。突出請求和服務(wù),突出組件個(gè)體,弱化邊界,系統的各個(gè)組件可以自由的無(wú)邊界的交流,服務(wù)請求者直接發(fā)出請求,不論這個(gè)對象在何處和屬于誰(shuí)的,組件是自由獨立的個(gè)體,一個(gè)應用程序可以直接請求使用其他的應用的的組件,這個(gè)是Android應用框架設計的核心理念,其他的一切都是在為這個(gè)核心理念服務(wù)。
讓程序員忽略應用的概念,甚至徹底的拋棄進(jìn)程這樣的概念,程序員看到的就是一個(gè)一個(gè)的組件,應用程序員利用這些組件來(lái)架構成一個(gè)所謂的應用,那么設計者首先要考慮的是什么呢?我想應該是一個(gè)抽象的應用模型,在這個(gè)模型下產(chǎn)生概念和接口。
我們知道MicroSoft提出了Application,Windows的概念,有前景應用(Foreground Application)概念,MicroSoft的應用模型中用戶(hù)交互則完全交給了Window,各種界面的呈現都是屬于這個(gè)應用的是孤立的,應用程序之間的各個(gè)構成對象不能相互訪(fǎng)問(wèn),最多提供一個(gè)進(jìn)程間通訊機制,那個(gè)也是應用程序層面的。雖然Microsoft后來(lái)也提出了組件,分布式組件等概念,但是這些不是根植在Windows系統中,而Android則是徹底的組件化思想構建,一開(kāi)始的應用程序概念就是Activity,Service,Broadcast receivers,Content Provider,Intent,Task。這些概念體現了一個(gè)人機交互的模型本質(zhì):
界面呈現
發(fā)起請求,響應請求
內容交互
消息接收處理
Activity是Android應用的核心概念,簡(jiǎn)而言之Activity為用戶(hù)交互管理者,有一個(gè)可視界面呈現,而Service跟Activity的區別是他在后臺運行,沒(méi)有界面呈現。而Intent的意義是意圖,他在A(yíng)ndroid的概念空間中,代表消息,這個(gè)消息代表了請求的意圖。
Activity可以到處存在,提供服務(wù),消除空間差別,Activity是一個(gè)獨立的個(gè)體,更能表現面向對象的實(shí)質(zhì)。這個(gè)個(gè)體需要接受另外的個(gè)體的消息,可以隨時(shí)發(fā)起對另外一個(gè)個(gè)體的請求。個(gè)體是自由的,Android中你可以開(kāi)始一個(gè)Activity,但是沒(méi)有權利消滅一個(gè)Activity,這是個(gè)體權利的體現,個(gè)體的消滅是由系統決定的,這個(gè)就是Android中Activity蘊含的人文意義。
評論