Windows Phone SDK 8.0新特性(翻譯)


原文地址:What's new in Windows Phone SDK 8.0

歡迎使用Windows Phone SDK 8.0。Windows Phone 8為開發人員提供了一些新特性和升級特性。包括本地代碼的游戲開發,手機版的Windows Runtime,以及新的內核。我們把這些介紹都集中在一起,以方便您熟悉Windows Phone 8和Windows Phone SDK 8.0的這些特性。我們對您將會在SDK中用到的這些工具非常得滿意。這些工具可以幫助您創建Windows Phone的應用,並使這些應用的用戶們更加喜愛Windows Phone。在這里,我們將簡單地介紹您在應用開發中可能用到的特性,並給出了進行深入了解的鏈接。

本主題包含了以下章節:

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

 

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

開發工具和特性

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.

- 對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,同時應用的所有超時設定都會被虛擬化。

 

相關主題

其它資源

App platform compatibility for Windows Phone


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM