Proces został niespodziewanie zatrzymany - aplikacje Android

Android

Awarie kodu natywnego w systemie Android są dość częstym zjawiskiem skutecznie uprzykrzającym nam życie. Na bazie naszych doświadczeń przedstawiamy jeden z tego typu problemów, który niestety nadal jest żywotny mimo upływu czasu wśród sporej rzeszy właścicieli urządzeń koreańskiego producenta inteligentnych telefonów.


Android jako mobilny system operacyjny, który zarządza większością urządzeń tego typu na świecie mimo swoich problemów jak np. kwestia fragmentacji, zalicza się do jednych z najbardziej udanych, zarówno pod względem architektury jak i przede wszystkim marketingowym. Firmie Google można zarzucić co prawda pod tym względem bardzo wiele jak choćby traktowanie po macoszemu bezpieczeństwa swojego systemu, czy choćby kiepska polityka współpracy obustronnej na linii Google - producenci urządzeń, co skutkuje brakiem wsparcia średnio już tuż po roku od wyprodukowania danego urządzenia i wrzuceniu go na rynek konsumencki. Niemniej należy zauważyć że najnowsza wersja Androida oznaczona numerem 5 o nazwie kodowej Lollipop, czyni znaczące kroki, aby poprawić tę sytuację w przyszłości.

Niestety, jedynie w bliżej nieznanej przyszłości...ale temat najnowszego Androida poruszymy w oddzielnym artykule, gdyż na to z pewnością zasługuje. Póki co chcieliśmy poruszyć kłopotliwą kwestię dla wielu użytkowników, która mimo, iż upłynęło dobre półtorej roku (od lipca 2013), nadal nie została rozwiązana i się na to w dalszej perspektywie nie zanosi. Lipiec 2013 to czas kiedy świat ujrzał Android w wersji 4.3 Jelly Bean, który oprócz wprowadzenia niewątpliwych nowości jak choćby obsługa Bluetooth LE czy rozdzielczości 4K, wprowadziła do systemu także zmiany optymalizacyjne (mowa tutaj m.in. o rozwiązaniu TRIM - usprawnienie działania pamięci podręcznej), które łączy się często z problemem nagłej awarii wielu aplikacji korzystających z komponentu WebView w niektórych urządzeniach, szczególnie z serii Samsung Galaxy.

Otóż problem, a tak naprawdę zestaw problemów opisywany jest na forach deweloperskich jako Awaria kodu natywnego w bibliotece /system/lib/libwebcore.so w /system/lib/libwebcore.so, /system/vendor/lib/libv8.so, unknown, bądź pochodne i tak też figuruje w systemie zgłoszeń konsoli deweloperskiej Google Play. Nie wdając się w szczegóły techniczne, oznacza on, krytyczną awarię składnika systemowego, która powoduje jego zamknięcie, tym samym nagłe zamknięcie aplikacji z niego korzystającej. Można zauważyć, że tym składnikiem systemowym jest nierzadko WebView, a więc dość kluczowy komponent systemu, który jest wykorzystywany w bardzo wielu aplikacjach w Google Play - m.in. naszej - Polska Prasa RSS.

Problem jest o tyle kłopotliwy, że dla użytkownika jest po prostu frustrujący, natomiast dla deweloperów aplikacji niejednokrotnie nierozwiązywalny, ponieważ dotyczy czegoś na co nie mają po prostu wpływu. Jak wyeliminować problem, który nie powoduje nasz własny kod, a jedynie część systemu z którego korzystamy? Ponadto co zrobić, kiedy dane wejściowe do komponentu są firmy trzeciej? (vide kanały informacyjne RSS) Niestety, odpowiedź jest tak samo prosta, jak i niewykonalna dla znakomitej większości użytkowników - zaktualizować system, bądź nie korzystać z tej części systemu. I tutaj kłania się polityka firmy Google wobec jej systemu skutkująca brakiem centralnie zarządzanych aktualizacji, co doprowadza do rozpaczy sporą grupę ludzi.

Czemu poruszamy ten problem? Otóż nasza flagowa aplikacja Polska Prasa RSS, także cierpi na tą przypadłość, którą bardzo chcemy wyeliminować, ale niestety nie jest to w naszym zasięgu. Dostajemy przynajmniej kilka razy w miesiącu zgłoszenia typu - "nagłe wyłączenie się aplikacji na stronie artykułu, czy podczas jego wczytywania". Przykro nam to pisać, ale nasza analiza dowodzi, iż nie jesteśmy w stanie na zaistniały stan rzeczy wpłynąć. Wiemy natomiast, że problem występuje na urządzeniach mających na pokładzie system Android 4.3 (99% zgłoszeń) oraz Android 4.4 (1% zgłoszeń), producentem jest w każdym przypadku Samsung, natomiast urządzenia to (od najbardziej awaryjnych):

  • Galaxy S3 (m0)
  • Galaxy S3 (m3)
  • Galaxy Note II (t03g)
  • Galaxy Note2 (t0lte)
  • Galaxy S4 (jflte)
  • Galaxy Note3 Neo (hllte)
  • Galaxy Grand2 (ms01lte)
  • Galaxy Note 10.1 2014 Edition (lt03lte)
  • Galaxy S5 Dual SIM (klte)

Lista robi spore wrażenie, ponieważ to w zasadzie same flagowe urządzenia najpopularniejszego producenta smartphonów z Androidem i tym samym dziwi, bo problem tym bardziej powinien być szybko wyeliminowany, jak nie aktualizacją od samego Google (co wydaje się niemożliwe i zakrawa na pobożne życzenia), to przynajmniej od wiodącego na tym rynku koreańskiego producenta. Najgorszy w tej kwestii jest fakt, iż cała frustracja użytkowników wylewa się na twórców aplikacji. Użytkownik nie ma szansy rozróżnić co jest błędem aplikacji, a co systemu - z góry zakłada że to problem aplikacji, co skutkuje oczywiście krytyczną oceną, w najgorszym przypadku odinstalowaniem.

Jak zwykle apelujemy do naszych użytkowników o większą świadomość w korzystaniu z urządzeń mobilnych jak i mniej bezkrytyczne podejście do swoich urządzeń, bowiem jak wiemy z własnego doświadczenia droga bardzo często i tutaj jest wyboista. Zalecamy jeśli to możliwe i jest w zasięgu naszej wiedzy, aktualizację systemu do wersji >= 4.4, gwarantujemy że korzystanie z urządzenia będzie zarówno bardziej bezpieczne, jak i mniej problemowe w codziennym użytkowaniu, z reguły przekłada się to nie tylko na większą stabilność, ale także większą responsywność aplikacji jak i systemu.

Opublikowano Styczeń 2015