Ako urýchliť štart aplikácie vo Windows Phone 7
Windows Phone 7 obsahuje časový limit 5 sekúnd na štart každej aplikácie. Ak aplikácia tento časový limit prekročí, je pri štarte zabitá. Meranie dĺžky štartu aplikácie je taktiež súčasťou jedného z testov pri odoslaní aplikácie do Markeplace.
Dĺžku štartu vašej aplikácie môžete jednoducho zmerať pomocou Marketplace Test Kitu vo Visual Studiu, potrebujete na to však skutočný telefón, emulátor použiť možné nie je. Ak zistíte, že je dĺžka štartu vašej aplikácie viac ako 5 sekúnd, existuje niekoľko rád, pomocou ktorých je možné štart aplikácie zrýchliť.
Oneskorená inicializácia
Ak vaša App trieda obsahuje globálne objekty (napríklad view model), nevytvárajte ich staticky ale až v momente, keď je to naozaj potrebné.
Namiesto
public static MainViewModel ViewModel = new MainViewModel()
použite
private static MainViewModel _viewModel = null;
public static MainViewModel ViewModel
{
get
{
if (_viewModel == null)
{
_viewModel = new MainViewModel();
}
return _viewModel;
}
}
Minimalizujte kód v konštruktoroch
Spomínaný limit 5 sekúnd je limit na štart aplikácie, teda na zobrazenie prvej obrazovky (splashscreen sa ako prvá obrazovka neráta). Aplikácia však nemusí reagovať na vstup od požívateľa ihneď po štarte ale do 20 sekúnd. Minimalizujte preto kód v konštruktoroch a všetko, čo sa dá, vykonávajte pri navigácií na stránku (metóda OnNavigatedTo) alebo handleri udalosti Loaded.
Namiesto
public MainPage()
{
InitializeComponent();
//kod
}
použite
public MainPage()
{
InitializeComponent();
Loaded += MainPageLoaded;
}
private void MainPageLoaded(object sender, RoutedEventArgs e)
{
//kod
}
Používajte obrázky ako Content nie ako Resource
Ak vložíte do projektu nový obrázok, jeho Build Action je nastavená na Resource. To znamená, že daný obrázok bude skompilovaný do výsledného DLL súboru. Väčší DLL súbor znamená pomalšie načítavanie. Hodnota Content vlasnosti Build Action znamená, že obrázok bude do výsledného XAP súboru vložený vedľa DLL súboru a aplikácia bude štartovať rýchlejšie.