Androïde Centraal

Zijn alle Androids gelijk gemaakt? Software maakt een groot verschil

protection click fraud

We hebben besproken hoe de hardware in je telefoon een verschil kan maken als het gaat om de gebruikerservaring. Nu is het tijd om over de software te praten.

Software is het allerbelangrijkste onderdeel van elke computer. Of we het nu hebben over de kleine computer die u in uw zak bewaart of de kamergrote clusters die dat wel doen dingen als het beheren van ruimtemissies, zonder software zouden al die circuits en draden en chips volstaan Niets. Er is zelfs software voor nodig om je telefoon aan te zetten en op te starten voordat je kunt zien dat hij iets doet. Het maakt niet uit hoe duur of nieuw de hardware in je telefoon is, het zou nutteloos zijn zonder al het werk dat nodig was om het te programmeren om iets te doen.

We gaan ons hiermee concentreren op Android, want dat is wat we hier doen, maar veel van de ideeën waar we het over gaan hebben zijn hetzelfde voor elke computer die je kunt kopen of zelf kunt maken. De grootste verschillen (en uitdagingen) zijn dat onze telefoons mobiele apparaten zijn die niet erg groot zijn, en dat betekent dat alles wordt gedaan met oog voor energie-efficiëntie. Extreme energie-efficiëntie. Nadat de juiste onderdelen zijn ontworpen en geassembleerd om te proberen de beste gebruikerservaring te bieden met een kleine stroomvoorziening, is het tijd voor de softwareteams om aan de slag te gaan.

Wat is Android

Dit is Android
Afbeelding tegoed: Android Open Source-project.

We hebben dit al eerder genoemd, maar het is de moeite waard om het nog eens te bespreken: Android is waarschijnlijk niet wat je denkt dat het is. Het woord wordt op nogal wat verschillende manieren gebruikt: Android is een merk, Android is een besturingssysteem en Android is broncode. Wat Android op basisniveau is, is een heleboel code die kan worden gebruikt om applicaties uit te voeren. Het wordt geleverd met een eenvoudige gebruikersinterface voor de kernfuncties, maar het vereist veel tijd en ontwikkeling om het te laten werken op elk apparaat waarop het bedoeld is.

Terwijl alles jij behoefte Als u een opstartbare software-image moet maken, is opgenomen in de Android-broncode, kunt u geen enkele image en installatieprogramma maken die voor alle hardware kunnen worden gebruikt. Ondersteuning voor de specifieke hardware moet worden aangegeven voordat u probeert deze in te bouwen tot iets dat daadwerkelijk kan worden uitgevoerd. Zodra dat is gebeurd, kunt u een werkend Linux-besturingssysteem bouwen en op het beoogde doel installeren.

Maar voordat u iets kunt verzenden, moet u er veel aan aanpassen en draaien - dat is wat we bedoelen met optimalisatie.

Het besturingssysteem

AT&T Galaxy S7

Er zijn twee niveaus van software: het besturingssysteem en de bijbehorende extra's en applicaties die zijn geïnstalleerd om erop te draaien. De mensen die je telefoon hebben gemaakt, moeten zich niet alleen zorgen maken over het goed laten werken van het besturingssysteem, maar ze moeten ook compatibel blijven met een miljoen applicaties. Merk op dat we zeiden "compatibiliteit behouden", niets optimaliseren voor apps van derden. Dat is een heel andere zaak, en Google doet daar het meeste werk met het Android-applicatieframework - de telefoonfabrikant hoeft alleen maar te proberen er niets van te breken. En dat is meer werk dan je denkt, vanwege de manier waarop deze bedrijven het uiterlijk en het gevoel van Android veranderen.

Op elk Android-model wordt andere software uitgevoerd.

Geen twee Android-modellen zijn hetzelfde. Zelfs telefoons van dezelfde fabrikant met dezelfde naam kunnen verschillende software gebruiken in verschillende regio's (of voor verschillende klanten - uw telefoonmaatschappij), en dat is ook zo. En dat is logisch. We hebben geen gigabytes aan opslagruimte, dus ondersteuning voor elk ander model Samsung Galaxy S7 — er zijn meer dan 30 versies van die ene telefoon - ingebouwd in één stuk software is niet praktisch. Daarom kunt u bijvoorbeeld de Verizon-update voor de S7 niet downloaden en gebruiken op uw AT&T-model. Maar afgezien van de kleine wijzigingen die zijn aangebracht voor verschillende SKU's van hetzelfde model, is de basissoftware die voor elke Galaxy S7 (met de Qualcomm CPU) wordt gebruikt, hetzelfde.

Om bij ons Galaxy S7-voorbeeld te blijven, moet u ook onthouden dat "Touchwiz" geen skin of launcher is. Het is het besturingssysteem. Samsung neemt die basissoftware van Google en past deze aan om beter aan zijn behoeften te voldoen. De manier waarop het eruit ziet, de functies die het heeft en de opties en instellingen zijn allemaal door Samsung gebouwd en zodanig aan Android toegevoegd dat apps van derden nog steeds kunnen worden geïnstalleerd en uitgevoerd. Er zijn veel delen van de Android-code die Samsung niet verandert (of niet kan wijzigen) omdat Google vereist dat bepaalde dingen worden bewaard om hun winkel en applicaties te kunnen gebruiken. Het is aan Google om die delen te verbeteren en te onderhouden, maar een groot deel van het besturingssysteem wordt aan Samsung overgelaten om te optimaliseren voor de specifieke hardware waarop het moet worden geïnstalleerd.

Wat is optimalisatie?

broncode

Software optimalisatie is een noodzakelijk kwaad. Het is tijdrovend en moeilijk. Maar zonder dit zou de gebruikerservaring eronder lijden. Google optimaliseert voortdurend Android-code op een hardware-onafhankelijk niveau. Technieken zoals het uitrollen van lussen, het gebruik van minder functieaanroepen en meer geheugenefficiënte routines zijn dingen die hiervan profiteren elk apparaat waarop Android draait. Maar Samsung (in ons voorbeeld) moet deze verbeteren voor de hardware die ze gebruiken om de totale lengte van het instructiepad te verminderen (het aantal benodigde CPU-cycli gaat uit met minder instructies) en verkleint de geheugenvoetafdruk, en bouwt voort op zaken als planning en cache-optimalisatie voor hun specifieke model van CPU. Dit alles terwijl meer functies en functies aan de gebruiker worden toegevoegd en de compatibiliteit met Google Play behouden blijft. Over het algemeen gaat het proces ongeveer als volgt:

  • Bepaal welke functies uw klanten willen. Gooi vervolgens 80% weg en beslis welke functies haalbaar zijn.
  • Definieer de specifieke hardware die zal worden gebruikt.
  • Bouw een opstartbare versie van het besturingssysteem met de vereiste functies die allemaal werken.
  • Zoek de knelpunten, probeer ze op te lossen, spoel af en herhaal.

Het vinden van die knelpunten is lastig. Ze repareren is zelfs nog moeilijker. En er zijn verschillende manieren om dit allemaal aan te pakken. Eén manier is om geen functies aan het besturingssysteem toe te voegen die overhead creëren, waardoor u minder dingen kunt missen. Dat is waar de Moto G uit 2015 schitterde. Het was een erg eenvoudige telefoon, met zeer eenvoudige software. Nadat een getalenteerd team de software op de telefoon had geoptimaliseerd, was het een van de meest vloeiende Android-ervaringen van het jaar - totdat je een handvol apps van Google Play aan de mix toevoegde. Toen werd het duidelijk dat de hardware binnenin niet zo veel dingen tegelijk kon doen als duurdere telefoons. De gebruikte hardware was goedkoop, zodat de telefoon goedkoop kon zijn, en de software-optimalisatie op alleen het besturingssysteem was uitstekend.

Een tweede manier is om door te gaan met het optimaliseren van uw platform zonder belangrijke functies uit te sluiten en betere hardware te laten helpen de impact te minimaliseren. De Galaxy S7 is het product van al het werk dat het softwareontwikkelingsteam van Samsung heeft gedaan sinds de originele Galaxy S werd geïntroduceerd, draait op hardware die krachtig genoeg is om het soepel en vriendelijk af te leveren pakket. Het resultaat is een telefoon die alom geprezen wordt door zowel de industrie als gebruikers. Misstappen met geheugenbeheer en traagheid die we zagen tot en met de Galaxy S6 zijn zo goed als verdwenen, en of je nu houdt van of een hekel hebben aan het eindproduct, je kunt niet zeggen dat het niet een van de beste Android-telefoons is die je vandaag kunt kopen als het om prestaties gaat.

Geheugen management

RAM-beheer

We kunnen dit onderwerp niet verlaten zonder geheugenbeheer aan te pakken. Het is een van die termen die vaak gebruikt worden omdat sommige mensen een probleem zien wanneer ze bepaalde dingen doen, en de bandwagon begint te rollen. Het kan (en is) echter een reëel probleem geweest.

Het besturingssysteem beslist wanneer applicaties en processen die in het RAM zijn opgeslagen, moeten worden gedood (zoals in sluiten en niet op de achtergrond worden uitgevoerd). Schrijven naar en lezen van RAM gaat snel - veel sneller dan schrijven en lezen van opslag. Maar het is beperkt. Zelfs een telefoon met 6 GB RAM moet nog steeds parameters hebben ingesteld voor de beste prestaties. En niet al het RAM-geheugen dat in uw telefoon is geïnstalleerd, is beschikbaar voor gebruik door het besturingssysteem. Delen zijn gereserveerd voor de kernel om in te draaien, de GPU om te gebruiken en de mobiele radio. Tijdens het opstarten is het normaal dat er ten minste 512 MB (of meer) RAM in gebruik is en niet beschikbaar is. Dat is maar goed ook - die functies hebben "onmiddellijke" toegang tot de CPU nodig.

Wat overblijft wordt trapsgewijs beheerd. Bepaalde apps en processen hebben een hogere prioriteit dan andere en worden toegewezen aan een hoger niveau dan andere, soms optionele dingen die op de achtergrond worden uitgevoerd. Wanneer de totale hoeveelheid vrije RAM krimpt tot een vooraf bepaald niveau, worden processen gedood volgens prioriteit. Het doel is om zoveel mogelijk dingen op de achtergrond levend te houden terwijl er genoeg ruimte overblijft om nieuwe dingen te beginnen. Terwijl die nieuwe dingen beginnen, wordt het RAM-geheugen leeggemaakt totdat ze genoeg hebben om te laden En er wordt een vrije buffer aangehouden. Dat is waarom je mensen hoort zeggen "gratis RAM is verspilde RAM" als je het over Linux hebt - Android draait bovenop de Linux-kernel.

Het Tweaken van RAM-beheer is een proces van vallen en opstaan. Dan meer vallen en opstaan. Het is moeilijk.

Al deze parameters (buiten het gereserveerde gebied voor de kernel) kunnen worden aangepast door de mensen die het besturingssysteem hebben gebouwd. Ze kunnen beslissen hoeveel RAM vrij moet blijven en hoeveel RAM door elke proceslaag kan worden gebruikt. Ze kunnen hun software ook zo schrijven dat delen worden toegewezen aan een specifieke laag in de boom. Een handige truc is om de launcher - wat je ziet op het startscherm (en) en de applicatielade - altijd in RAM te houden. Dit betekent dat de gebruikersinterface voor de dingen waarmee u waarschijnlijk de meeste tijd zult besteden, altijd wordt opgeslagen in de RAM en zal vloeiender zijn omdat er geen tijd wordt besteed aan het lezen van opslag en schrijven naar de RAM wanneer u veegt en tikt.

Er kunnen problemen optreden als er te veel of te weinig RAM vrij wordt gehouden of als er te veel dingen als essentieel worden "gemarkeerd" en in het RAM worden bewaard. Daarom kun je bijvoorbeeld beginnen met het typen van iets in een formulier op een webpagina, overschakelen naar een andere app en terugkomen om te zien dat alles wat je hebt geschreven weg is omdat de pagina moest worden vernieuwd. Het systeem zal nog steeds proberen de dingen die u het meest gebruikt in RAM te houden, maar kan dit niet doen.

Dit is allemaal te repareren, op voorwaarde dat er voldoende RAM is geïnstalleerd. Het is een ander onderdeel van het optimalisatieproces, en moeilijk om goed te krijgen.

Alle Androids zijn niet gelijk gemaakt

En dat moeten we niet willen. De software is afgestemd op de specifieke hardware die wordt gebruikt, en vallen en opstaan ​​en Red Bull maken deel uit van het optimalisatieproces. Dit maakt deel uit van wat elke Android-telefoon uniek maakt en biedt een keuze voor iedereen.

instagram story viewer