Inleiding
Inleiding
Deze week gaf Google versie 4.3 van Android vrij. Eindelijk, willen we bijna zeggen, want we hadden deze release eigenlijk al een tijd terug bij Googles I/O-conferentie verwacht. Veel van de technische sessies gingen daar over wijzigingen die niet in Android 4.2.2 zaten, maar in een toekomstige variant. De verschillende presentatoren hadden er daarbij lol in om zoveel mogelijk om het bestaan van deze versie heen te draaien, terwijl ze de wijzingen uit de doeken deden.
Google liet op I/O overigens zien dat het geen complete Android-release nodig heeft om nieuwe features uit te rollen. Sinds vorig jaar is een deel van de basisfunctionaliteit van het OS namelijk ondergebracht in de Google Play Services, een losse app die door Google makkelijk geüpdatet kan worden. Via Play Services introduceerde Google bijvoorbeeld onlangs een vernieuwde api voor locatiebepaling en een nieuwe api voor geofencing.
Toch zijn er genoeg zaken die een complete OS-update vereisen, zoals aanpassingen op kernel- en driverniveau, en in Android 4.3 heeft Google onder de motorkap dan ook het nodige aangepast. In dit artikel beschrijven we de grootste wijzigingen en bekijken we wat voor invloed Android 4.3 heeft op prestaties en accuduur.
Nieuwe functionaliteit in de camera en gebruikersprofielen
Hoewel Google de algehele look and feel niet aangepast heeft ten opzichte van Android 4.2.2, zijn er toch hier en daar enkele wijzigingen te ontdekken. De interface van de camera is bijvoorbeeld op de schop gegaan. Het ronde menu met opties heeft nu de vorm van een boog, en als een submenu geselecteerd wordt, verschijnt een nieuwe boog met extra opties. Het is zeker geen interface die mensen heel snel zullen oppakken, maar als je er eenmaal aan gewend bent, werkt het lang niet slecht. Toch hebben we het idee dat Google een betere camera-interface kan ontwerpen dan dit.
/i/1374750059.jpeg?f=imagenormal)
Ook de mogelijkheden rondom de gebruikersprofielen zijn aangepast. Deze werken overigens nog steeds enkel op tablets. Voorheen was het mogelijk om meerdere accounts te maken en per account apps te installeren en instellingen aan te passen. Dat was al een leuke zet, maar Google gaat nu een stapje verder: in Android 4.3 kunnen accounts namelijk meerdere soorten restricties opgelegd krijgen.
/i/1374746008.jpeg?f=imagenormal)
Het is bijvoorbeeld mogelijk om bij een restricted account de toegang tot spelletjes of user-generated content uit te zetten. Ook kan per account geregeld worden welke apps wel en niet toegankelijk zijn. App-ontwikkelaars kunnen er zelfs voor kiezen om apps anders te laten werken als deze restricted draaien. Hiermee is het eenvoudig om bijvoorbeeld een Gast-account te maken, of een account voor kinderen die enkel een paar simpele games willen spelen.
Onder de motorkap: efficiëntere graphicsrendering
Bij elke nieuwe versie van Android wordt het grafische subsysteem verder verbeterd. De allereerste versie van het OS zette de cpu in voor bijna al het grafische werk en maakte nauwelijks gebruik van de mogelijkheden van de gpu. Dat kwam deels omdat veel telefoons destijds een zwakke gpu hadden en Google wilde een besturingssysteem maken dat op zoveel mogelijk toestellen kon draaien.
Vandaag de dag hebben bijna alle telefoons een degelijke gpu en Android maakt daar tegenwoordig een stuk beter gebruik van. In versie 4.3 heeft Google zich vooral gericht op het optimaliseren van al het grafische werk door gpu-commando's te ordenen en samen te voegen.
In alle Android-versies voor 4.3 werden draw-commando's naar de gpu gestuurd in de volgorde waarin ze in de app voorkomen. Geeft een programmeur bijvoorbeeld de opdracht om bovenaan de app een plaatje te tekenen, daaronder een stuk tekst, dan weer een plaatje en dan weer wat tekst, dan zal Android de draw-commando's in die volgorde afwerken. Problematisch is dat de gpu dan constant moet wisselen tussen het soort content dat verwerkt wordt, en dat kost tijd.
:fill(white)/i/1371127925.jpeg?f=thumb)
Een goede programmeur zorgt er dan ook voor dat de verschillende draw-commando's netjes gesorteerd worden, zodat bijvoorbeeld eerst alle bitmaps getekend worden en daarna pas de tekst. Er zijn echter genoeg programmeurs die hier geen rekening mee houden. Gelukkig wordt dit door Android 4.3 geautomatiseerd. Daarnaast heeft Google er voor gezorgd dat draw-commando's waar mogelijk samengevoegd worden.
Tijdens I/O werd dit gedemonstreerd aan de hand van Google+. Binnen een bepaald venster moest de gpu onder Android 4.2.2 in totaal 88 keer iets tekenen. In Android 4.3 wordt dit teruggebracht naar 39 draw-calls, zonder dat app-ontwikkelaars daar iets voor hoeven te doen. Dat moet ervoor zorgen dat Android 4.3 vooral op minder krachtige hardware een stukje vloeiender draait. Wat daarbij helpt is dat bepaalde effecten, zoals drop shadows, nu multithreaded gerenderd worden.
In hoeverre je hier iets van merkt is moeilijk te zeggen, we hebben Android 4.3 namelijk getest op twee relatief snelle apparaten: de Nexus 4 en de Nexus 7. Bij die laatste hadden we het gevoel dat alles een beetje soepeler ging, maar dat kan ook aan het feit liggen dat de tablet dankzij de installatie van de update weer opgeschoond en vers was.
Onder de motorkap: OpenGL ES 3, Bluetooth Smart energy en meer
Hoewel de upgrade van 4.2.2 naar 4.3 vanwege de kleine ophoging in versienummer geen grote lijkt, is het dat wel degelijk. Vooral bij de Nexus 4 heeft Google veel dingen aangepast of herschreven. Voor zaken als bluetooth, het touchscreen, de gpu en de camera zijn nieuwe drivers aanwezig of zijn delen van de kernel herschreven. Dat moest ook wel, want Android 4.3 ondersteunt enkele nieuwe api's ten opzichte van 4.2.2.
Aan de grafische kant is dat OpenGL ES 3.0, een api voor 3d-graphics. Gameontwikkelaars kunnen daardoor nieuwe grafische effecten toepassen in hun games. Vooral op het gebied van textures en texturecompressie zijn er meer mogelijkheden en daarnaast is de scriptingtaal voor shaders uitgebreid.
Bluetooth Smart
Ook nieuw is de ondersteuning voor een nieuwe versie van de bluetooth-standaard, Bluetooth 4.0 Low Energy, of Bluetooth Smart. Deze is niet gebaseerd op de huidige bluetooth-spec, maar is speciaal ontwikkeld voor apparaten die draadloos moeten kunnen communiceren en daarbij zo min mogelijk stroom mogen gebruiken. Daarbij kun je denken aan bijvoorbeeld smartwatches, hartslagmeters, en kleine bluetooth-tags.
Android 4.3 biedt ook ondersteuning voor Bluetooth AVRCP 1.3, waardoor meer informatie tussen een telefoon en bluetooth-ontvanger verstuurd kan worden bij mediastreaming. Dankzij deze standaard kan je bijvoorbeeld de artiest en titel van een nummer zien als je muziek naar een autoradio streamt. Ook is het nu mogelijk om in die situatie de knoppen van het audiosysteem te gebruiken om de smartphone te bedienen.
Nieuwe opties voor notificaties, locatiebepaling en app-restricties
Android 4.3 bevat ook nog enkele nieuwigheden die momenteel wellicht nog niet gebruikt worden, maar waar we in de toekomst waarschijnlijk meer van gaan zien. Zo kan ingesteld worden dat apps wifi-locatiebepaling mogen gebruiken, zelfs als wifi uitstaat. Het idee hierachter is dat de wifi-module minder stroom gebruikt dan de gps-chip, en locatiebepaling zo een minder zware wissel op de accu trekt.
Ook is het nu mogelijk voor een app om alle notificaties op een Android-apparaat uit te lezen en hier zelf iets mee te doen. De bedoeling hierachter is duidelijk: zeker in combinatie met Bluetooth Smart kunnen kleine apparaatjes ontwikkeld worden - smartwatches bijvoorbeeld - waarop gebruikers hun notificaties binnenkrijgen.
Een laatste wijziging die zeker noemenswaardig is, maar momenteel nog niet helemaal werkt, is de mogelijkheid om per app in te stellen welke privégegevens toegankelijk zijn. De code zit al deels in 4.3 en via een omweg kan de interface al tevoorschijn gehaald worden, maar een aantal onderdelen is nog niet af. Vermoedelijk zal deze feature onderdeel uitmaken van de volgende release, die dit najaar verwacht wordt.

Benchmarks: invloed van 4.3 op de accuduur
We hebben onze gebruikelijke accutests op zowel de Nexus 4 en 7 gedraaid om te kijken of de 4.3-update hier nog wat winst oplevert. We meten de accuduur aan de hand van vier tests: browsen, video bekijken, bellen en de telefoon in standby laten staan. Daarbij staat wifi aan, en bij telefonie en in stand-by is ook 3g ingeschakeld. De telefoons zijn zo veel mogelijk onder dezelfde omstandigheden getest. Een nadere uitleg over onze testmethode en over wat we verstaan onder zwaar, gemiddeld en licht gebruik, vind je in het achtergrondverhaal over onze accutests. In de praktijk hangt de accuduur natuurlijk ook af van zaken als het gebruikte netwerk en de geïnstalleerde apps. Bovendien kan het verbruik van exemplaar tot exemplaar verschillen.
Over Android 4.3 op de Nexus 7 kunnen we kort zijn: op het gebied van accuduur is er helemaal niets veranderd.
Bij de Nexus 4 is er zeker verschil: in onze browsingtest gaat de Nexus 4 met Android 4.3 tweeëntwintig minuten langer mee. Bij de videotest is het verschil zelfs een uur en dertien minuten. Kijk je dus veel video's op je Nexus 4, dan zal je zeker blij worden van Android 4.3. Er is echter nauwelijks verschil in het stroomgebruik bij bellen en als de telefoon idle is, waardoor de voordelen voor de meeste mensen minimaal zullen zijn.
Bij licht gebruik zien we dat de Nexus 4 het met Android 4.3 nipt beter doet, maar het verschil met de vorige versie is erg klein, bijna nihil. Dat komt omdat we het stroomgebruik tijdens idle zwaar mee laten wegen in deze test, en op dat vlak brengt Android 4.3 op de Nexus 4 geen verbeteringen.
Bij gemiddeld gebruik loopt het verschil wat verder op. Dat komt omdat de Nexus 4 onder 4.3 wat langer meegaat met browsen en een stuk langer meegaat bij het afspelen van video. Het verschil is een procent of zeven, in het voordeel van 4.3.
Het relatieve verschil blijft bij zwaar gebruik gelijk. Wel is duidelijk te zien dat de Nexus 4 in de ranglijst naar beneden duikelt naar mate het gebruik intensiever wordt. Dat komt omdat het toestel tijdens browsen en bellen het minder goed doet dan de concurrentie en dat zijn twee onderdelen die we in het 'zwaar gebruik'-scenario sterk mee tellen.
Benchmarks: invloed van 4.3 op prestaties
Gezien het feit dat Android 4.3 voor de Nexus 4 heel wat wijzigingen onder de motorkap heeft, verwachten we daar eigenlijk wel wat verschil in de benchmarks te zien. We hebben ook de Nexus 7 met zowel Android 4.2.2 als Android 4.3 getest, maar verwachten hier minder schokkende verschillen te zien. Het is niet waarschijnlijk dat voor Tegra 3 meer dan een jaar nadat de chip uitkwam nog significante optimalisaties gedaan worden.
De Java-test binnen CFBench geeft een goede indicatie van de snelheid bij het draaien van Android-apps, omdat het grootste deel van Android-apps in Java geschreven wordt. Bij elke nieuwe versie van Android wordt de Dalvik VM die hierbij gebruikt wordt weer een stukje verder geoptimaliseerd. In bovenstaande staafdiagram is goed te zien dat er voor de Snapdragon S4 Pro in de Nexus 4 nog wat te optimaliseren viel. De Nexus 7 met zijn Tegra 3 doet het in deze test zelfs een beetje slechter, waar dat aan ligt weten we niet.
Ook in de grafische drivers van de Nexus 4 zijn duidelijk verbeteringen doorgevoerd. De score in de Egypt HD-test van GFXBench neemt met bijna twintig procent toe. De mobiele Geforce-gpu in de Tegra 3 presteert onder de twee Android-versies identiek.
Tot slot
Als je de update enkel op de interface beoordeelt, lijkt Android 4.3 weinig nieuws te brengen. Kijk je echter verder dan je spreekwoordelijke neus lang is, dan zijn er wel degelijk veel zaken gewijzigd, en die wijzigingen hebben bijna allemaal als doel Android klaar voor de toekomst te maken. Technieken als OpenGL ES 3.0 en Bluetooth Smart worden nu nog niet gebruikt, maar dat zal in de toekomst snel veranderen. Hetzelfde geldt voor de nieuwe api die het mogelijk maakt om notificaties vanaf een ander apparaat te lezen, die is overduidelijk gemaakt met wearable devices in het achterhoofd.
Op de mogelijkheid om per app in te kunnen stellen welke privégegevens je allemaal wilt delen, zitten we al een tijdje te wachten, en het is goed om te zien dat Google ermee bezig is. App-ontwikkelaars worden steeds gretiger als het om persoonsgegevens gaat en het is fijn als gebruikers een beetje tegengas kunnen geven.
Voor forse prestatiewinst hoeft je niet te upgraden. Op de Nexus 7 presteert Android 4.3 nagenoeg gelijk aan Android 4.2.2, en op de Nexus 4 is de winst niet erg groot. Qua accuduur is de winst die je met de Nexus 4 op een gemiddelde dag behaalt niet schokkend, behalve als je heel veel video kijkt.
Wie hoopt op een grote verandering in het uiterlijk van Android moet geduld hebben. Wellicht zal de volgende versie, die vermoedelijk dit najaar komt, dat brengen. Daar zijn in ieder geval aanwijzingen voor: Google is druk bezig om alle belangrijke apps van een nieuwe look te voorzien, gestoeld op het design van Google Now, en het zou ons niets verbazen als Android zelf uiteindelijk ook die kant op gaat. Zeker gezien het feit dat de laatste drie releases er nagenoeg hetzelfde uitzagen.