Inleiding: weg met Jelly Bean
We dachten sterk aan een hoax toen Google begin september bekendmaakte dat versie 4.4 van Android 'KitKat' zou gaan heten. Dat Google voor elke nieuwe Android-release de naam van een stuk zoetigheid gebruikt, is geen nieuws, maar lange tijd leek het erop dat de komende versie van Android nummer 5.0 zou krijgen en als subtitel 'Key Lime Pie'. Zelfs de mensen die aan Android werken, wisten niets van de nieuwe codenaam tot kort voor de aankondiging.
KitKat is de opvolger van Jelly Bean, een naam die voor Android versies 4.1, 4.2 en 4.3 gebruikt werd. De eerste in dat rijtje bracht redelijk grote wijzigingen ten opzichte van 4.0, terwijl 4.2 en 4.3 meer bescheiden updates waren. Hoewel het versienummer van KitKat doet vermoeden dat het weer een kleine update is, vond Google de wijzigingen significant genoeg om tot een naamswijziging over te gaan.
Dat lijkt gerechtvaardigd, want de zoekgigant heeft inderdaad een boel zaken aangepast in Android 4.4, zowel visueel als onder de motorkap. Zo moeten nieuwe optimalisaties ertoe leiden dat Android vloeiender draait op apparaten met mindere specs en daarmee beter tot zijn recht komt op budgettelefoons. Aan de buitenkant valt meteen op dat het homescreen een nieuw likje verf gekregen heeft en dat enkele systeem-apps een welverdiende make-over gekregen hebben.
Daarnaast heeft Google de eerste stappen gezet om het hart van Android, de Dalvik VM, te vervangen. In dit artikel gaan we aan de hand van de Android-build op de Nexus 5 dieper in op zowel de vernieuwingen in de interface als de wijzigingen onder de motorkap.
Opgefrist uiterlijk en nieuwe launcher
Sinds versie 4.0 is de launcher van Android niet meer ingrijpend veranderd. Er zijn verschillende schermen waar je doorheen kunt swipen, en die elk iconen en widgets kunnen bevatten. Onderaan is een rij met vaste iconen te vinden, met in het midden de knop die het applicatieoverzicht opent. Bovenaan grenst het homescreen aan de zwarte notificatiebalk en onderaan wordt hij geflankeerd door de zwarte balk met virtuele knoppen.
In KitKat heeft Google die twee balken halftransparant gemaakt. Vooral met lichtere achtergronden ziet het er mooier uit dan voorheen en het maakt dat het scherm groter oogt. Dit werkt echter alleen voor het homescreen. Zodra je een app opent, krijgen beide balken weer een zwarte achtergrondkleur en dat is toch een beetje jammer. Met 4.4 introduceert Google ook een api, zodat applicatieontwikkelaars de transparante balken kunnen implementeren. Hopelijk gaan we binnenkort apps zien die daar gebruik van maken.
/i/1383480823.jpeg?f=imagenormal)
Wat iemand die een Nexus 4 gewend is meteen zal opvallen, is dat het homescreen en het app-overzicht geen vijf kolommen meer hebben, maar vier. Daarnaast zijn de iconen wat groter. In het begin hadden we daardoor het idee met een soort interface voor slechtzienden te maken te hebben, maar het heeft als voordeel dat alles wat rustiger oogt, omdat het scherm minder volgepropt zit met iconen. Gelukkig zijn er genoeg alternatieve launchers beschikbaar voor mensen die zelf een grid willen kiezen.
Veel visuele wijzigingen zijn overgenomen uit de skins van andere fabrikanten
Het app-overzicht heeft met ingang van Android 4.4 geen zwarte achtergrond meer, maar toont de wallpaper van het homescreen. Het is een wijziging die tekenend is voor de veranderingen die Google doorgevoerd heeft. De algehele lay-out maakt minder gebruik van de zwartblauwe kleurcombinatie die met Android 4.0 werd ingevoerd en is nu meer gericht op lichtere tinten en veel kleuren. We vinden het zeker een verbetering en samen met een nieuwe versie van het Roboto-font en enkele vernieuwde iconen maakt het dat KitKat de grootste visuele wijziging in lange tijd is.
Google geeft ontwikkelaars nu ook de mogelijkheid om het hele scherm te gebruiken, met de immersive mode. Als een app daarvan gebruikmaakt, verdwijnen zowel de notificatiebalk als de navigatiebalk, zodat de app het hele scherm inneemt. Door van boven naar beneden of van onder naar boven te swipen, laat je de balken weer verschijnen. Google Books maakt er onder andere al gebruik van. Bij games was het overigens altijd al gemeengoed om de app fullscreen weer te geven, maar voor normale apps was er nog geen mooie api.
Het is opmerkelijk om te zien dat veel visuele wijzigingen overgenomen zijn uit de skins van andere Android-fabrikanten. Zaken als immersive mode, de wallpaper in het app-overzicht en de transparante balken zijn bijvoorbeeld al langere tijd terug te vinden in Samsungs TouchWiz-skin.
/i/1383481230.jpeg?f=imagenormal)
Hoewel we het gros van de wijzigingen een verbetering vinden, zijn er ook enkele zaken waaraan we moesten wennen. De icoontjes in de notificatiebalk zijn bijvoorbeeld niet langer blauw, maar wit, en de iconen voor wifi en data geven niet meer met pijltjes weer of er data verstuurd wordt. Voorheen kon je met een snelle blik op de notificatiebalk altijd meteen zien of je dataverbinding actief was. Daarvoor moet je nu eerst het notificatiescherm openen en dan naar het toggles-paneel gaan. Daar zijn de icoontjes namelijk wel geanimeerd. Verder is het even wennen dat Google nu op sommige plekken ronde vormen gebruikt in plaats van de harde lijnen en scherpe hoeken die we gewend zijn.
Google Now geïntegreerd in de launcher
Google heeft zijn Now-dienst veel meer geïntegreerd in Android 4.4 op de Nexus 5. Waar je eerst een losse zoek-app en een losse launcher had, zijn die nu samengevoegd. Als je vanaf het meest linkse scherm op je homescreen nogmaals naar rechts veegt, kom je naadloos bij Google Now uit. Dat is sneller dan voorheen en er is geen vertraging omdat er geen aparte app geopend hoeft te worden. De feature is volgens Google nu nog exclusief voor de Nexus 5, maar het bedrijf sluit niet uit andere Nexussen het in de toekomst ook krijgen.
Doordat Google Now en de launcher nu feitelijk één applicatie zijn, kon Google het stemcommando om Now te starten in de launcher verwerken. Terwijl de telefoon het homescreen toont, kun je daardoor 'OK Google' zeggen om een stemopdracht te starten en vervolgens je commando of zoekopdracht uitspreken.
/i/1383480636.jpeg?f=imagenormal)
De lay-out van Now is op de schop gegaan, en is nu een stukje overzichtelijker en wat volwassener. Instellingen zijn logischer ingedeeld en je krijgt in het begin wat meer uitleg over de functionaliteit en mogelijkheden. In de praktijk geldt echter nog steeds dat de dienst in Nederland niet helemaal uit de verf komt. Veel van de mogelijkheden, zoals het volgen van een pakketzending, het detecteren van vluchten en het automatisch weergeven van sportuitslagen werkt in de Verenigde Staten prima, maar in Nederland minder of helemaal niet.
Google zou werken aan een smartwatch die rondom Now is opgebouwd
Daarnaast werkt zoeken met stemcommando's minder goed. Als je het systeem instelt op Engels en vervolgens vraagt wie de president van de VS is, wordt het antwoord opgelezen. Doe je dit terwijl het systeem op Nederlands staat, dan wordt je vraag enkel omgezet in tekst en uitgevoerd als Google-zoekopdracht.
Toch is er genoeg functionaliteit die hier wel werkt, zoals het weerbericht, komende agenda-afspraken, reminders, file-informatie over de route naar je huis of werk en vertrektijden van het openbaar vervoer als je in de buurt van een station, tram- of bushalte bent. Google Now heeft in ieder geval veel potentie en Google stopt er flink wat ontwikkeluren in. Er gaan zelfs geruchten dat Google aan een smartwatch werkt die geheel rondom Now is opgebouwd.
Slimmere dialer en bijgewerkte systeem-apps
In de tijd dat alle apps van Google nog deel uitmaakten van Android, betekende dit dat bijvoorbeeld de kalender niet geüpdatet kon worden zonder een compleet nieuwe versie van Android uit te brengen. Tegenwoordig is dat anders. Google heeft het overgrote deel van zijn apps, waaronder Gmail, Maps, Calendar, YouTube en Google Play Music in de Play Store staan. Onlangs kwam daar het onscreen-toetsenbord bij. Toch zijn er nog een paar apps over die niet in de Play Store te vinden zijn, maar onderdeel zijn van het besturingssysteem. Een aantal daarvan heeft met Android 4.4 een nieuw likje verf en extra functionaliteit gekregen.
De meest ingrijpende veranderingen zijn te vinden in de dialer. Ten eerste is Google ook hier afgestapt van de zwartblauwe kleurstelling van Android 4.0 en overgegaan op een witte achtergrond. Op het hoofdscherm van de dialer zie je niet langer een virtueel toetsenbord, maar een lijst met veel gebelde contactpersonen en je favorieten. Via een knop onderaan kun je het reguliere belscherm openen om een nummer in te tikken.
Google Hangouts neemt al het sms-verkeer voor zijn rekening
De kans dat je vaak losse nummers moet invoeren is bij Android 4.4 wat afgenomen. Google heeft de dialer namelijk gekoppeld aan zijn database met bedrijven en hun contactgegevens, die bijvoorbeeld ook in Maps gebruikt wordt. Daardoor kun je vanuit de dialer een bedrijfsnaam intikken, waarna Google het juiste telefoonnummer erbij zoekt.
Dat werkt lang niet bij alle nummers, maar tijdens een kort testje wist Google bij lokale restaurants, bioscopen en supermarkten bijna elke keer het juiste nummer te vinden. Dit werkt overigens ook andersom; als je gebeld wordt door een onbekend nummer zal Google daar een bedrijfsnaam bij tonen, mits die informatie bekend is. We kregen de functie alleen aan de praat met de systeemtaal op Engels. Of dat doelbewust is of een bug betreft weten we niet.
De wijzigingen in andere apps zijn minder ingrijpend. Zo is de interface van de e-mail-app gelijkgetrokken met de nieuwste versie van Gmail, heeft de Downloads-app nu ook een lichte interface en is de foto-editor in de Gallery-app uitgebreid met meer opties. Een losse sms-app is niet meer aanwezig, in plaats daarvan neemt Google Hangouts al het sms-verkeer voor zijn rekening. Dat gebeurt overigens niet zo mooi als bijvoorbeeld bij iMessage, waar de berichten per contact worden gesorteerd. Stuur je in Hangouts naar dezelfde persoon een sms en vervolgens een Hangout, dan wordt dat weergegeven als twee verschillende conversaties.
Het hart van Android gaat op de schop
De meeste Android-apps, met uitzondering van zware games, worden geschreven in Java en vervolgens uitgevoerd door Dalvik, de virtuele machine die ingebouwd is in Android. Dat heeft enkele voordelen, waarvan het grootste is dat programmeurs geen rekening hoeven te houden met de specifieke hardware waarop de app zal draaien. Dalvik maakt het mogelijk dat apps op zowel x86-hardware als ARM-chips draaien.
Er zitten ook nadelen aan deze constructie. Allereerst is de snelheid waarmee apps werken sterk afhankelijk van Dalvik. Google maakt de vm met elke release een beetje sneller, maar bij x86-hardware heeft het bijvoorbeeld lang geduurd voordat Dalvik afdoende geoptimaliseerd was voor die specifieke instructieset. Daarnaast hebben programmeurs binnen Java minder controle over het geheugengebruik van hun app.
Terwijl een deel van het Android-team nog steeds bezig is met het optimaliseren van Dalvik, blijkt nu dat Google gelijktijdig ook aan een compleet nieuwe runtime werkt: Android Runtime, of ART. ART moet Dalvik op den duur vervangen en is momenteel alleen via het ontwikkelaarsmenu te activeren, omdat het nog niet klaar is voor dagelijks gebruik. Dat een testversie van ART nu verschijnt in KitKat, betekent niet dat Google er pas onlangs aan begonnen is. De eerste stap werd gezet op 16 juni 2011, dus ten tijde van de ontwikkeling van Android 4.0.
Het grootste verschil tussen Dalvik en ART zijn de manier en het moment waar op code gecompileerd wordt. Dalvik is een jit of just-in-time-compiler waarbij de code van een app elke keer als de app gestart wordt geïnterpreteerd moet worden. ART maakt gebruik van aot, of ahead-of-time-compilation. Dat betekent dat de Java-code van de ontwikkelaar tijdens het installeren van de app eenmalig omgezet wordt in een native formaat, dat vervolgens elke keer gebruikt wordt om de app te draaien.
Her en der zijn resultaten verschenen van kleine microbenchmarks die sneller zouden zijn met ART. We hebben natuurlijk ook verschillende benchmarks gedraaid om te kijken hoe Dalvik en ART zich tot elkaar verhouden. Momenteel is de conclusie simpel; ART is nog niet klaar voor prime time. Hoewel de runtime op papier zeker sneller is, kan ART nog niet met alle bestaande apps overweg. Dat is ook wat Google zegt; het adviseert om ART niet voor normaal gebruik in te schakelen omdat apps dan kunnen crashen. ART biedt echter wel veel potentie voor de toekomst, zeker op midrange- en low-end toestellen.
Lager geheugengebruik
Bij de presentatie van KitKat legde Google veel nadruk op het feit dat de nieuwe versie van Android beter met geheugen omspringt. In navolging van de verbeteringen op het vlak van snelheid die in Android 4.1 geïntroduceerd werden onder de naam Project Butter, is het project om het geheugengebruik terug te dringen Project Svelte genoemd.
KitKat moet soepel draaien op apparaten met slechts 512MB werkgeheugen
Omdat apps uitgevoerd worden via een Java-vm, en ontwikkelaars zelf weinig invloed hebben op het alloceren en vrijgeven van geheugen, vindt er geregeld garbage collection plaats. Een garbage collector kijkt welke stukken van het geheugen nog gealloceerd zijn aan een app, maar feitelijk niet meer in gebruik zijn. Deze garbage wordt vervolgens verzameld en weer vrijgemaakt. Gc zorg ervoor dat programmeurs zich minder zorgen hoeven te maken over het claimen en vrijgeven van stukjes geheugen, maar het is wel een intensief proces, dat op de achtergrond draait en voor dips in prestaties kan zorgen.
Dankzij een betere garbage collector en verbeteringen aan Dalvik gebruiken apps in Android 4.4 volgens Google minder geheugen. Daarnaast zegt Google het geheugengebruik ook in andere delen van het besturingssysteem teruggedrongen te hebben, zoals in de kernel en het Android-framework, door gebruik te maken van onder andere kernel samepage merging en swap to zRAM. Bovendien kunnen app-ontwikkelaars via een api opvragen of ze met een low-memory-apparaat te maken hebben en vervolgens daarnaar handelen, door bijvoorbeeld bepaalde functionaliteit uit te schakelen.
Dit alles moet ertoe leiden dat KitKat soepel kan draaien op apparaten met slechts 512MB werkgeheugen. De reden achter de geheugenoptimalisaties en ART is duidelijk; Android 4.4 moet aantrekkelijker worden voor fabrikanten om te gebruiken op low-end-hardware. Google heeft goed door dat Microsoft met zijn goed geoptimaliseerde Windows Phone-besturingssysteem een bedreiging vormt in dat segment.
Tot slot
Android KitKat bevat genoeg wijzigingen om de overstap van de naam Jelly Bean te rechtvaardigen; we hadden het zelfs niet raar gevonden als Google ervoor had gekozen om het versienummer op te krikken naar 5.0. De vernieuwde interface ziet er wat strakker en volwassener uit dan die van Jelly Bean en hoewel het voor ons Nederlanders minder relevant is, vinden we het interessant dat Google Now verder geïntegreerd wordt en we zijn benieuwd hoe Google de dienst in de toekomst zal uitbreiden.
Vooral onder de motorkap zijn er nog een heleboel andere nieuwe zaken
We zijn blij dat Google zich niet enkel richt op het toevoegen van nieuwe apps, features en diensten, maar Android ook blijft optimaliseren. Voor de huidige high-end modellen is dat niet per se nodig, maar in Windows Phone heeft het een geduchte concurrent op de low-end markt, en daar zal Google zich terdege van bewust zijn. Als ART eenmaal klaar is voor fulltimegebruik zullen we er zeker verder induiken.
Hoewel we de opvallendste nieuwe features in dit artikel besproken hebben, zijn er vooral onder de motorkap nog een heleboel andere nieuwe zaken, zoals officiële ondersteuning voor infrarood, de mogelijkheid om een chipkaart te emuleren via de nfc-chip, betere ondersteuning voor draadloos printen en de overstap naar Chromium voor de ingebouwde browsercomponent WebView. Voor meer informatie over die nieuwe elementen kun je op de ontwikkelaarssite van Android terecht.
Als laatste moeten we nog even opmerken dat de uitrol van Android 4.4 niet de schoonheidsprijs verdient. Het besturingssysteem is op het moment van schrijven alleen beschikbaar voor de nieuwe Nexus 5. Google heeft beloofd om Android 4.4 ook naar andere apparaten, zoals de Nexus 4 en 7, te brengen, maar wanneer is niet bekend. Het bedrijf wil niet specifieker zijn dan 'binnen een paar weken'. Dit is dan ook de reden dat we geen benchmarks en accutests konden doen voor dit artikel.