最近看到Nokia Lumia 520 和 720 即將上市的消息在網上熱議,相信這兩款手機會以更親民的價格快速進入市場,隨之開發者一定會關心到的一個問題是由於硬件的差異我們在開發過程中需要注意或者做哪些更改呢?今天我跟大家聊聊在硬件功能受限的設備上開的一些注意要點。
升級到WP8必需知道的13個特性 系列文章目錄地址:http://www.linuxidc.com/Linux/2013-08/89003.htm
首先說下內存
明確兩個名稱“低內存設備”和“高內存設備” MSDN上的解釋是 1GB 以上內存的手機稱之為高內存設備,也就是說1GB是這兩種設備的分水嶺。
通過上圖可以看到在我們的一般應用中 低內存設備內存限制是 180MB,高內存設備是380MB。
當然如果你想讓你的應用一些功能只運行在高內存的設備上,得到一個最佳運行效果通過代碼是可以判斷實現的:
private void Application_Launching(object sender, LaunchingEventArgs e) { try { // Check the working set limit and set the IsLowMemDevice flag accordingly. Int64 result = (Int64)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit"); if (result < 94371840L) MainPage.IsLowMemDevice = true; else MainPage.IsLowMemDevice = false; } catch (ArgumentOutOfRangeException) { // Windows Phone OS update not installed, which indicates a 512-MB device. MainPage.IsLowMemDevice = false; } }
當然這裡的 94371840L 是一個閥值 也可以自己設定。
參考 :http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/hh855083(v=vs.105).aspx
另外 我也也可以在低內存設備上申請更多內存的使用空間(如果你需要)
<App> … <Requirements> <Requirement Name="ID_REQ_FRONTCAMERA"/> </Requirements> <FunctionalCapabilities> <FunctionalCapability Name="ID_FUNCCAP_EXTEND_MEM"/> </FunctionalCapabilities> </App>
以上這段代碼演示了如何使用 ID_FUNCCAP_EXTEND_MEM 在低內存設備上當應用內存使用超過180MB後不強制退出。
<App> … <Requirements> <Requirement Name="ID_REQ_FRONTCAMERA" /> <Requirement Name="ID_REQ_MEMORY_300" /> </Requirements> </App>
並且聲明了ID_REQ_MEMORY_300 表示次應用不會被低內存設備搜到以及禁止被安裝。
如果你想在你的應用中減少內存使用可以注意以下事項:
硬件要求了解應用清單文件:
要修改清單文件,您可以使用清單設計器。但是,在某些情況下您還必須手動編輯文件的 XML 內容。例如,當以下任意條件為真時,您必須手動編輯 XML:
清單設計器有四個頁面:
應用程序 UI 沒有什麼特別都樣。
功能頁面:這裡面的是聲明你的應用程序會涉及到那些API的使用,在此聲明後才可以在應用中使用,否則該功能會在設備中禁用。
硬件要求和確定功能列表請參考:
硬件要求 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206936(v=vs.105).aspx
功能列表 http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg180730(v=vs.105).aspx
這裡的選項會顯示在應用商店的提示中,例如:此應用會獲取你的地理位置信息,獲取你的通訊錄信息,更改你的鎖屏圖片等...
如何在Ubuntu 14.04上連接Windows Phone設備(Nokia Lumia)
從 Windows Phone7 到 Windows Phone 8 更新 如何設配兩個版本
Windows Phone 8 與 Windows 8 開發技術概覽
Windows Phone & Windows 8 Push Notification from Windows Azure
在Windows Phone Store 商店中提交你的 Windows Phone 8 應用
Windows Phone 8 語音 - Speech for Windows Phone 8