你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS 與ANDROID框架及應用開發模式對比一

IOS 與ANDROID框架及應用開發模式對比一

編輯:關於IOS

IOS 和ANDROID操作系統都是目前流行的移動操作系統,被移動終端和智能設備大量采用,兩者都采用了先進的軟件技術進行設計,為了方便應用開發兩者都采用了先進的設計模式。兩者在框架設計上都采用了什麼技術?都采用了什麼設計模式?兩者設計思路和應用開發模式有什麼異同呢?

  1. 兩者都采用了框架模式。

    IOS 的框架稱為Cocoa Touch。

    框架提供兩個作用,一是類的集合,每個類構建一個問題空間,並提供完整的解決方案和服務;二更重要的是框架中的類相互依賴構成一個整體,制訂並實現整個應用程序的結構。框架定義的結構是泛型結構,為應用程序提供一個執行的模板,因此許多框架類的實現是抽象的或者有意不完整,這樣的類通常實現大量的常見代碼,但卻讓工作的重要部分,要麼未完成,要麼以安全的默認方式完成。

    因為應用程序結構是通用的,開發人員通過框架提供的鉤子或其它方式如子類化將其特殊化,以滿足特定應用的要求;設計一個應用程序就是將應用程序代碼插入到框架提供的設計中來完成設計,並由框架驅動程序的執行和管理應用程序的生命周期。

    要使用框架,開發人員必須接受它定義的應用程序結構,然後根據需要,盡可能多的使用和定制它的類,將特定的應用進行改造,以適合該結構。

    從廣義的隱喻層面而言,框架就像房屋的框架,而應用程序代碼就好比大門、窗戶、壁板和其他元素,是這些東西讓房子與眾不同。

    IOS 的框架和ANDROID框架都為應用程序提供了多種方式,來修改和擴展其通用行為。

    特定於應用的行為添加到框架的一種方式,就是創建框架類的自定子類。子類填補了其超類中的空隙,提供了框架類所缺少的部分。自定子類的實例,占據其在框架所定義的對象網絡中的位置,也繼承框架與其他對象合作的能力。這種設計模式稱為模板模式。

    如ANDROID就采用這種模式來實現應用程序行為的定制化。 ANDROID框架為應用程序提供了ACTIVITY、 SERVICE、Content providers、Broadcast receivers四大應用組件的通用默認實現,應用程序通過子類化這些組件,並根據需要覆蓋組件的一些方法就可以完成一個應用程序開發。

    而IOS則采用委托和協議模式來實現應用程序的一些特定行為。

    在IOS中, 由Cocoa Touch提供的框架之一UIKit來提供和管理應用程序的行為,包括應用程序的啟動直到退出,UIKit 框架管理著應用程序的許多核心行為。

    UIKit 框架包括一個UIApplication 對象,UIApplication 對象是應用程序的心髒,它從系統接收事件,然後將事件分派到應用程序實現的自定代碼進行處理。

    具體的應用程序只需實例化UIApplication 對象對象即可,無需進行子類化,應用程序的特定行為采用委托和協議模式由一個應用程序委托對象來實現。

    應用程序在調用UIApplication 對象的UIApplicationMain函數來啟動應用時,通過實例化一個應用程序委托對象並作為參數傳給UIApplicationMain函數。

    應用程序委托作為 UIResponder 的子類,也實現了UIApplicationDelegate協議,用來處理 UIApplication 對象委派的應用程序相關事件(主要是各種應用程序狀態改變事件),來實現應用程序的定制化。

    協議模式是osx 操作系統框架采用的特有的設計模式之一。協議是可編程接口的聲明,任何類都可以實施它的方法。與協議相關聯的類實例,調用協議的方法,並獲取由該類正式采用和實現該協議所返回的值。對象之間的此類通信,產生了一個特定目標,例如解析 XML 代碼或拷貝對象。協議接口兩邊的對象可以通過繼承,實施遠距離彼此相關。協議因此和委托一樣,可作為子類化的替換手段。Apple 提供的框架,聲明了數十個協議。

    二 應用開發都采用了模型-視圖-控制器(MVC) 設計模式

    如IOS框架中的視圖控制器對象擔當MVC模式中的控制器角色,管理應用程序內容在屏幕上的呈現。視圖控制器負責顯示和管理單個視圖及其分視圖,以及那些視圖與應用程序的其他部分之間的交互。呈現時,視圖控制器將視圖安裝到應用程序的窗口中,使它們顯示出來。

    在ios 的UIKit 框架中的UIViewController 類是所有視圖控制器對象的基礎類, 每個視圖控制器對象是 UIViewController 類的實例,它提供了一些默認功能,用於載入視圖、呈現視圖和旋轉視圖,以響應設備的旋轉以及幾個其他標准的系統行為。應用程序實現時需要對UIViewController 類進行子類化,用來載入應用程序特定視圖。

    UIKit 和其他框架定義附加的視圖控制器類,來實現標准系統界面,如圖像挑選器、標簽欄界面和導航界面。

    視圖控制器對象提供基礎結構,來管理內容相關的視圖並協調視圖的顯示與隱藏。視圖控制器還用來管理應用程序視圖的子層次結構。

    因為 iOS 應用程序顯示內容的空間很有限,視圖控制器也提供了所需要的基礎結構,從一個視圖控制器中撤出視圖,以另一個視圖控制器中的視圖來替換。因此,視圖控制器是您實施各種類型的內容轉換的方式。 視圖控制器對象,可以作為自包含的單元來看,它處理其自身視圖的創建和銷毀,處理其視圖在屏幕上的顯示,並協調視圖和應用程序中的其他對象之間的交互。

    應用程序通過串聯圖或nib資源文件加載視圖控制器和相關的視圖。串聯圖或nib資源文件含有視圖和視圖控制器,應用程序通過它們,將內容呈現在屏幕上。串聯圖中的視圖,是根據顯示它們的視圖控制器來組織的。串聯圖也確定一組視圖的轉換(稱為過渡),將用戶從一組視圖帶到另一組。

    當您創建項目時,主串聯圖文件的名稱通過應用程序包含的 Info.plist 文件中的 NSMainStoryboardFile 鍵來指定。使用 nib 文件(而不是串聯圖)的應用程序,可以使用 NSMainNibFile 鍵替換 NSMainStoryboardFile 鍵,並使用該鍵來指定使用的主 nib 文件。

    IOS框架的窗口對應一個 UIWindow 對象,UIWindow 對象協調一個或多個視圖在屏幕上的呈現。大多數應用程序只有一個窗口,用於在主屏幕上呈現內容,但應用程序可能會有另外一個窗口,將內容顯示在外接顯示器上。

    要更改您的應用程序的內容,需使用視圖控制器,來更改在對應窗口中顯示的視圖。您不會把窗口本身替換。

    除了充當視圖的宿主以外,窗口還配合 UIApplication 對象工作,將事件傳送到視圖和視圖控制器。

    IOS框架的視圖對象包括視圖、控制和層對象等對象,視圖和控制將應用程序的內容直觀地呈現出來。視圖用來將內容繪制在指定的矩形區域內,並響應該區域的事件。控制是一類專門的視圖,負責實施常見的界面對象,如按鈕、文本欄和切換開關。

    視圖對象通過應用程序的控制器對象,了解模型數據的更改,並通過控制器對象,將用戶發動的修改,傳達到應用程序的模型對象

    UIKit 框架提供標准的視圖,每個視圖對象最終繼承自 UIView 類,用於呈現許多類型的內容。通過直接將 UIView(或它的子類)子類化,您還可以定義自己的自定視圖。

    除了包括視圖和控制以外,應用程序還可以將 Core Animation 層並入其視圖和控制分層結構中。層對象實際是代表視覺內容的數據對象。視圖在幕後大量使用層對象,來渲染其內容。您還可以將自定的層對象,添加到界面,以實施復雜的動畫和其他類型的復雜視覺效果。

    UIKit 框架提供的視圖組織為視圖層次。應用程序所顯示的視圖,會排列成層次結構(直觀上基於包含)。此模式允許應用程序將單個視圖和合成視圖同等對待。層次的根部為一個窗口對象;根部以下的每個視圖,都有一個父視圖,以及零個或多個子視圖。父視圖包含子視圖。視圖層次是繪圖和事件處理的結構性組件。

    IOS框架中的模型對象可以由UIKit框架提供的UIDocument對象來實現文檔類型的數據模型。還可以根據需要采用框架提供的數據類型定義自己的數據模型及其相關業務邏輯。

    IOS應用程序還可以采用Core Data框架來創建和實現模型對象。Core Data 提供了一個基礎結構,來管理對模型對象所做的修改,並將模型對象存儲到一個文件中,然後再將它們取回來。Core Data框架還提供了許多其它特性:如自動支持撤銷和重做,以及維持對象之間的相互關系;允許在任何給定的時間內,僅將模型對象的子集保存在內存中;使用模式來描述模型對象;允許維護編輯對象的不相交集合;支持數據儲存版本管理和遷移。版本管理可讓您輕松地將舊版本的用戶文件升級到當前版本;允許在 iCloud 中儲存數據,然後從多個設備訪問數據。

    而android 系統沒有獨立的視圖控制器對象,而由應用程序的ACTIVITY組件擔當視圖控制器角色,用來創建和載入、呈現視圖,通過模型適配器Adapter接口加載模型對象提供的數據及更新顯示到視圖上。用戶在視圖上對數據模型的改變也由ACTIVITY負責通過模型適配器接口更新到模型。Adapter擔當數據模型和視圖之間的中間人角色。

    android 系統的窗口對象對應用程序不開放,由框架的窗口管理服務進行管理。

    android 系統也是一個應用程序對應一個窗口,對應著系統提供的root view 對象。視圖對象在窗口中進行呈現。

    android 系統的每個視圖對象都繼承自View類,包括View和ViewGroup 對象。一個應用的ui 由View和ViewGroup 對象組成的視圖樹構造,View對象用來在屏幕上繪制內容並和用戶交互,如按鈕buttons 或 text fields等。ViewGroup 對象 是視圖的容器,可以包含其它View和ViewGroup對象,以便實現 界面的布局。 ViewGroup 對象和其中包含的其它View和ViewGroup對象以 視圖樹的形式加以組織。

    android 系統的應用程序ui的可視結構由具體的布局對象layout 來定義,每個具體的布局對象layout都是一個 ViewGroup 對象 。包括Linear Layout、Relative Layout、Web View等。

    組成應用程序界面的由多個子視圖組成的視圖對象通過擔當視圖控制器角色的activity組件 的setContentView函數加載進應用進行顯示。

    android 系統的模型對象的提供主要由Content providers來提供,並通過activity提供的一個模型適配器Adapter對象提供給視圖。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved