windows phone8 sdk 新特性

   歡迎使用Windows Phone SDK 8.0。Windows Phone 8爲開發人員提供了一些新特性和升級特性。包括本地代碼的遊戲開發,手機版的Windows Runtime,以及新的內核。咱們把這些介紹都集中在一塊兒,以方便您熟悉Windows Phone 8和Windows Phone SDK 8.0的這些特性。咱們對您將會在SDK中用到的這些工具很是得滿意。這些工具能夠幫助您建立Windows Phone的應用,並使這些應用的用戶們更加喜好Windows Phone。在這裏,咱們將簡單地介紹您在應用開發中可能用到的特性,並給出了進行深刻了解的連接。 git

本主題包含了如下章節: web

- SDK工具
- 磁貼和通知
- 鎖屏畫面
- 地圖與導航
- 定位
- 語音
- 錢包
- 多分辨率
- Direct3D和遊戲
- 應用模式
- 攝像頭和照片
- 多媒體
- 用戶界面
- 通訊
- 數據和可擴展性
- 商店
- 商務用途
- 全球化定位
- 應用的清單文件
- 應用的兼容性
- CLR
- 相關主題 shell

 

SDK工具
Windows Phone SDK 8.0包含了如下這些新的工具和特性,用於應用的開發,調試和測試。  編程

開發工具和特性 windows

Visual Studio包含了如下這些新特性。 瀏覽器

- Direct3D應用的項目模板。更多項目模板相關的內容,參見How to create a new app project from a template for Windows Phone。更多Direct3D應用的信息,參見本主題的Direct3D and games一節。 安全

- 增強了項目模板對定位的支持。項目模板如今內置了對定位的支持。如今能夠很方便的進行定位應用的開發,而不須要進行若干步的設置。更多信息參見How to build a localized app for Windows Phone. 服務器

- 調試託管和本地代碼。在Project Designer中的Debug頁裏,您能夠選擇調試應用的託管代碼部分或是本地代碼部分。若是應用與後臺代理進行了通訊,您還能夠選擇是否獨立地調試後臺代碼部分。您也能夠在一個調試會話裏面,同時調試應用和後臺代理。 網絡

- 調試經過磁貼或通知啓動的應用。如今,針對Windows Phone 8的應用,不只能夠直接啓動調試,也能夠在經過磁貼或是推送通知來啓動調試。當您在Windows Phone 8模擬器或是手機上啓動調試的時候,點擊Back按鈕退出應用,此時調試工具依然會保持鏈接。當您經過磁貼或推送通知再次啓動應用的時候,能夠繼續進行調試。更多信息,參見Debugging apps for Windows Phone. app

- 對XNA Framework的支持。您不能針對Windows Phone 8開發新的XNA Framework應用了。更多信息,參見XNA Framework and Windows Phone 8 development

Windows Phone8模擬器包含如下新特性。
- 支持多種分辨率。模擬器有多個版本支持Windows Phone 8所支持的全部三種分辨率。更多信息,參見Multi-resolution apps for Windows Phone 8.

- Windows Phone8模擬器的系統需求。Windows Phone 8模擬器的運行基於Windows Hyper-V,因此它的硬件,軟件和配置需求也與Hyper-V相同。若是您的電腦不支持Hyper-V,您依然能夠直接在Windows Phone 8手機上進行調試。更多信息,參見System requirements for Windows Phone Emulator.

- Windows Phone 8模擬器所使用的網絡。Windows Phone OS 7.1模擬器直接使用開發環境所在計算機的網絡。可是,Windows Phone 8模擬器將自身設置爲網絡上的一個獨立設備。關於這個改變所形成影響的更多信息,參見 Windows Phone Emulator

清單的設計工具。如今能夠經過友好的用戶界面來添加,移除和修改應用清單文件中的元素了。更多信息,參見How to modify the app manifest file for Windows Phone

獨立存儲的資源管理器如今有了新的命令行選項,用於指定目標設備。更多信息,參見How to use the Isolated Storage Explorer tool for Windows Phone

測試工具和特性

測試應用的本地代碼版本。您能夠測試應用的本地代碼版本,這樣獲得的性能體驗就會和用戶的最終體驗一致。更多信息,參見 How to test the retail version of your app for Windows Phone 8.

應用監控和性能分析。Windows Phone Application Analysis (原名 Windows Phone Performance Analysis)如今包含了應用監控,並加入了應用性能分析。這個應用監控特性,能夠捕捉質量觀點上的那些關鍵性指標,而後根據這些指標對應用進行評 估。這個指導信息,能夠幫助您在開發過程當中保證應用的品質與性能,而沒必要等待開發完成以後再來進行這個工做。更多信息,參見App monitoring for Windows Phone.

仿真面板。您可使用Windows Phone 8的仿真面板,來肯定您的應用如何應對真實的使用環境。經過這些信息,您能夠調整應用,以確保其在各類顯示環境中都能表現良好,從而知足用戶的須要。

您能夠經過仿真面板來測試應用在面對下面這些狀況時將會做出的響應:
- 網速很慢或信號不足
- 中斷,好比收到一個提醒或是通知
- 鎖屏
更多信息,參見Simulation Dashboard for Windows Phone.

截屏。如今,您能夠經過一組按鍵組合來進行真機上的應用截屏了。更多信息參見How to create screenshots for Windows Phone Store.

Store Test Kit。原來的Marketplace Test Kit已經更名爲Store Test Kit。這個功能驗證測試對面向Windows Phone 8的應用是無效的。 

 

磁貼和通知
Windows Phone 8包含了一些新的磁貼尺寸和磁貼模板,能夠經過如下類進行深刻了解:
- FlipTileData
- CycleTileData
- IconicTileData
更多關於Windows Phone 8新磁貼的內容參見Tiles for Windows Phone

 

鎖屏界面

在Windows Phone 8中,用戶可使用應用提供的圖片做爲鎖屏界面的背景,同時也能選擇某些應用在鎖屏界面的通知區域中進行顯示。更多關於Windows Phone 8的新鎖屏信息,參見 Lock screen notifications for Windows Phone 8Lock screen background for Windows Phone 8

 

地圖和導航
地圖
Windows Phone 8包含了新的地圖控件,能夠經過如下命名空間進行使用:
- Microsoft.Phone.Maps
- Microsoft.Phone.Maps.Controls
- Microsoft.Phone.Maps.Services
更多地圖控件的信息,參見Maps and navigation for Windows Phone 8

導航
在Windows Phone 8中,您可使用基於ms-drive-toms-walk-to這種Uri命名結構的導航協議來編寫應用,請求駕駛或步行方向,或是處理前面這樣的請求。更多信息,參見How to request or provide directions for Windows Phone 8.  

 

定位
Windows Phone 8提供了一組的基於Windows Phone Runtime的API集合來獲取手機的當前位置。現有的.NET定位API依然是支持的。新API的更多信息,參見Location for Windows Phone 8.

Windows Phone 8提供的另外一個新特性是針對的位置追蹤類的應用,如今即便用戶離開了應用,它們仍然能夠在後臺運行。這樣就容許實現跑步追蹤應用和轉來轉去的導航應用了。

 

語音
在Windows Phone 8,用戶能夠經過聲音來與應用進行交互。更多關於Windows Phone 8語音特性的信息,參見Speech for Windows Phone 8.

 

錢包
Windows Phone 8引入了錢包,容許應用完成下面這些事情:
- 將優惠券,信用卡,會員卡,購物狂等相似物品收集在一塊兒。
- 管理應用和音樂商店內的支付工具。
- 將錢包所管理的物品與手機裏的應用聯繫起來。
- 在某些商場裏面,使用近場通信(NFC)技術進行無線支付。

經過把錢包中的物品集成在一塊兒,應用的開發者們能夠給用戶帶來豐富的體驗。經過使用Wallet命 名空間下的相關函數,您的應用就能夠建立,閱讀,寫入和刪除錢包中的物品。有了Windows Phone 8錢包,您能夠經過代理來使保證錢包中物品是最新的,並經過狀態信息和自定義字段來與用戶進行交互。錢包集成了一個附加的功能,經過容許在一個新加的表面 區域裏面與用戶進行交流,從而使您更好地貼近用戶。此外,錢包物品容許用戶深度地關聯應用,這樣應用就能提供更有意義的應用內體驗了。更多關於 Windows Phone 8中錢包的信息,參見Wallet for Windows Phone 8.

 

多分辨率
Windows Phone 8支持WVGA,WXGA和720p三種設備。下面的表格列出了這些新的分辨率。Windows Phone 8支持全部這些分辨率。

  分辨率 比例 縮小後的分辨率
WVGA 480x800 15:9 480x800
WXGA 768x1280 15:9 480x800
720p 720x1280 16:9 480x853


關於更多Windows Phone 8多分辨率支持的信息,參見Multi-resolution apps for Windows Phone 8.

 

Direct3D和遊戲
除 了本地代碼開發外,Direct3D也加入到了Windows Phone的技術你們庭。這意味着,基於Direct3D的PC遊戲第一次能夠與它的手機版本共享絕大部分代碼了。開發人員可使用state-of- the-art中間件和業界最強大的引擎來爲Windows Phone開發遊戲了。

涉及到Direct3D的這一類應用將徹底由本地代碼進行編寫的,而且只能使用Direct3D來繪製UI。這類應用與託管代碼應用使用了徹底不一樣 的代碼模式,全部就不能使用不少託管代碼應用的特性,好比動態磁貼和推送通知。可是,Windows Phone 8也爲Direct3D提供了一些新特性,以提供對軟鍵盤輸入,設備主題和屏幕分辨率檢測的支持,以及一組Launchers和Choosers用來添加 許多常見的手機任務。更多關於本地Direct3D應用模式和這類應用所容許的特性,參見Direct3D app development for Windows Phone 8.

此外,您也能夠經過DrawingSurfaceDrawingSurfaceBackgroundGrid控件在託管應用中混入Direct3D圖像,從而以很是小的性能損失來獲取託管代碼的優秀特性。Windows Phone 8所支持的是Direct3D庫的子集,處於9_3的特性水平。更多Direct3D的特性支持和兼容性,參見Direct3D for Windows Phone 8.在託管應用中使用Direct3D的信息,參見 XAML and Direct3D apps for Windows Phone 8.

除了對Direct3D的支持,您也能夠經過Microsoft Media Foundation API來回放和捕捉音頻和視頻。而且,本地的音頻庫,XAudio2和WASAPI如今也能在手機上使用了。更多信息,參見Walkthrough: Using Microsoft Media Foundation for Windows Phone 8Native audio APIs for Windows Phone 8.

 

應用模式
Windows Phone 8支持兩種獨立的應用模式。

託管
託管應用使用XAML來定義用戶界面, 使用Visual Basic或C#做爲編程語言。現有的Windows Phone應用所使用的都是這種技術,徹底兼容Windows Phone 8。基於XAML的應用得到了一些新特性,好比新控件,高分辨率自動縮放。Windows Phone 8新加入的託管API,包含了Nokia maps提供的一個新的地圖控件和一個用於保管支付方式和容許NFC支付的錢包API。

本地
Windows Phone 8支持本地代碼的開發方式,包括Windows 8 SDK的重要子集,容許開發者在Windows 8和手機之間共享至關數量的代碼。經過加入對本地代碼開發的支持,Windows Phone 8減小了須要移植和維護的組件,好比運算引擎,圖形庫和API集。

Direct3D+XAML
對於那些既須要Direct3D的圖形能力,又想使用那些只針對託管應用特性(好比磁貼和XAML控件)的開發者來講,Direct3D和XAML的混合開發模式是很是有吸引力的。

HTML
Windows Phone 8並不支持基於HTML的手機應用。不過,開發者能夠建立一個XAML的託管應用,嵌入瀏覽器控件,並在其中顯示本地的HTML,它也能夠經過使用 InvokeScript方法和ScriptNotify事件來訪問手機的API。在Windows Phone 8中,內置的瀏覽器也升級到了Internet Explorer Mobile 10,加入了許多的新特性,好比對HTML5/CSS3的完善實現,SVG,ES5,IndexedDB,手勢事件,以及加入的高性能腳本引擎。這些都爲 Windows Phone 8的HTML開發者們開發新的、有趣的應用提供了可能。

更多針對Internet Explorer Mobile 10進行開發的信息,參見Internet Explorer 10 Guide for Developers.

 

攝像頭和照片
Windows Phone 8引入了Lenses,提供了自動上傳照片到Web服務的功能,擴展了拍照體驗,以及針對Windows Phone Runtime的高級API。此版本還強化了對照片的操做。

Lenses
在Windows Phone 8中,您能夠建立一種與內置攝像應用表現一致的,名爲lens的應用。lens爲用戶提供了統一的接口,指向您所編寫應用中的取景框。lens特性,對原 有的攝像頭API所提供的單一功能,進行了有效的擴展。經過lens,您的應用能夠經過取景框直接與攝像頭進行交互。更多信息,參見Lenses for Windows Phone 8.

照片處理
Picture類已經加入了新的擴展方法,包括GetPreviewImageGetPath。使用GetPreviewImage能夠提升圖片顯示的性能。該方法將根據用戶手機的最佳分辨率,返回WVGA,WXGA或720p尺寸的圖片。GetPath方法將返回圖片在媒體庫中的完整路徑,能夠把這個路徑做爲圖片的惟一標識。爲了使用這些方法,須要引入Microsoft.Xna.Framework.Media.PhoneExtensions.

同時加入的還有一個新的加載器, ShareMediaTask。經過 ShareMediaTask類,應用能夠直接訪問共享選擇器,這樣用戶能夠如同使用內置的圖片瀏覽器同樣來分享圖片了。更多信息,參見How to use the share media task for Windows Phone.

此外,PhotoChooserTask任務如今返回更加友好的文件名。在這個事件的處理程序中,OriginalFileName屬性直接返回照片的實際文件名。更多信息參見How to use the photo chooser task for Windows Phone.

照片的擴展性
Windows Phone 8引入了新的方法來擴展照片的體驗。除了對Photoshop Hub,照片應用選擇器和共享選擇器的擴展以外,您的應用也能夠像富媒體編輯器同樣,與照片編輯選擇器或註冊器進行交互。更多信息,參見Photo extensibility for Windows Phone.

自動上傳
在Windows Phone 8中,經過使用資源增強後臺代理,您的應用能夠自動上傳圖片到某個圖片存儲服務之中。將您的應用註冊爲自動上傳應用以後,您的後臺代理將會始終保持運行。更多信息,參見 Auto-upload apps for Windows Phone 8.

高級捕捉API
對於那些須要對攝像頭進行更好控制的應用,Windows Phone Runtime在 Windows.Phone.Media.Capture 命名空間中提供了更爲高級的捕捉API,使用Windows.Phone.Media.Capture.PhotoCaptureDevice類來控制照片的屬性,好比ISO,白平衡和曝光。甚至還能夠程序來調整聚焦的位置。Windows.Phone.Media.Capture.AudioVideoCaptureDevice提供了相似的針對視頻和音頻的控制。更多關於高級捕捉API的信息,參見 Capturing photos for Windows Phone 和Capturing video for Windows Phone.

除了以上API以外,Windows Phone 8還針對本地代碼提供了一組專門的接口。這些接口提供了對未壓縮照片數據和編碼後的音頻/視頻樣本的訪問。這裏還有個方法可使用當前的預覽幀來填充Direct3D的2-D材質。更多信息,參見 Camera APIs for native code (Windows Phone 8).

 

多媒體

音樂媒體庫
在Windows Phone 8中,您能夠經過MediaLirary類中的SaveSongDelete方 法來添加和移除用戶音樂集中的音樂文件。新的API位於 Microsoft.Xna.Framework.MediaLibraryExtensions.dll程序集的 Microsoft.Xna.Framework.Media.PhoneExtensions命名空間下。

圖片媒體庫
在Windows Phone 8中,對於每張存儲在手機裏的圖片,會自動建立下面這兩種縮略圖,並能夠經過您的應用進行還原。
- 小型縮略圖,您能夠經過Picture類下的GetThumbnail方法來檢索這種圖片。
- 預覽圖片,擁有和手機屏幕一致的分辨率,您能夠經過Picture類中,新的GetPreviewImage擴展方法來檢索這種圖片。

您可使用Picture類中新的GetPath擴展方法來獲取圖片的路徑。當用戶須要分享圖片的時候,這個方法返回的值能夠用於ShareMediaTaskFilePath屬性。

這個新的API能夠在Microsoft.Xna.Framework.MediaLibraryExtensions.dll程序集的Microsoft.Xna.Framework.Media.PhoneExtensions命名空間下找到。

背景音頻
在Windows Phone 8中,當BackgroundAudioPlayer的狀態改變時,您能夠經過 PlayStateChangedEventArgs得到狀態轉變的信息。您能夠肯定在音頻播放器進入當前播放狀態以前的狀態,是 CurrentPlayState仍是IntermediatePlayState

關於您能夠如何處理新的事件參數所提供的信息,下面是一些等價關係:

- IntermediatePlayState = BufferingStopped
- CurrentPlayState = Playing
- IntermediatePlayState = TrackEnded
- CurrentPlayState = Stopped

更多關於背景音頻的信息,參見Background audio overview for Windows Phone.


用戶界面

控件
Windows Phone 8提供了下面這些優秀的新控件:

- Windows Phone 8包含了一個LongListSelector控件,能夠分組,顯示和滾動很長的數據列表。它同時也提供了一種方法,可使用戶跳轉到列表的某一段。

- 在Windows Phone 8中,PivotPanorama控件已經由SDK中移出,轉而直接放置到手機的ROM中。這樣,您的應用就可使用獨立的本地輸入線程,也就意味着這些控件的響應能力會有極大的提高。對Panorama控件進行內存設置所需工做也得以減小。

- WebBrowser控件如今基於Internet Explorer 10,提供了HTML5和擴展版CSS的支持,從而得到更佳的瀏覽體驗。

- ProgressBar控件的性能也得以提高。您須要用這個控件來顯示基於值的進度條和不肯定值的進度條。

Launcher
您的Windows Phone 8應用能夠經過Launcher來幫助用戶執行經常使用的任務。如下是Windows Phone 8新加入的Launcher

- SaveAppointmentTask
- MapDownloaderTask
- MapsTask
- MapsDirectionsTask
- ShareMediaTask

更多關於Windows Phone 8新Launcher的信息,參見Launchers for Windows Phone.

 

通訊

VoIP
在Windows Phone 8中,您能夠建立Voice over IP(VoIP)應用,使用戶可使用數據流量來進行語音和視頻通話。VoIP應用集成進了內置的手機體驗,這樣撥入的電話會像普通的撥入電話同樣,使用一樣的手機UI進行顯示。更多信息,參見VoIP apps for Windows Phone 8.

藍牙
藍牙是一種無線通訊技術,相關設備可 以在10米內彼此進行通訊。您可使用Windows Phone 8新引入的Bluetooth API,經過藍牙技術與其餘手機進行通信。Windows Phone 8的核心藍牙使用場景,包括了應用對應用和應用對設備的通信,這開闢了普遍的可能性,使您的手機能進行更多的鏈接。更多信息,參見Bluetooth for Windows Phone 8.

Proximity
Windows Phone 8引入的了新的Proximity API,能夠用來建立以下的應用:
- 經過NFC來傳輸數據。
- 使用手機與NFC標籤進行交互。
- 在您的應用和臨近設備的應用之間創建Wi-Fi或藍牙鏈接。

對於兩部都擁有NFC芯片的手機,用戶只須要把它們防到一塊兒就能完成相關工做。

更多關於Proximity的信息,參見 Proximity for Windows Phone 8。Windows Phone 8中的Porximity也容許使用藍牙來進行應用對應用的鏈接。更多關於的Windows Phone 8中藍牙的信息,參見Bluetooth for Windows Phone 8.

Incoming sockets
Windows Phone 8引入了對incoming socket的加強。 System.Net.SocketsWindows.Networking.Sockets都支持incoming socket,這意味着您的應用能夠監聽傳入的網絡鏈接,並綁定到鏈接上。

支持IPv6
System.Net.Sockets中加入了對網絡上128位地址系統設備的支持,Windows.Networking.Sockets也一樣支持。

Windows.Net.Networking
Windows Runtime API中的Windows.Networking.Sockets,也加入了Windows Phone 8中。它是做爲Windows Phone Runtime API來是實現的,不論您使用的是什麼編程語言,均可以很方便地使用它。 雖然咱們已經增強了.NET API,System.Net.Sockets,以使其支持IPv6和socket監聽等新特性,不過您也能夠考慮使用這個新的API來進行socket編程,由於這樣更具可移植性。 Windows.Networking.Sockets從無到有,構建了一套乾淨,安全,易用的API,能夠執行最好的方案。更多對Windows Runtime API的信息,參見Windows Phone Runtime API.

Winsock本地API的支持
Windows Phone 8支持Winsock本地API。使用Winsock API的一個優點,是您能夠複用之前用過的Winsock代碼,這樣能夠方便您在Windows Phone OS 8.0平臺上建立應用。更多關於Winsock本地API的信息,參見Supported Win32 APIs for Windows Phone 8.

Data Sense
Windows Phone 8引入了新的Data Sense特性,能夠依據用戶所制定的流量限制計劃來控制流量,從而節省用戶的費用開銷。在Data Sense特性中,用戶能夠指定它們的流量限制計劃,而後Data Sense會根據限制來監視流量的使用狀況。有了這個信息,當用戶接近流量上限的時候,應用能夠經過下降對流量的使用來幫助用戶節省費用,也能夠在超出流 量限制的時候,停止對流量的使用。

更多關於Windows Phone 8中Data Sense的信息,參見How to adjust data usage using the Data Sense API for Windows Phone 8.

 

數據和擴展性

存儲
Windows Phone 8和Windows 8同樣,支持Windows Runtime和Win32中存儲API的子集。此版本還引入了 Microsoft.Phone.Storage命名空間,這個新的.NET API額能夠用於SD卡的讀取。更多信息,參見Data for Windows PhoneReading from the SD card on Windows Phone 8.

用戶聯繫人的存儲
您能夠設計一個Windows Phone 8應用,建立一組應用內的聯繫人信息,但又保持與手機內置應用一致的體驗。所提供的API能夠用來建立,更新,刪除和查詢應用的聯繫人信息。也能夠把應用的聯繫人列表和應用的雲端服務器中的列表進行同步。更多信息,參見Custom contact store for Windows Phone.

文件和URI的關聯
在Windows Phone 8中,您能夠創建與文件和URI的關聯,這樣當其它應用加載某種文件類型或URI語法的時候,就會自動調用您的應用。好比文件關聯容許啓動你的應用來處理 email附件。您也能夠經過使用association-launching API來根據某種文件類型或URI語法來加載其它的應用。更多信息,參見Auto-launching apps using file and URI associations for Windows Phone 8.

搜索的擴展
當你擴展了Windows Phone 8的Search體驗的時候,Quick card會向您的應用傳入更多的信息。這裏還有針對事件的新Quick card,Event card。這些改變的概述以下表所示。

Quick card 新的URI參數
Place Card PhoneNumber
Movie Card ReleaseDate
Event Card (new quick card) EventName, StartDate, PlaceName, PlaceLatitude, PlaceLongitude,PlaceAddress

關於這些參數的更多信息,參見Search extensibility for Windows Phone.

 

商店
應用內購買
應用內購買可使開發者編寫應用或遊戲來售賣虛擬物品。Microsoft的服務器承載了所容許進行應用內購買的商品的目錄,包括售價和描述性的元數據。Microsoft同時還提供了交易的基礎平臺,包括對世界190個地區用戶的付費支持。

對於每個用戶能夠購買的應用內付費產品,開發者都須要在Windows Phone Dev Center中輸入描述,除了針對每一個地區的不一樣價格,還須要包括用戶可能發生應用內付費的區域。經過使用Windows Phone 8的API,開發者沒必要編寫代碼來處理不一樣的付費產品。應用內購買支持用戶在應用和遊戲中進行付費的全部可能用到方法。應用或遊戲必須承載和並提供與應用 內商品相關的全部內容。更多信心,參見In-app purchase for Windows Phone 8.

 

適用於商用
對於註冊到了企業中的Windows Phone 8手機,能夠很方便地開發和發佈應用。關於在企業裏註冊手機和分發應用的具體流程信息,參見Company app distribution for Windows Phone 8.


本土化和全球化
在Windows Phone 8中,你能夠建立從右至左閱讀的應用,和使用雙向語言的應用。更多關於在Windows Phone 8中的新本土化和全球化特性的信息,參見Creating bidirectional apps for Windows Phone 8.

如今,您能夠爲一個應用程序域定義默認的文化。更多信息,參見 CultureInfo類。

 

應用清單文件
爲了支持諸如藍牙和NFC之類的新功能,應用清單文件中添加了一些新的capability。經過設置清單文件的需求部分,您能夠指定應用的硬件需求,以確保用戶的手機可以順利運行應用。更多關於Windows Phone 8新的capability和硬件需求,參見 App capabilities and hardware requirements for Windows Phone.

此外,如今能夠很方便地使用Visual Studio集成的Manifest Editor工具來編輯清單文件了。更多關於如何編輯應用清單文件的信息,參見How to modify the app manifest file for Windows Phone.

 

應用兼容性
Windows Phone 8引入了一些不一樣於Windows Phone 7.1的API。具體的區別,以及對您將要開發的應用有何影響,參見App platform compatibility for Windows Phone.

在許多狀況下,若是一個API在Windows Phone 8和原有系統中有着不一樣的不一樣的表現,那麼它將會被區別對待。也就是說,若是是針對Windows Phone OS 7.1的應用,這個API就和自動錶現爲7.1的行爲。反之,若是是針對Windows Phone 8的應用,這個API則會表現出新的行爲。更多信息,參見 App platform compatibility for Windows Phone中的"Quirks mode behavior in the .NET Framework"一節。

 

CLR
Windows Phone 8中的CLR提供瞭如下新特性,同時在如下領域與現有的Windows Phone會有所不一樣:

代碼生成
- Windows Phone 8採用了新的策略,在雲端預編譯應用,以加強啓動性能。爲了確保開發者所執行的應用體驗與用戶的設備一致,Windows Phone SDK 8.0提供了相應的工具。
- Windows Phone 8改進了對代碼嵌入的支持;再也不須要手工嵌入代碼了。
- JIT編譯器的代碼生成獲得了最優化。

線程
- .NET Framework能夠感知多核心。應用能夠經過線程池,Task Parallel Library,以及全部的同步原語來建立線程,以利用多個核心。

- 對多核心的支持,可能致使諸如Thread.Sleep之類API的表現有所不一樣。

安全模型
託管的沙盒已被移除。這樣的話,在Windows Phone OS 7.1中拋出的安全異常,好比MethodAccessException,可能不會在Windows Phone 8中拋出。

垃圾回收
Windows Phone 8的垃圾回收堆有2個階段,而再也不是Windows Phone OS 7.1中的3個。

- 在Windows Phone 8中,垃圾回收有一個很大的對象堆(LOH)。
- 在Windows Phone 8中,後臺垃圾回收無效。
- 手機的資源管理器會在一個應用接近內存上限的時候調用一次垃圾回收,並在超過內存上限的時候終止應用。
- 運行時的自調整垃圾回收觸發器,能夠被應用的強制垃圾回收調用所影響。
- 在Windows Phone 8中,垃圾回收的每一個線程分配性能都獲得了提升。

Portable Class Library
- Visual Studio 2012中的Portable Class Library項目容許你編寫託管程序集,以運行在多個.NET Framework平臺上。您可使用Portable Class Library項目來選擇目標平臺(好比Windows Phone 8和.NET for Windows Store apps)。那麼項目的可用類型和成員會根據所選的平臺而有所限制。

- 面向Windows Phone OS 7.1和Windows Phone 8的Portable class library均可以用於Windows Phone 8。請注意,當一個面向Windows Phone OS 7.1的Portable class library在運行於Windows Phone 8之上時,它的相關表現就和Windows Phone 8應用是一致的。更多信息,參見Cross-Platform Development with the .NET Framework.

交互
- 應用能夠經過託管代碼來調用Windows Runtime API。

- COM互操做和P/Invoke均不被支持。

整體性能
- 在Windows Phone 8中,使用System.Threading.Tasks命名空間下的類型來進行的同步和異步操做的性能都獲得了提高。此外,Stream相關的類如今加入了異步方法,以獲取加入到C#和Visual Basic語言中異步特性所帶來的優勢。更多信息,參見.NET Framework Version 4.5文檔中的 Asynchronous File I/O

- Windows Phone 8中的虛擬調用性能獲得提高。

- Windows Phone 8對Fast Application Switching的實現也獲得了提高。當進行當前激活應用切換的時候,它所管理的執行程序會暫停。一旦暫停了一個應用,CLR會保證它的CPU使用率降爲0,同時應用的全部超時設定都會被虛擬化。

相關文章
相關標籤/搜索