小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

iPhone/Andriod應用程序開發(fā)平臺對比

 蘇城狼子 2011-01-30
當今的人們可以無處不在,無時無刻地享受互聯(lián)網(wǎng)所帶來的便利。承載這些便利的智能化手機平臺也日趨成熟。在這個競爭激烈,硝煙四起的領域,iPhone一直以簡單實用來又酷勁十足的特點來吸引消費者,從而占據(jù)一席之地。而Android作為一個年紀輕輕而前途未卜的新興平臺,卻已經向世人展示了它非凡的潛力和巨大的生命力。

  他們共同的特點各自都有一個強大的軟件商店,上面有來自全世界的開發(fā)者為iPhone和Android開發(fā)的數(shù)萬種乃至十萬種軟件,甚至可以說 iPhone和Android已經成為一個新興的軟件出版和流通平臺。近期太平洋企業(yè)頻道將對其上較有代表性的一些軟件和開發(fā)者的故事逐一介紹,敬請關注。本文先對iPhone和Android的開發(fā)平臺和開發(fā)環(huán)境作一個鋪墊性的介紹。

  iPhone OS

  iPhone OS平臺的建立使用了與創(chuàng)建Mac OS X操作系統(tǒng)一樣的技術,很多開發(fā)工具和技術都是來源于Mac OS X的。但是盡管這些工具與Mac OS X極為相似,但是iPhone OS的應用程序開發(fā)者并不需要具備Mac OS X的開發(fā)經驗。iPhone軟件開發(fā)工具包(SDK)將會為開發(fā)者提供其所需要的一切。下面將會一一介紹。

  iPhone OS是一個在iPhone和iPod觸屏設備上運行的操作系統(tǒng)。該操作系統(tǒng)在管理設備硬件的同時,也提供在移動電話上實現(xiàn)本機應用程序的基本技術。根據(jù)是安裝在iPhone還是iPod Touch上,這個操作系統(tǒng)會相應地植入一些特定的服務應用程序,如電話,郵件,Safari瀏覽器等,來為用戶提供標準的系統(tǒng)服務。

移動終端開發(fā)平臺

  iPhone OS是iPhone手機和iPod觸屏設備的核心

  1. iPhone OS的體系結構

  iPhone OS體系結構與Mac OS X的基礎架構極其類似。在iPhone OS體系的上層,它充當了iPhone和iPod Touch硬件設備同在電話屏幕上顯示的應用程序之間的媒介,如下圖所示。開發(fā)者自己創(chuàng)建的應用程序不會直接與硬件進行交互,而是與相對應的驅動器進行連接。這樣的做法可以消除開發(fā)者應用程序在不經意間改變了底層的硬件設備的危險。

移動終端開發(fā)平臺

  iPhone OS上的應用分層

  iPhone OS使用一個極其直觀的軟件棧。在這個堆棧的底層是Mach內核和一些硬件驅動器,以此來管理所有程序的執(zhí)行。凌駕于這一層之上其他層則是包括開發(fā)者用于開發(fā)所必須的核心技術和接口。盡管iPhone OS在內核和驅動級沒有任何接口,但是它在軟件棧的更上層卻為開發(fā)者設置了許多技術接口。

 

  2. iPhone OS軟件棧

  iPhone OS技術的實現(xiàn)過程可以劃分為多個層次,如下圖所示。這個系統(tǒng)的底層是所有應用程序的支柱——基礎服務。上層則包含了很多精密的服務和技術。

移動終端開發(fā)平臺

  iPhone OS軟件棧

  當開發(fā)者在編寫他們自己的代碼時,必須盡可能地使用上層框架而不是底層框架。上層框架為底層結構提供面向對象的抽象。這種抽象通常能簡化代碼的編寫工作。它可以大大地減少代碼的編寫量以及壓縮一些潛在的復雜性能,比如插口和線程。但是,盡管上層框架把底層技術都抽象化了,并不是表示這些技術將會被隱藏起來。底層框架依然還是適用于那些需要涉及那些不存在于上層框架中的模塊的開發(fā)者的。

  1) Cocoa Touch層

  Cocoa Touch是iPhone OS最重要的一層。它為開發(fā)者提供了實現(xiàn)應用程序所必須的基礎設施的關鍵框架。

  在Cocoa Touch層,很多技術都是使用Objective-C語言實現(xiàn)的。這一層的框架為開發(fā)者的應用程序提供基礎設施。這些基礎框架主要是提供面向對象的支持,如文件管理,網(wǎng)絡操作等。Uikit框架為應用程序提供可視化的基礎設施,其中包括窗口類,視圖類和控制類以及管理這些對象的控制器。除此之外,這一層的其他框架(如Push Notification服務,地址簿用戶界面,App Email,Map Kit等)幫助開發(fā)者訪問用戶聯(lián)系人信息,圖片信息以及加速器和設備其他硬件的特性。

  2) Media層

  Media層是由多種圖表,音頻,視頻技術連接而成的,為移動設備營造最好的多媒體用戶體驗。更重要的是,這些技術都是針對降低開發(fā)者創(chuàng)建應用程序的工作量而設計的。iPhone OS的這一層框架令優(yōu)質圖表的創(chuàng)建變得更加簡單,同時也加快了動畫制作的進程。

  這一層所包含的技術能夠支持2D和3D繪圖,音頻模式和視頻模式,涵蓋了以C語言為基礎的技術(OpenGL ES, Quartz和Core Audio)。同時還具有Core Animation——一項先進的用Objective-C實現(xiàn)的動畫引擎。

  3) Core Service層

  Core Service為所有應用程序提供基本的系統(tǒng)服務。也許開發(fā)者并不需要直接使用這些服務,但是系統(tǒng)的許多模塊都是在其之上建立起來的。這一層包含了iPhone OS的基本接口,主要用于文件訪問,底層數(shù)據(jù)類型的設定,Bonjour服務,網(wǎng)絡接口等。這些接口大部分是基于C語言實現(xiàn)的——Core Foundation, SQLite和XML支持等。

 

  4) Core OS層

  Core OS層包含了內核環(huán)境,驅動器和底層UNIX接口。其中,內核是基于Mach操作系統(tǒng)的,負責操作系統(tǒng)的所有作業(yè)。它管理虛擬內存系統(tǒng),網(wǎng)絡和進程間的通信。驅動器則為可用的硬件設備和系統(tǒng)框架提供接口。這些接口也與Core Service層一樣,都是用C語言來實現(xiàn)的。

  3. iPhone SDK

  iPhone SDK包含了開發(fā),安裝和運行客戶機本機應用程序的所有工具以及界面。本機應用程序是使用iPhone OS系統(tǒng)架構和Objective-C程序語言設計的,它們可以在iPhone OS上直接運行。不像Web應用程序,本機應用程序是直接安裝于設備上。因此,它的運行并不需要依賴于網(wǎng)絡連接。它們與系統(tǒng)的其他應用程序毗鄰而居。而且這些應用程序和所有的用戶數(shù)據(jù)都可以通過iTunes與用戶的計算機保持同步。

  Apple將大部分的系統(tǒng)接口都收集在一個叫做框架(framework)的程序包中。一個framework包含了一個動態(tài)共享庫以及支持該庫的一些資源(如頭文件,圖片,幫助程序等)。使用 framework,應用程序開發(fā)人員可以將它內聯(lián)到開發(fā)工程內,從而使其得以訪問framework的特性,并指導開發(fā)工具去哪里查找頭文件和 framework的其他資源。

  除了framework,Apple還在它的標準共享庫(Standard Shared Libraries)中提供其他技術。因為iPhone OS是基于UNIX的,所以構成操作系統(tǒng)的底層架構的技術都屬于開源代碼技術。這些技術的接口就儲存在標準庫以及接口目錄中。

移動終端開發(fā)平臺

  iPhone SDK

  用戶在iPhone設備上可以運行兩種客戶端應用程序:網(wǎng)絡應用程序和本機應用程序。網(wǎng)絡應用程序使用HTML,CSS和Javascript代碼來實現(xiàn)與網(wǎng)絡服務器的交互,并在互聯(lián)網(wǎng)上進行傳輸,在Safari網(wǎng)絡瀏覽器上進行顯示。本機應用程序,換句話說死直接安裝在設備上的,它們的運行并不需要網(wǎng)絡的鏈接。 iPhone SDK只支持創(chuàng)建那些顯示在設備主屏幕上的本機前端應用程序。它不能創(chuàng)建驅動程序,后端應用程序,框架和動態(tài)庫。如果開發(fā)人員想在自己的應用程序中整合進框架或者動態(tài)庫,則必須在創(chuàng)建工程時,將這些代碼靜態(tài)地與應用程序的可執(zhí)行文件相互連接。
 
4. 開發(fā)工具

  為iPhone OS設計應用程序,開發(fā)人員需要一臺Mac OS X計算機來運行Xcode工具。Xcode是Apple提供的一款設計工具,可以進行工程管理,代碼編輯,建立可執(zhí)行文件,源代碼級調試,源代碼庫管理,性能調整等一系列操作。在這套開發(fā)工具中,Xcode應用程序是核心,它提供了基本的源代碼開發(fā)環(huán)境。但是它卻不是唯一的工具,下面將對開發(fā)iPhone OS軟件所需用到的關鍵應用程序做一介紹。

  1) Xcode

  Xcode是最關鍵,最基本的開發(fā)工具。它是一個集成開發(fā)環(huán)境(IDE),為開發(fā)者創(chuàng)建和管理iPhone工程和源文件提供所需的工具,并能夠生成可執(zhí)行文件,可在iPhone模擬器或者正式設備上運行和調試。

移動終端開發(fā)平臺

  Xcode的工程窗口

  設計一個新的iPhone應用程序時,必須現(xiàn)在Xcode上創(chuàng)建一個新的工程。工程是用來管理與應用程序相關的所有信息,包括源文件,生成設置和將所有組建集成起來的方法。每一個Xcode工程最主要的是工程窗口,如下圖所示。這個窗口提供為該工程里所有關鍵組件提供快速訪問操作。在組列表和文件列表中,開發(fā)者可以管理工程所需的文件(源文件和目標文件)。工具條則羅列了一些常用的工具和命令符。詳細信息窗口方便開發(fā)者在設計的過程中隨時改變配置信息。工程窗口的其他部分則為開發(fā)者提供了設計工程的背景資料。

移動終端開發(fā)平臺

  在Xcode中運行工程

  2) 界面生成器(Interface Builder)

  界面生成器是開發(fā)者用來為應用程序組裝用戶可視化界面的工具。使用界面生成器,開發(fā)者可以向應用程序窗口拖放預先配置好的組件。這些組件包括了基本的系統(tǒng)控制單元,如開關,文本和按鈕等,并用自定義視圖來代替應用程序提供的視圖。在開發(fā)者將組件拖入窗口后,可以拖動它們,隨意改變它們的位置,配置它們的屬性,并為這些對象和應用程序代碼間創(chuàng)建映射關系。如果界面設計的工作完成了,可以將其保存為一個nib文件(一種自定義資源文件模式)。
 
使用Interface Builder設計用戶可視化界面

  這個nib文件保存了UIKit在應用程序運行時重新創(chuàng)建對象所需要的所有信息。UIKit會先將nib文件載入,并為其所保存的所有對象創(chuàng)建一個可執(zhí)行的版本,按照在Interface Builder中配置的方式配置它們。它同樣會依照開發(fā)者在應用程序中指定的新對象與原有對象之間相互連接的方式進行兩者間的互聯(lián)。這種連接不但為代碼提供了指向nib文件中對象的指針,而且還提供了用戶操作與應用程序之間相互通訊的信息。

  總的來說,使用Interface Builder可以為用戶界面的創(chuàng)建節(jié)省很多時間。由于Interface Builder是一個可視化的編輯器,開發(fā)者可以在運行時查看用戶界面的情況,所以消除了創(chuàng)建用戶界面的代碼編寫,配置和布局的工作,直觀方便。

  3) Instruments and Shark

  一個具有世界水平的iPhone應用程序必須提供一流的用戶體驗。這需要有最佳的用戶界面和最好的性能。iPhone提供的開發(fā)工具中還包括了強大的優(yōu)化和分析工具——Instruments and Shark——來幫助開發(fā)者追蹤iPhone應用程序的性能瓶頸。Instruments在iPhone與計算機遠程連接時,實時地收集諸如磁盤,內存和 CPU使用情況等信息。這些信息會隨著追蹤時間的推移,形成一個可視化的圖表。方便開發(fā)者定位故障區(qū)域,深入定位到出錯的代碼行。當需要最快運行速度時,Shark使開發(fā)者可以在極小的時間間隔中對數(shù)據(jù)進行抽樣。

  這些工具能夠保證開發(fā)者設計出來的應用程序具有最華麗的用戶界面,同時也令他們得到最滿意的用戶體驗。

移動終端開發(fā)平臺

  Instruments and Shark

  介紹了這么多iPhone開發(fā)的內容,現(xiàn)在可以轉入Android的介紹了。

  Android

  Android 是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應用程序 —— 移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動產業(yè)創(chuàng)新的專有權障礙。

  1. Android平臺

  隨著Android功能廣度的加深,很容易將Android與桌面操作系統(tǒng)相混淆。Android是一個建立于Linux內核之上的分層環(huán)境,并且它包含了非常豐富的功能。其用戶界面子系統(tǒng)包括了:窗口,視圖和編輯框、列表、下拉列表等的顯示部件。Android包括了一個建立在WebKit上面的嵌入式瀏覽器,與iPhone移動Safari瀏覽器相同的開源瀏覽器引擎。
 
Android擁有一系列健全的連接選項,如WiFi,藍牙和與GPRS,EDGE和3G等的無線連接。Android應用程序一項廣受歡迎的技術是它能與Google地圖連接,在一個特定的應用程序中直接顯示地址。支持基于位置的服務(像GPS)和照相功能。

  移動應用程序的設計在圖表/多媒體以及數(shù)據(jù)存儲方式這兩大塊領域上一直都在努力追逐著桌面應用程序的步伐。Android戰(zhàn)勝了內置支持2D和3D 圖像的挑戰(zhàn)。而在數(shù)據(jù)存儲方面,也相應地減輕了負擔。因為Adroid平臺集成了流行的開源SQLite數(shù)據(jù)庫。下圖簡單地顯示了Android的軟件層。

移動終端開發(fā)平臺

  Android軟件層

  2. Android應用程序的體系架構

  如前面所提及的,Android是在Linux內核上運行的。所以Android應用程序使用Java語言編寫,并在一臺虛擬機上運作。值得注意的是,這臺虛擬機不是Java虛擬機,而是Dalvik虛擬機——一種開源技術。每個Android應用程序都是Dalvik虛擬機的一個實例,反過來駐留在 Linux內核管理進程中,如下圖所示。

移動終端開發(fā)平臺

  Dalvik虛擬機

  一個Android應用程序一般會包括下面一個或者多個分類:

  1) 活動(Activities)

  一個帶有可視化用戶界面的應用程序通常都是通過一個活動來實現(xiàn)的。當用戶在主屏幕或者應用程序啟動器上選擇了一個應用程序,那么一個活動就被激活。

  2) 服務(Services)

  服務是指那些需要長期運行的應用程序,如網(wǎng)絡監(jiān)控或者更新檢測應用程序。

  3) 內容提供者(Content Providers)

  可以將Content Providers想象成為一個數(shù)據(jù)庫服務器。一個Content Providers的工作室管理數(shù)據(jù)的存儲,比如一個SQLite數(shù)據(jù)庫。如果應用程序很簡單,那么開發(fā)者也許就不需要開設一個Content Providers。但是如果應用程序很巨大或者其功能是使數(shù)據(jù)可用于多線程活動或者應用,那么一個Content Providers就是訪問數(shù)據(jù)的工具。

  4) 廣播接收機(Broadcast Receivers)

  一個Android應用程序也許會被用來處理進程中的數(shù)據(jù)元素,或者相應一個事件,比如文本消息的接收。一個Android應用程序通常會連同一個名為 AndroidManifest.xml的文件一起被配置進一個設備中。這個AndroidManifest.xml文件包含了正確安裝該應用程序的所有配置信息。具體內容有類名和應用程序能夠處理的事件的類型以及應用程序運行時所需的權限。打個比方,如果一個應用程序需要連接網(wǎng)絡來下載個文件,這個操作的權限必須明確記載在清單文件中。這種聲明性的安全措施有助于減少惡性軟件對用戶設備的傷害。

 

  3. Android SDK和開發(fā)工具

  開發(fā)Android應用程序最簡單的方法就是下載Android軟件開發(fā)工具包(SDK)和Eclipse IDE。Android應用程序可以在Microsoft Windows,Mac OS X或者Linux應用程序上進行開發(fā)。

  Android應用程序是使用Java程序語言進行編寫的,但卻在一臺非Java虛擬機——Dalvik虛擬機上進行編譯和執(zhí)行。在Eclipse中編寫Java語言是非常直觀的。Eclipse提供了一個豐富的Java環(huán)境,包括上下文幫助和代碼提示。一旦應用程序編譯通過,Android開發(fā)工具就能確保無誤地對該應用程序進行打包,包括AndroidManifest.xml文件。

  Android SDK是以壓縮包的形式存放在開發(fā)者的硬盤驅動上的。其包括:

  1) android.jar

  Java歸檔文件包括了開發(fā)應用程序所需的Android SDK的所有類。

  2) documention.html和docs目錄

  SDK文檔大部分都是JavaDocs形式,這樣可以令用戶更加容易導航SDK中的程序包。該文件還含有一份高級開發(fā)指南和與Android社區(qū)的連接。

  3) 樣本目錄(Samples directory)

  樣本子目錄中包含了各種各樣常用應用程序完整的源代碼,譬如ApiDemo,演示了很多APIs。實例應用程序大大地減輕開發(fā)者的工作量。

  4) 工具目錄(Tools directory)

  包含了構建Android應用程序所需的全部命令行工具。最常用以及最有用的工具是adb utility(Andriod調試橋,Android Debug Bridge)。

  adb utility支持多種可選的命令行參數(shù),提供強大的功能,如從設備中復制文件。Shell命令行參數(shù)令開發(fā)者可以直接與手機連接,執(zhí)行基本的shell命令。下圖顯示了通過Shell命令來對一臺用USB接口連接到Windows筆記本的真實機器進行操作。

移動終端開發(fā)平臺

  使用adb shell命令行

  在這個shell應用環(huán)境中,開發(fā)者可以:示網(wǎng)絡配置:里面有多個網(wǎng)絡連接。注意到不同的網(wǎng)絡連接顯示的不同:lo是本地連接或本地環(huán)回連接;tiwlan0是WiFi與本地DHCP服務器提供的地址之間的連接。

  顯示了PATH環(huán)境變量的內容。

  執(zhí)行su命令,成為高級用戶。

  把目錄更改為/data/app。概目錄是用于存放用戶應用程序的。

  發(fā)出一條Ping命令,查看Google.com是否可用。

  在這個命令提示符環(huán)境中還可以與SQLite數(shù)據(jù)庫進行互動,打開程序和進行其他系統(tǒng)級任務。

  5) usb_driver

  該目錄包含了連接開發(fā)環(huán)境與Android設備(G1或者Android Dev1鎖定開發(fā)手機)的必須驅動。這些文件只適用于那些在Windows平臺上開發(fā)程序的開發(fā)人員。

  設計好的Android應用程序可以在一臺真實的設備上運行,或者在Andriod SDK集成的Andriod模擬器上運行。下圖顯示的是Android模擬器的主屏幕。

移動終端開發(fā)平臺

  Android SDK開發(fā)環(huán)境和Andriod模擬器

  總結

  iPhone和Android都是從互聯(lián)網(wǎng)出身,其運營公司對于互聯(lián)網(wǎng)的共享精神有著更深入的了解,所以都可以在智能化手機平臺這場大戰(zhàn)中有所作為。但是蘋果掌控價值鏈的姿態(tài)太過強勢,很可能會妨礙其進一步壯大,并重蹈當年Mac電腦大敗于IBM兼容PC的覆轍。Google的Android則因為推出太晚,硬件廠商的產品支撐不足,未來走勢還不明朗。但是技術發(fā)展所帶來的變化總是出人意料的,市場強弱的轉化往往也在轉瞬之間?,F(xiàn)在就定奪誰是誰非,還為時過早,還是讓我們拭目以待吧。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多