Bugsense – padání androidích aplikací v reálném čase aneb NullPointerException je šmejd!

1

bugsense

Také vás vždy zajímalo, kvůli jakým chybám nejčastěji padají androidí aplikace? Jestli je za pády spíše odpovědný samotný systém nebo naopak programátor aplikace? A kolik procent uživatelů se průměrně s pády setká?

Tak na tyto a ještě několik málo dalších, zajisté zajímavých, otázek naleznete odpověď na poměrně nové službě bugsense.com/live, která zobrazuje data ze stejnojmenného systému určeného právě k inteligentnímu zachytávání a shromažďování dat o pádech aplikace.

A ačkoliv nenabízí žádné podrobnější informace, tak vzhledem k objemu dat, na kterých staví, 40 milionech záznamech o pádech na 320 milionech zařízení, přináší opravdu překvapivé výsledky. Nejvíce pádů má na svědomí Android 2.3.6, druhý je s velkým odstupem 2.3.5 a první po-Ice-Cream-Sandwich verze 4.2.2 má skoro zanedbatelný podíl.

Z hlediska konkrétních výjimek vede odkazování na neexistující objekt NullPointerException následovaný generickou RuntimeException a IllegalArgumentException. U starších verzí se projevuje také nedostatek paměti OutOfMemoryError.

Zajímavý je také pohled, kolik procent uživatelů se s chybami průměrně setká a jaký to má dopad na používání daných aplikací. Podle informací z bugsense zasáhnou chyby 18 % uživatelů, 5 % ze všech, tedy necelou čtvrtinu ze zasažených, toto setkání natolik odradí, že přestanou aplikaci používat.

A nakonec překvapí i viník chyby. Podle údajně přesné heuristiky může za 86 % veškerých pádů programátor aplikace, u 3 % chyb je viníkem Android, 11 % pak připadá nevhodně použitému API.

Dlužno poznamenat, že výše zmíněné informace nejsou získané z průměrných aplikací, ale pouze těch, které využívají systému bugsense, tedy těch, u kterých se dá předpokládat zájem programátora o menší výskyt chyb. Reálná situace u průměrných aplikací tak bude zřejmě ještě vyšší, obzvláště u podílu uživatelů, kteří se s nějakou chybou setkají, bych si dovolil předpokládat výrazně vyšší číslo.

Zdroj: bugsense.com/live

  • OndrejPaska

    V objective-c prý když přistoupíš na null, tak to jen ignoruje a jede dál. Těžko říct jak se pak aplikace ladí (jak se najde kde chyba vznikla).