Belgische software maakt Android-code efficiënter
Wist u al dat zowat alle Android-apps op uw smartphone door een Belgisch stukje software gehaald zijn voor een ‘slanker’, efficiënter en eenvoudiger eindresultaat? En dat dat stukje software, ProGuard genaamd, intussen deel uitmaakt van de officiële sdk voor Android-toepassingen? “Mijn hobby is een beetje uit de hand gelopen”, glimlacht bedenker Eric Lafortune.
Wist u al dat zowat alle Android-apps op uw smartphone door een Belgisch stukje software gehaald zijn voor een ‘slanker’, efficiënter en eenvoudiger eindresultaat? En dat dat stukje software, ProGuard genaamd, intussen deel uitmaakt van de officiële sdk voor Android-toepassingen? “Mijn hobby is een beetje uit de hand gelopen”, glimlacht bedenker Eric Lafortune.
Goed en wel tien jaar geleden kwam Leuvenaar Eric Lafortune op het lumineuze idee om te gaan experimenteren met het ‘afslanken’ van Java code. “In die code zitten heel wat klassen, attributen en methodes die nooit gebruikt worden, en die je er dus eigenlijk kan uitgooien”, vertelt de ontwikkelaar. De man zag al snel het potentieel voor het ‘uitdunnen’ van computerprogrammaatjes, en kwam niet veel later met ProGuard op de proppen, een softwaretool die apps afslankt en efficiënter maakt.
Voor dat de partner van ex-judoka Heidi Rakels het goed en wel doorhad, werd zijn (open source) geesteskind erg populair. “ProGuard werd vooral belangrijk voor Micro Edition (ME), het Java-platform dat op smartphones en gsm’s draait. Tot voor kort waren gsm’s immers alles behalve krachtige toestellen. Een compiler die andere programma’s afslankte, was dus meer dan welkom. In het begin ging het echt om kilobytes, tot zelfs luttele megabytes: alles wat je kon winnen was mooi meegenomen.”
Terwijl de klassieke gsm’s ontpopten tot heuse smartphones, sleutelde Lafortune naarstig verder. “In de loop der jaren heb ik heel wat verbeteringen toegevoegd. Zo ben ik niet alleen klassen en methoden gaan schrappen, maar ben ik naar elke individuele instructie gaan kijken: wat is noodzakelijk, wat is onnodig, welke instructies kunnen vereenvoudigd worden tot kortere sequenties… Ik vind het ongemeen boeiend om daarmee te spelen (lacht).”
Dalvik
Intussen had Sun (nu Oracle) al een plugin gebouwd om ProGuard te kunnen gebruiken in de sdk-kit voor Java ME, en zo is het programma ook in andere ontwikkelingskits terechtgekomen, zoals die van Samsung, Nokia en Motorola. “Al die grote brands gebruiken Java ME-licenties, met Google als grote uitzondering.
Om licentiekosten en afhankelijkheid van Oracle te vermijden, koos de internetgigant voor een alternatieve route. Android gebruikt ook Java, maar zet die uiteindelijk om naar andere interne byte code, voor het eigen ontwikkelde Dalvik-platform.”
“Op een gegeven moment heeft ook Google beslist om ProGuard te integreren in de officiële sdk-kit voor Android”, gaat Lafortune verder. “Dat was allicht omdat het programma sowieso al een tijdje gebruikt werd bij het bouwen van Android-apps, en ontwikkelaars het nut inzagen van kleinere en minder gemakkelijk ‘reverse engineerbare’ toepassingen. Bovendien was Dalvik lang niet zo efficiënt als de tegenhanger van Sun. Het gevolg is dat het grootste deel van de apps die je kan downloaden uit de Android Market (ondertussen omgedoopt tot Google Play), bewerkt zijn met een Belgische toepassing.”
Nu ProGuard defacto de standaard geworden is voor de ontwikkeling van Android-apps, wil Lafortune een stapje verder gaan door zijn geesteskind ten gelde te maken. “Ik heb nooit iets verdiend aan ProGuard, omdat ik het programma onder een gpl-licentie verdeeld heb. Nu is er echter Saikoa, een start-up waarmee ik wil testen of ik ook op commercieel vlak het verschil kan maken.”
Saikoa
Lafortune doet Saikoa af als een typische ‘ingenieursstart-up’, waarmee hij twee dingen wil gaan doen. “In de eerste plaats het leveren van diensten. Bedrijven of particulieren die ProGuard willen gebruiken, kunnen bij ons terecht voor advies en voor uitbreidingen.”
“Daarnaast, en dat is toch eigenlijk het grote opzet, willen we nieuwe producten in de markt zetten. Zo werk ik momenteel aan een compiler die zich specifiek toespitst op Android. ProGuard is een generieke bewerker van Java-code. Het programma werkt voor Android, maar ook voor Java ME, wat toch een andere basis heeft.”
“Wat ik nu aan het maken ben voor Android, werkt volgens hetzelfde principe, maar dan heel specifiek voor Android. Zo ontstaan er nieuwe mogelijkheden, en kan je dingen doen die je met de gewone versie niet kan.”
“Op de iets langere termijn zou ik ook een optimaliserende compiler willen maken voor Java Card. Dat is een versie van Java waarmee je kleine programmaatjes kan draaien op smart cards zoals gsm-kaarten, kredietkaarten en identiteitskaarten. Een gigantische grote nichemarkt dus (lacht).”
“Oracle hééft ProGuard trouwens een tijdje geleden al geïntegreerd in de ontwikkelingsomgeving voor Java Card. Maar ik denk dat ik mijn compiler nog flink kan verbeteren door iets specifieks te bouwen voor die technologie.”
“Voor de producten die ik binnen Saikoa ontwikkel, moet er natuurlijk wel betaald worden. Ik mik met die nieuwe tools nadrukkelijk op de internationale markt, en op de fabrikanten van Android-toestellen. De eerste contacten zijn alvast gelegd!”
Fout opgemerkt of meer nieuws? Meld het hier