Logo nl.androidermagazine.com
Logo nl.androidermagazine.com

Facebook's eenvoudige truc voor het bedienen van zoveel verschillende Android-apparaten

Anonim

Sommige mensen noemen het fragmentatie, anderen noemen het keuze, maar hoe dan ook zijn er zeker veel verschillende Android-telefoons. Toepassingen bouwen die ermee moeten werken, is geen gemakkelijke taak. Je hebt enorm verschillende hardwareconfiguraties die voor een groot verschil in prestaties zorgen, en hoewel één APK-bestand op elk van hen kan werken, is er nog steeds de kwestie van een app nodig om soepel te werken op low-end apparaten zonder functies op te offeren apparaten. Als je het hebt over een app die zo populair is als Facebook, kan dit snel een nachtmerrie worden voor de mensen die de codering uitvoeren.

Facebook liet iedereen bij de Big Android Meat and Greet een nieuwe oplossing zien die eenvoudig is: de component Device Year Class.

De ontwikkelaars van Facebook beschrijven dit nieuwe softwarecomponent als volgt:

Device Year Class is een Android-bibliotheek die een eenvoudig algoritme implementeert dat de RAM, CPU-cores en kloksnelheid van een apparaat toewijst aan het jaar waarin deze combinatie van specificaties als high-end werd beschouwd. Hierdoor kan een ontwikkelaar het applicatiegedrag eenvoudig aanpassen op basis van de mogelijkheden van de hardware van de telefoon.

De bibliotheek verandert niets aan het gedrag in de toepassing. Het retourneert een waarde (uitgedrukt als een jaar) die in de code wordt opgeslagen voor momenten waarop een ontwikkelaar de manier moet veranderen waarop een app werkt om de ervaring aan te passen aan een bepaald type hardware. Dit betekent dat een ontwikkelaar een app kan schrijven met mooie animaties en overgangen die worden afgespeeld zoals bedoeld wanneer deze op zoiets als een Galaxy Note 4 wordt uitgevoerd, maar de eye-candy niet kan gebruiken wanneer de app op iets als een Moto E draait. Zoals je kunt stel je voor dat dit soort bediening op een app als Facebook - die op miljoenen en miljoenen verschillende telefoons is geïnstalleerd - kan en zal zorgen voor een betere ervaring voor zowat iedereen. En het is eenvoudig te implementeren. Uit de documentatie op GitHub:

if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }

Het beste van alles is dat de bibliotheek open source is onder de BSD-softwarelicentie (dezelfde licentie die Google gebruikt voor de Android-bron) en beschikbaar is voor elke ontwikkelaar om gratis te gebruiken.

We weten dat dit geen magie is, en het is waarschijnlijk dat de meeste ontwikkelaars die aan grote projecten werken, een methode hebben om verschillende hardwareconfiguraties te verwerken. Wat de jaarklasse van het apparaat doet, is een eenvoudige en "elegante" oplossing bieden voor een groot probleem, en iedereen kan het gebruiken.

GitHub-pagina van apparaatjaarklasse