天天看點

Android 4.0和WP7.5開發技術對比

作者: Android開發網原創 時間: 2011-10-09

對于谷歌Android 4.0 Ice Cream SandWich和微軟WP7.5 Mango在開發技術上作對比,可以看出早期Google學習了Microsoft的WPF的設計方式,由于微軟Windows Phone 7釋出緩慢,導緻Google在技術上将微軟複雜的設計方式改進,從現在來看安卓冰激淩三明治和微軟WP7芒果來看開發技術上仍然存在着巨大的差異。對于準備步入移動開發的網友,就目前主流的系統做簡單的分析:

一、UI控件和設計模式

對于WP7來說,整體控件數量不如Android豐富和實用,但也有一些創新的地方,比如說樞軸Piovt控件,在觸控操作上比Android的TabHost強了很多,但沒有提供類似GridView這樣的控件在Siliverlight中,由于WP7的UI重新整理機制基于MVVM模式,相對于Android的MVC有些不同,需要繼承INotifyPropertyChanged接口,通過資料綁定來更新UI控件的值,相對比較繁瑣。在控件自定義方面,WP7可以使用銀光的UserControl或從任何已有的控件中直接派生,對于Android來說這點基本相同,但提供的方法比如觸控、長按相關的微軟這點都要

依賴Toolkit來實作,整體相對繁瑣很多。

二、資料庫層

微軟在資料庫方面一直有MS SQL,在手機上有SQL CE這樣的輕量級資料庫,但操作處理方面同樣需要實作 INotifyPropertyChanged接口進行更新,修改表,似乎變得更加抽象。同時資料交換方面微軟還有LINQ,在Web Services方面幾乎和J2EE差不多,但相對于手機上而言Android的SQLite似乎更好用明了,這點微軟确實輸了。

三、系統執行模型

在WP7.5 Mango上支援了多任務,記憶體管理幾乎和Android一模一樣,同時新增了類似iOS上的資料推送,需要微軟伺服器中轉的Push Notification,由于考慮應用随時被系統記憶體回收,必須儲存每個頁面的資料到持久化的存儲中,比如類似Android的SharedPreferences而在WP中為銀光的IsolatedStorageSettings,在很多地方微軟都在學習着谷歌,相比WP7到WM6的改進來看。

四、圖形系統

這點WP7和Android有着天壤之别,Windows CE下3D為DirectX,2D為GDI方式渲染,而Android下為OpenGL,同時WP7無法使用本地語言開發,導緻iPhone和Android程式員在3D方面很是陌生。

五、檔案系統

在WP7芒果上,微軟學習了iOS那樣的封閉,每個應用完全獨立,是以沒有檔案管理器這個概念,導緻了Adobe Reader這樣的應用必須将pdf放入郵箱中,通過郵件附件來打開閱讀。同樣每個Windows Phone 7芒果手機一般不會有microSD卡,而是機身至少内置8GB或16GB的存儲空間,同樣無法用U盤功能,每個應用相對隔離,運作在自己的沙盒空間裡,對于應用可靠性和安全有了保障,但是對于部分實作方面确實不夠好用。

六、運作流暢度

如果你看見WP7手機運作很流暢,那麼你可能真的錯了,在本質上Java虛拟機和微軟的.Net Framework運作時庫的底層效率差不多,但Android的手機一般運作着更複雜的桌面,比如左右N個主屏和一堆appWidget小插件,而微軟似乎Windows Phone 7的應用一般限制在5個同時工作的,否則将會被結束任務,同時由于部分低價Android裝置,導緻整體硬體配置偏低,比如有ARM11的CPU,RAM隻有256MB的情況,而微軟WP7第一代手機至少配備了A8 1GHz的處理器,512MB的RAM,第二代的WP7

Mango手機配備了1.4GHz新一代高通Snapdragon,比如8X55系列,是以很多地方了看WP7更流暢,但其實從單個應用來看,WP7應用的啟動速度遠不如Android平台上的應用,是以微軟甚至設計出了SplashScreenImage.jpg這樣的圖檔為每個預設工程提供一個載入圖檔。如果是微軟系統自帶的應用由于可以調用本地的方法相對于第三方的Windows Phone應用來說啟動會快很多。

最終結論是Android123仍然推薦大家在高效和開放的Google提供的平台開發,至少不會束縛你的想象力和實作速度,微軟設計了很多限制和門檻,同時不開源在分析和實作上都會産生很多問題,至少Android的SDK可以工作在Mac OS、Windows各個平台和Linux上,而微軟似乎将WP7 SDK鎖定在Vista和Win7上。

繼續閱讀