對比Windows Phone與iOS、Android開發的不同[轉]

來源:互聯網
上載者:User

標籤:android   java   com   cti   資料   工作   

Windows Phone是微軟公司在2010年發布的智能手機作業系統,目前最新版本是Windows Phone 8.0,在市面上能見到的是Windows Phone 7.5(Mango和Tango),下面,從開發人員角度,分幾個方面對比他們的不同。

 

一、硬體

iOS與Windows Phone系統都為閉源作業系統,而且對於硬體解決方案,微軟和蘋果都有苛刻的要求,蘋果自己設計CPU,然後找代工廠商生產,而且通訊晶片也是非高通不用,這也是中國移動一直無法引入蘋果定製機的一個重要原因。

在微軟方面,微軟的CPU解決方案也全部來自於高通,運行Windows Phone 7.5的裝置幾乎都採用了高通MSM8255T,而從目前發布的運行Windows Phone 8的裝置看,基本也都採用了高通驍龍S4雙核處理器。

蘋果和微軟這樣做對於開發人員和使用者都是有很大好處的,從開發人員角度來講,保證了裝置的硬體統一,便於測試。從使用者的角度來講,使得裝置的品質得到保證,不會出現“我能用的軟體,他用不了”的現象。

而安卓由於開源,各大裝置生產廠商都一套自己的硬體解決方案,比如Samsung有Exynos,NVIDIA有Tegra……而且這些眾多的CPU解決方案中,還有許許多多的架構版本劃分,有的基於ARM9,有的基於ARM A15……這樣就使得安卓平台硬體不能得到統一,雖然“百家爭鳴”的場面不錯,但對於開發人員來講,測試軟體非常不利。有的安卓軟體可能需要幾十種安卓裝置才能算是開發完成,有時有一部裝置出現運行問題,就需要修改很多代碼。對於使用者來講,首先選購裝置時就夠受的了,使用的時候,也經常出現“你的Galaxy S3可以玩這個遊戲,我的One X怎麼不行呢”的現象。

 

二、作業系統核心

iOS基於Unix,類似於蘋果的Mac OS X,但核心不完全一樣,Android基於Linux,兩個平台可以統稱為Unix-like(類Unix)系統。而Windows Phone在7.0和7.5的時代延續了Windows Mobile所採用的微軟自家的嵌入式作業系統——Windows CE(Compact Edition),雖然在Mango和Tango上Windows Phone的滑動表現出色,但一些新的功能,如多核心處理器、HD層級螢幕等都無法支援,所以微軟對Windows Phone 8直接採用了和Windows 8一樣的核心——Windows NT 6.2,而Windows RT(Windows 8 ARM版,用於平板電腦)也採用了這個核心。所以說微軟在一定程度上做到了3大平台上的核心統一,這對於開發人員來講,移植軟體的過程就變得簡單,C#後台+XAML前台,類WPF的開發模式將會是微軟平台未來開發的最近選擇!

iOS和Windows Phone的核心是不開放的,在安全性上也是勝過安卓一籌的,不過對於開發人員來講,由於系統不開放,很多介面無法獲得,自然一些和系統關聯比較密切的功能也就無法實現。目前iOS好在用的人比較多,也有專門的駭客組織進行破解,所以普通使用者和開發人員可以對系統進行比較深的定製,而Windows Phone就沒有這麼幸運了,最多可以自由部署應用罷了,系統沒什麼可改的。而在這方面,Android的優勢就體現的比較明顯,開發安卓應用完全免費,部署在自己的手機上也不需要任何費用,網上發布也比較自由,當然,也有很多在Android上能做到,在其他兩個平台上做不到的軟體被開發出來,甚至國內的行動裝置 App開發大賽都只要Android平台上的作品。

 

三、開發條件

為了開發三大主流平台的應用,應瞭解他們的前期準備,當然,Android是成本最低的,隨便一台配置說的過去的電腦,Eclipse,Android SDK,就能滿足基本開發需求了,如果需要發布,沒有固定的市場,更不需要什麼開發人員帳號,不過這樣對於開發人員的收入是個不利因素,幾乎不能靠軟體來軟體,最多就是些廣告。

Windows Phone需要一台PC,Visual Studio(有針對於開發人員的Express免費版),Windows Phone SDK,如果需要發布到微軟Marketplace,還需要開發人員帳號,普通的開發人員帳號$99/年,不過只要能搞到以.edu.cn結尾的大學郵箱,可以免費申請學生帳號,不過Windows Phone軟體的收入分成也是不錯的,開發人員:微軟=2:8,而蘋果是3:7。

iOS開發就麻煩一點,必須可以運行Mac OS X,加上iPhone SDK,Objective-C的相關IDE,可以滿足基本的開發需求,不過為了上傳到AppStore,每年99美金的開發人員費用且沒有類似微軟的學生帳號,讓有的人望而卻步。

 

四、軟體運行方式

在iOS和Windows Phone平台上,每個程式都有一個SandBox(沙箱)和其他的程式分隔開,增強了安全性,而且Windows Phone和iOS都是沒有真正意義上的後台存在的,所以系統的最佳化都能做得很好,能保證軟體的流暢。而Android是帶有真正背景,所以有時候機子會比較慢,再加上安卓新系統的更新,雖然流暢度有所提升,但依舊吃資源夠狠,所以安卓手機的硬體效能不斷提高,就是希望通過改善硬體水平來提升使用者體驗,其他兩個平台就不需要這樣做。

Android和Windows Phone一個採用Java,一個採用C#或VB.NET,他們的運行都是需要一個類似虛擬機器的平台來支援,Java需要JVM,C#和VB.NET需要.NET Framework和CLR,而iOS程式使用Objective-C,類似C/C++的運行機制,所以效率可能更高一點。

對於不同的系統運行機制,作為開發人員,也應該對不同的機製做出不同的開發策劃,保證應用適合於相對於的系統,符合他們的特徵。

 

五、開發語言及開發效率

(一)對於普通的應用程式

iOS平台使用Objective-C,是一種由C語言發展而來的物件導向的語言,由蘋果公司自行研發,除了可以用來開發iOS應用,也可以作為Mac OS X案頭應用開發的語言,不過該語言風格較標準C有很大的差別,需要有一定的適應時間,加之國內專門的培訓班較少,對於開發人員來講,開發效率可能會受到一些影響,除此之外,也有人利用Mono-Touch,在iOS平台上使用C#進行開發。

Android平台使用Java,Java跨平台性好,可以在Linux、Windows和Mac OS X上幾乎不受阻礙的移植、運行,是一種完全物件導向的語言,但Java執行效率差,程式運行速度慢,所以在Android平台上的應用的體驗往往不及iOS。不過Java學的人很多,Android學習班也比較熱,學習、入門應該是很輕鬆的事,在開發效率上高於iOS。

Windows Phone平台在7.0和7.5的時代只能使用C#和VB.NET語言進行開發,且不支援Sqlite資料庫,8.0發布之前的系統還不夠成熟,有很多功能不支援,而在8.0系統上,不但可以繼續使用C#和VB.NET進行開發,也可以使用C/C++進行本地化開發,可以自行編寫一些類庫來使用。雖然大家都認為.NET平台運行效率差,但在Windows Phone這樣微軟自己平台上,微軟的最佳化還是做得很到位的,本人一直在用Windows Phone手機,並沒有感到卡頓的現象,體驗良好。而且C#是這幾個語言中開發最簡單,最容易上手的語言,加上和Windows 8的優良結合,微軟平台的開發將更加便捷。

(二)對於遊戲

iOS和Android都使用了OpenGL來進行3D遊戲的設計,OpenGL開源,用的地方也比較多,而且iOS與Android目前的佔有量大,所以OpenGL的學習也是比較輕鬆的。

而微軟採用了基於DirectX的XNA架構來供開發人員使用,而我們平常所玩的案頭遊戲幾乎沒有一個不用到DirectX架構的,這樣,開發人員的工作就更簡單。

 

六、開發前景

目前AppStore已經發布了大概70萬的應用,Android應用也達到60萬款,對於新的開發人員,壓力比較大,而Windows Phone還只有10萬多的應用數量在Marketplace上,還有很長的路要走,帶給新的移動開發人員更多的機會。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.