Príprava Windows Phone aplikácie na low-end zariadenia
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>