Igor Kulman

Príprava Windows Phone aplikácie na low-end zariadenia

· Igor Kulman

Nové low-end Windows Phone zariadenia, ktoré sa začínajúpostupne objavovať na trhu, obsahujú niekoľko obmedzení. Tým hlavným je dostupnosť len 256 MB a z toho vyplývajúca absencia PeridicTask a ResourceIntensiveTask. Ak teda niektorú z týchto funkcií vo svojej aplikácií používate, príde vám určite vhod možnosť zistiť, či bola aplikácia spustená na low-end zariadení.

Detekcia low-end zariadenia

Na detekciu low-end zariadenia je možné využiť jednoduchý kód, ktorý na svojej Wiki zverejnila Nokia:

public static class LowMemoryHelper 
{ 
  public static bool IsLowMemDevice { get; set; } 
  static LowMemoryHelper() 
  { 
      try 
      { 
          Int64 result = (Int64)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit"); 
          if (result < 94371840L) 
             IsLowMemDevice = true; 
          else IsLowMemDevice = false; 
      } 
      catch (ArgumentOutOfRangeException) 
      { 
         // Windows Phone OS update not installed, which indicates a 512-MB device.  
         IsLowMemDevice = false; 
      } 
  } 
}

Detekcia low-end zariadenia je už potom jednoduchá:

if (LowMemoryHelper.IsLowMemDevice) 
{ 
     //do not register periodic tasks 
}

Okrem neregistrovania a nespúšťania PeriodicTask a ResourceIntensiveTask príde na low-end zariadeniach vhod aj vypnutie animácií alebo použitie komponent ako DefferedLoadListBox.

Low-end opt-out

Beh aplikácie na low-end zariadeniach nie je povinný a Microsoft ponúka možnosť behu aplikácie len na zariadeniach s 512 MB RAM. Aplikácia sa tak low-end zariadeniam síce zobrazí v Marketplace, nebude ju však možné nainštalovať. Ak sa rozhodnete pre túto možnosť, stačí do WMAppManifest.xml pridať za sekciu Capabilities nasledujúcu definíciu:

<Requirements>  
    <Requirement Name="ID_REQ_MEMORY_90" /> 
</Requirements>