歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Windows Phone 8 如何在內存與硬件受限的設備上開發

Windows Phone 8 如何在內存與硬件受限的設備上開發

日期:2017/3/1 9:53:47   编辑:Linux編程

最近看到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 表示次應用不會被低內存設備搜到以及禁止被安裝。

如果你想在你的應用中減少內存使用可以注意以下事項:

  1. WebBrowser,地圖,相機都會有額外的內存開銷,盡可能的使用 windows phone 啟動器/選擇器
  2. 避免使用長的數據列表,如果使用,確保是分頁的。按需加載數據,而不是一次性加載全部數據。
  3. 避免使用具有圖像的復雜項模板。如果使用了,則監視應用的內存使用。
  4. 避免對頁面過渡使用復雜動畫。這包括 Windows Phone 工具包中的過渡。如果使用過渡,請確保應用保持響應,並測試頁面過渡期間應用的內存使用。
  5. 注意,如果用戶在運行應用時更改設備方向,則應用所用的內存可能會增加。應在方向更改時測試應用,並且如果應用通常超過 90-MB(180MB) 的內存限制,應取消低內存設備。

硬件要求了解應用清單文件:

要修改清單文件,您可以使用清單設計器。但是,在某些情況下您還必須手動編輯文件的 XML 內容。例如,當以下任意條件為真時,您必須手動編輯 XML:

  1. 聲明應用使用了擴展關聯屬性。
  2. 聲明應用使用了位置服務並在後台運行。
  3. 聲明應用無法在內存受限的設備上運行。

清單設計器有四個頁面:

  1. 應用程序 UI
  2. 功能
  3. 要求
  4. 打包

應用程序 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

這裡的選項會顯示在應用商店的提示中,例如:此應用會獲取你的地理位置信息,獲取你的通訊錄信息,更改你的鎖屏圖片等...

Copyright © Linux教程網 All Rights Reserved