Fragmentatie op Android

basisgids-programmeren-android-6

De versnippering van Android is de grootste moeilijkheid die ontwikkelaars tegenkomen bij het op de markt brengen van een applicatie. Android is verre van een verenigd platform, met een paar apparaten zoals iOS.

Enkele cijfers over fragmentatie

Om een ​​idee te krijgen van hoe verdeeld Android is, kunnen we een echte use case zien. Er zijn verschillende bedrijven die veelgebruikte applicaties publiceren en later gebruiksgegevens verzamelen. Eén daarvan is OpenSignal, dat onlangs zijn nieuwste onderzoek publiceerde.

De cijfers zijn vernietigend:

  • 18.796 verschillende Android-apparaten bekeken dit jaar, vergeleken met 11.868 vorig jaar (58% meer).
  • Samsung is de prominente toonaangevende fabrikant met 43% van de apparaten. De rest wordt gedistribueerd door meer dan 80 verschillende fabrikanten.
  • Er zijn 6 verschillende versies van het besturingssysteem actief met een aantal gebruikers dat groot genoeg is om genegeerd te worden.
  • Er is ook een zeer groot aantal verschillende resoluties en schermformaten. En natuurlijk met verschillende verhoudingen tussen hoogte en breedte.

Aan deze gegevens moeten verschillende hardware-elementen worden toegevoegd, zoals een set sensoren die van apparaat tot apparaat kan verschillen, of een andere grafische processor waardoor ontwikkelaars van OpenGL-games ze allemaal moeten dekken.

Kortom, een nachtmerrie, die ons, als we ze niet goed beheersen, meer dan één keer van streek kan maken. Het is niet ongebruikelijk om Android-projecten te vinden waarin, na het voltooien van de eerste versie, meer tijd wordt besteed aan het overzetten naar de verschillende modellen dan in de eerste versie zelf. Het kan erg frustrerend worden.

Geconfronteerd met fragmentatie

Hoewel het een ingewikkelde taak is, kunnen we, als we een bepaalde discipline in de ontwikkeling volgen, binnen een redelijke tijd een goed resultaat behalen. Daarvoor zullen we beginnen met een aantal eerdere overwegingen.

Werk vanaf het begin met fragmentatie

Het is een veelgemaakte fout om eerst een specifieke versie voor een specifieke mobiele telefoon te maken en vervolgens te porten. Het is normaal om te vervallen in het gemak om alleen naar het apparaat te kijken, maar als we onze applicatie voor een brede markt gaan lanceren, zal het tot het einde laten van fragmentatie ons dwingen om kostbare wijzigingen in ons project aan te brengen. We zullen meer tijd nemen en meer fouten maken. Als we onze weergaven bijvoorbeeld niet zo hadden ontworpen dat ze flexibel zijn en zich aanpassen aan verschillende schermformaten, zouden we ze later opnieuw moeten maken. Iets vergelijkbaars met wat er gebeurde met de bron locatie.

In die zin zijn er een aantal vragen die we onszelf kunnen stellen voordat we beginnen, en die ons zullen helpen om een ​​routekaart te hebben.

  • Welke OS-versie wil ik ondersteunen? Alleen recente telefoons, of wil ik dat mijn app werkt voor oudere modellen?
  • Wil ik alleen mobiele telefoons, alleen tablets of beide ondersteunen?
  • In welke landen wil ik mijn applicatie publiceren? Welke talen wil ik ondersteunen?

Bij de eerste vraag kunnen we ons afvragen welke functionaliteit we in onze applicatie willen opnemen. Als we oude versies ondersteunen, zullen we moeten kiezen tussen het opofferen van de functionaliteit van de nieuwe versies van Android of het uitbrengen van verschillende versies van onze applicatie. Mijn persoonlijke aanbeveling is de eerste optie, tenzij je genoeg middelen en ontwikkelaars hebt om met twee verschillende versies van hetzelfde product te werken.

Met de tweede zullen we duidelijk zijn over hoe we onze opvattingen zullen moeten ontwikkelen, zonder uit het oog te verliezen de verschillende versies van onze grafische middelen. Ten slotte moet er, afgezien van de locatie van de teksten, rekening mee worden gehouden dat er, afhankelijk van het land waar we onze applicatie publiceren, oudere of modernere mobiele telefoons zullen zijn.

Ga ervan uit dat niet alle mobiele telefoons gedekt kunnen worden

Met zoveel versnippering zullen er altijd "zeldzame" gevallen zijn die niet de moeite waard zijn om te behandelen. Er zal altijd een model zijn dat een probleem heeft met het opnemen of reproduceren van geluid, of het uitvoeren van een bepaald videoformaat... of welke andere mogelijkheid dan ook. Het feit dat Android een gratis systeem is, stelt elke fabrikant in staat om het besturingssysteem tot op zekere hoogte naar eigen wens te implementeren, wat er onvermijdelijk toe zal leiden dat we modellen hebben die moeilijk te dekken zijn.

Hierbij is een goed pragmatisme essentieel. Een paar apparaten dekken die door een zeer klein aantal gebruikers worden gebruikt, is niet haalbaar, het zal ons meer tijd kosten dan gewone apparaten. De beste strategie is om de apparaten te beveiligen die op dat moment het meest aanwezig zijn op de markt, wat ons op zijn beurt zal helpen om veel van de andere ook te laten werken. We gaan dan door met het verfijnen van onze app tot we een redelijk goede dekking krijgen - een goed ontwikkelde app overschrijdt al snel de 80% dekking.

Met dit alles kunnen we aan de slag. Hoewel we al enkele nuttige technieken hebben aangehaald, zullen we ze nu in detail bespreken.

  • Onze standpunten zullen altijd flexibel zijn. We zullen nooit absolute waarden voor pixelgroottes gebruiken, laat staan ​​een AbsoluteLayout. Al onze metingen zijn in afhankelijke pixels, of dp, en we zullen waar mogelijk relatieve verhoudingen en metingen gebruiken.
  • We testen onze weergaven op verschillende schermformaten. Om te voorkomen dat u ze allemaal moet testen, is een goede benadering het testen van een van de grootste apparaten, een van de kleinste en een daartussenin.
  • We zullen ervoor zorgen dat alle grafische bronnen beschikbaar zijn voor alle schermdichtheden, wat het voor ons gemakkelijker zal maken om 100% flexibele weergaven te hebben.
  • We zullen ervoor zorgen dat de teksten gescheiden zijn van de code om internationalisering te ondersteunen.
  • We kiezen de laagste versie van het besturingssysteem waarmee we werken en ontwikkelen er indien mogelijk alleen mee. Als dat niet het geval is, maken we verschillende versies voor verschillende besturingssystemen, hoewel minder beter is. Soms zullen we bibliotheken van derden vinden die functies van recente versies implementeren zonder ze rechtstreeks te hoeven gebruiken, het is een interessant alternatief om te overwegen.
  • We zullen onvermijdelijk testen. Op de markt zijn er bedrijven die zich uitsluitend toeleggen op testen, en tegen redelijk redelijke prijzen kunnen we een automatische test krijgen voor een breed scala aan apparaten.
  • En tot slot sluiten we gebruikersfoutmeldingen niet uit, die ons onvermijdelijk zullen bereiken. Met hen zullen we zeker details ontdekken die we hebben gemist.

Ben je geïnteresseerd in:
Hoe virussen op Android te verwijderen
Volg ons op Google Nieuws

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Actualidad Blog
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.