<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Android 應用程序框架之無邊界設計意圖

          Android 應用程序框架之無邊界設計意圖

          作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

          Android的應用框架的外特性空間的描述在SDK文檔有十分清楚的描述,Android應用的基本概念,組件生命周期等等有詳細的描述。在外特性空間中,Android提供了Activity,Service,Broadcast receivers,Content Provider,Intent,task等概念,我在這里不討論這些概念定義,因為SDK文檔已經(jīng)講得夠詳細。

          本文引用地址:http://www.ex-cimer.com/article/201609/303969.htm

          在閱讀SDK文檔和研究Activity這個概念時,我感覺到了在Android中若隱若現(xiàn)的Android自由無邊界這個意圖。Android的應用只是一個虛的概念,并沒有實際的入口,這個不像Window平臺上的的概念,Android更多的是提供組件(Components)的概念。為什么要虛化應用的概念?我想這個虛化就是自由無邊界意圖的直接體現(xiàn)。突出請求和服務,突出組件個體,弱化邊界,系統(tǒng)的各個組件可以自由的無邊界的交流,服務請求者直接發(fā)出請求,不論這個對象在何處和屬于誰的,組件是自由獨立的個體,一個可以直接請求使用其他的應用的的組件,這個是Android應用框架的核心理念,其他的一切都是在為這個核心理念服務。

          讓程序員忽略應用的概念,甚至徹底的拋棄進程這樣的概念,程序員看到的就是一個一個的組件,員利用這些組件來架構成一個所謂的應用,那么設計者首先要考慮的是什么呢?我想應該是一個抽象的應用模型,在這個模型下產(chǎn)生概念和接口。

          我們知道MicroSoft提出了Application,Windows的概念,有前景應用(Foreground Application)概念,MicroSoft的應用模型中用戶交互則完全交給了Window,各種界面的呈現(xiàn)都是屬于這個應用的是孤立的,應用程序之間的各個構成對象不能相互訪問,最多提供一個進程間通訊機制,那個也是應用程序層面的。雖然Microsoft后來也提出了組件,分布式組件等概念,但是這些不是根植在Windows系統(tǒng)中,而Android則是徹底的組件化思想構建,一開始的應用程序概念就是Activity,Service,Broadcast receivers,Content Provider,Intent,Task。這些概念體現(xiàn)了一個人機交互的模型本質(zhì):

          界面呈現(xiàn)

          發(fā)起請求,響應請求

          內(nèi)容交互

          消息接收處理

          Activity是Android應用的核心概念,簡而言之Activity為用戶交互管理者,有一個可視界面呈現(xiàn),而Service跟Activity的區(qū)別是他在后臺運行,沒有界面呈現(xiàn)。而Intent的意義是意圖,他在Android的概念空間中,代表消息,這個消息代表了請求的意圖。

          Activity可以到處存在,提供服務,消除空間差別,Activity是一個獨立的個體,更能表現(xiàn)面向對象的實質(zhì)。這個個體需要接受另外的個體的消息,可以隨時發(fā)起對另外一個個體的請求。個體是自由的,Android中你可以開始一個Activity,但是沒有權利消滅一個Activity,這是個體權利的體現(xiàn),個體的消滅是由系統(tǒng)決定的,這個就是Android中Activity蘊含的人文意義。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();