Fragmentacja w systemie Android

podstawowy-przewodnik-programowanie-android-6

Fragmentacja Androida to największa trudność, na jaką napotykają programiści przy wprowadzaniu aplikacji na rynek. Android jest daleki od ujednoliconej platformy z kilkoma urządzeniami, takimi jak iOS.

Kilka liczb na temat fragmentacji

Aby zorientować się, jak podzielony jest Android, możemy zobaczyć prawdziwy przypadek użycia. Istnieje kilka firm, które publikują powszechnie używane aplikacje, a później zbierają dane o użytkowaniu. Jednym z nich jest OpenSignal, który niedawno opublikował swoje najnowsze badanie.

Liczby są porażające:

  • W tym roku obejrzano 18.796 11.868 różnych urządzeń z Androidem, w porównaniu do 58 XNUMX w zeszłym roku (o XNUMX% więcej).
  • Samsung jest czołowym wiodącym producentem z 43% urządzeń. Reszta jest dystrybuowana przez ponad 80 różnych producentów.
  • Aktywnych jest 6 różnych wersji systemu operacyjnego, a liczba użytkowników jest wystarczająco duża, aby można je było zignorować.
  • Istnieje również bardzo duża liczba różnych rozdzielczości i rozmiarów ekranu. I oczywiście z różnymi proporcjami między wysokością a szerokością.

Do tych danych należy dodać różne elementy sprzętowe, takie jak zestaw czujników, które mogą się różnić w zależności od urządzenia lub inny procesor graficzny, co sprawia, że ​​twórcy gier OpenGL muszą objąć je wszystkie.

Krótko mówiąc, koszmar, który jeśli nie zapanujemy nad nim we właściwy sposób, może kosztować nas więcej niż jedno zdenerwowanie. Nierzadko można znaleźć projekty na Androida, w których po ukończeniu pierwszej wersji więcej czasu poświęca się na portowanie do różnych modeli niż w samej pierwszej wersji. Może to stać się bardzo frustrujące.

W obliczu fragmentacji

Choć jest to skomplikowane zadanie, jeśli zachowamy pewną dyscyplinę w rozwoju, możemy osiągnąć dobry wynik w rozsądnym czasie. W tym celu zaczniemy od kilku wcześniejszych rozważań.

Pracuj z fragmentacją od początku

Częstym błędem jest utworzenie najpierw określonej wersji dla konkretnego telefonu komórkowego, a następnie przeniesienie. Często zdarza się, że popadamy w komfort patrzenia tylko na urządzenie, które mamy pod ręką, ale jeśli zamierzamy wprowadzić naszą aplikację na szeroki rynek, pozostawienie fragmentacji do końca zmusi nas do kosztownych zmian w naszym projekcie. Zajmiemy więcej czasu i popełnimy więcej błędów. Na przykład, gdybyśmy nie zaprojektowali naszych widoków tak, aby były elastyczne i dostosowywały się do różnych rozmiarów ekranu, musielibyśmy je później przerobić. Coś podobnego do tego, co stało się z lokalizacja zasobu.

W tym sensie istnieje szereg pytań, które możemy sobie zadać przed rozpoczęciem, a które pomogą nam mieć mapę drogową.

  • Jaką wersję systemu operacyjnego chcę obsługiwać? Tylko najnowsze telefony, czy też chcę, aby moja aplikacja działała na starszych modelach?
  • Czy chcę obsługiwać tylko telefony komórkowe, tylko tablety, czy jedno i drugie?
  • W jakich krajach chcę opublikować swoją aplikację? Jakie języki chcę obsługiwać?

Pierwszym pytaniem możemy zadać sobie pytanie, jaką funkcjonalność chcemy zawrzeć w naszej aplikacji. Jeśli będziemy wspierać stare wersje, będziemy musieli wybierać między rezygnacją z funkcjonalności nowych wersji Androida, a wydaniem różnych wersji naszej aplikacji. Moja osobista rekomendacja to pierwsza opcja, chyba że masz wystarczające zasoby i programistów do pracy z dwiema różnymi wersjami tego samego produktu.

Z drugim, będziemy mieć jasność co do tego, jak będziemy musieli rozwijać nasze poglądy, nie tracąc z oczu różne wersje naszych zasobów graficznych. Wreszcie, oprócz lokalizacji tekstów, należy wziąć pod uwagę, że w zależności od kraju, w którym publikujemy naszą aplikację, będą starsze lub nowsze telefony komórkowe.

Załóżmy, że nie można objąć wszystkich telefonów komórkowych

Przy tak dużym rozdrobnieniu zawsze będą „rzadkie” przypadki, których nie warto omawiać. Zawsze znajdzie się model, który będzie miał problem z nagrywaniem lub odtwarzaniem dźwięku lub wykonaniem określonego formatu wideo... lub z jakąkolwiek inną możliwością. Fakt, że Android jest systemem darmowym, pozwala każdemu producentowi w pewnym stopniu zaimplementować system operacyjny według swoich upodobań, co nieuchronnie spowoduje, że będziemy mieli trudne do objęcia modele.

Tutaj niezbędny jest dobry pragmatyzm. Pokrycie kilku urządzeń, z których korzysta bardzo mała liczba użytkowników, jest niewykonalne, zajmie nam to więcej czasu niż pokrycie zwykłych urządzeń. Najlepszą strategią jest zabezpieczenie urządzeń, które w danym momencie są najbardziej obecne na rynku, co z kolei pomoże nam sprawić, by wiele innych również działało. Następnie będziemy udoskonalać naszą aplikację, aż uzyskamy dość dobry zasięg — dobrze rozwinięta aplikacja z łatwością przekracza 80%.

Mając to wszystko możemy przystąpić do pracy. Chociaż wymieniliśmy już kilka przydatnych technik, teraz przejrzymy je szczegółowo.

  • Nasze poglądy zawsze będą elastyczne. Nigdy nie będziemy używać wartości bezwzględnych dla rozmiarów pikseli, nie mówiąc już o AbsoluteLayout. Wszystkie nasze pomiary będą dokonywane w zależnych pikselach lub dp, i będziemy używać względnych proporcji i pomiarów, gdy tylko będzie to możliwe.
  • Przetestujemy nasze poglądy na różnych rozmiarach ekranu. Aby uniknąć konieczności testowania ich wszystkich, dobrym przybliżeniem jest przetestowanie jednego z największych urządzeń, jednego z najmniejszych i jednego pomiędzy.
  • Zadbamy o to, aby wszystkie zasoby graficzne były dostępne dla wszystkich gęstości ekranu, co ułatwi nam posiadanie w 100% elastycznych widoków.
  • Zadbamy o to, aby teksty były oddzielone od kodu, aby wspierać internacjonalizację.
  • Wybierzemy najniższą wersję systemu operacyjnego, z jaką będziemy pracować i rozwijamy się tylko z nią, jeśli to możliwe. Jeśli nie, stworzymy różne wersje dla różnych systemów operacyjnych, chociaż im mniej, tym lepiej. Czasami znajdziemy biblioteki innych firm, które implementują funkcje najnowszych wersji bez konieczności bezpośredniego ich używania, jest to interesująca alternatywa do rozważenia.
  • Nieuchronnie będziemy testować. Na rynku są firmy zajmujące się wyłącznie testowaniem iw całkiem rozsądnych cenach możemy dostać automatyczny test do szerokiej gamy urządzeń.
  • I wreszcie nie wykluczamy raportów o błędach użytkowników, które nieuchronnie do nas dotrą. Dzięki nim z pewnością odkryjemy szczegóły, które przeoczyliśmy.

Jesteś zainteresowany:
Jak usunąć wirusy z Androida
Obserwuj nas w Wiadomościach Google

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Actualidad Blog
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.