Silverlight桌面應用程式的大部分代碼無需修改就可以直接在Windows Phone上編譯運作。将成熟的Silverlight應用從桌面往手機移植時需要特别關注的是一些細節,這可以在改寫和優化兩步中進行。
<b>第一步,改寫成可以在手機上運作應用程式。</b>
用Windows Phone 開發工具建立新項目,并從桌面應用程式中複制相關代碼。用Frame和Page 進行導航的桌面應用需要改成基于PhoneApplicationFrame和PhoneApplicationPage進行導航的手機應用。有網絡接口的應用程式,需要确認網絡服務(Web Service)的接口類型,必要時重寫網絡接口部分。最後通過編譯找到和修改可能存在的其他移植問題。
<b>第二步,需要對應用程式進行針對手機的優化。</b>
使用者界面需要針對手機螢幕的大小和分辨率進行優化。由于手機螢幕的尺寸限制,原使用者界面上的文字可能會太小,不便閱讀或觸控。調整後的文字不應該寫死,字号設定成15以上。觸控區域應不小于9平方毫米或34像素。
手機螢幕有縱向的肖像模式(480 × 800)和橫向的風景模式(800 × 480),應用程式應該考慮同時支援兩種模式。Grid和StackPanel控件的靈活性高,适合于兼顧橫向和縱向兩種模式的應用程式。而Canvas控件使用螢幕上的絕對坐标值,對實作的依賴性高,是以适用于螢幕是單一橫向或單一縱向模式的應用程式。考慮到有些手機配有硬體鍵盤,必要時應該禁止鍵盤輸入。
優化使用者界面風格時應該遵循Metro風格,也就是簡潔、明确、便于移動中操作。可以選用全景視圖或樞軸視圖,便于使用者快速在頁面間浏覽。還可以選用菜單欄,便于使用者進行最常用的操作。
優化ListBox等控件的實作,就能支援手勢輸入。對使用者自定義控件可以增加單擊、輕按兩下等滑鼠事件的支援,進而支援相應的手勢輸入。
一些應用程式的功能,如動畫可能需要重新編碼,以滿足使用者期望的性能。
使用網絡服務的應用程式,需要考慮相應網絡性能的優化。除了需要考慮手機上網絡帶寬的限制,還要充分考慮到網絡延遲對應用程式性能的影響。在進行資料傳輸前,需要提前激活無線子產品。依賴于網際網路的應用程式,應該在獨立存儲區中緩存資料,并在網絡中斷時及時報錯。如果應用程式頻繁請求網絡服務(Web Service),應該使用緩存機制收集資料、集中發送,以降低連接配接頻率、提高效率。如果應用程式需要等待來自網絡服務的更新,應該使用微軟推送通知服務來及時收到通知。對背景運作的應用程式可以使用彈出通知,而前台運作的應用程式可以使用原生通知。
此外,應用遷移時還可以擴充原有應用程式功能,使用GPS、照相機等硬體,發揮手機獨特的優勢。
本文轉自
飛雁 51CTO部落格,原文連結:http://blog.51cto.com/felixyan/527298 ,如需轉載請自行聯系原作者