dan hier nog wat om te leren
een OS (en zeker android) bestaat uit meerdere lagen,
voor het gemak zal ik die lagen proberen te vertalen naar normale mensentaal,
je hebt hardware niveau, daarbij draai je in de diepste krochten van de kernel dus allerlei low-level code (asembly enzo) om de hardware aan te sturen...
bijvoorbeeld stuur 1,321milivolt voor 0,000123milisec naar pin #4351 om de gpu te vertellen dat er uiteindelijk een rode pixel moet komen. of om een bitje naar het LTE-modem te sturen, of om het batterijpercentage te meten of ....
dit is allemaal code die direct 100% hardware afhankelijk is, en dus 100% device-specifiek moet worden gefinetuned. om hier in te debuggen zul je drivers aangeleverd moeten krijgen van chipmakers, en zul je weken lang moeten testen met allerlei settings voor warmte beperking, bugdetectie, stabiliteit, etc.
vroeger (voor android 10? 11?) was dit gewoon een intergraal deel van android, dus een aanpassing van android was een aanpassing aan deze code met gevolg dat fabrikanten elke keer weer aan de bak moesten om de hele zut te testen.
Toen heeft google besloten om dat te veranderen, men heeft de systemen zo aangepast dat deze laag meer op zichzelf is komen te staan....
het nadeel daarbij is dat, op individueel niveau, apps en services minder goed in staat zijn om specifiek voor die ene hardware te optimaliseren, het voordeel is dat je de rest van het systeem onafhankelijk van hardware support kunt blijven updaten ...
de 2e laag is dan dus een soort middle-ware ... als windows de eerste laag is, dan is de java runtime de tweede laag... in java kun je mooie programma's maken, maar je hoeft windows niet te updaten om java te updaten, dus wanneer er weer nieuwe ideeën zijn over hoe je iets beter, veiliger of efficienter kunt laten doen door java aan te passen, dan download je gewoon een nieuwe installer, die binnnen redelijke perken even goed werkt op windows xp, 7 10 en 11.
uiteindelijk zul je wel merken dat je onder xp bepaalde features mist, en dat men daarom met work-arounds moet werken (en dat dat dus behoorlijk veel performance kost) maar op zijn minst kan het nog een lange tijd mee... en bovendien... als de OEM wil kan het altijd besluiten windows de upgraden de boel debuggen en optimaliseren zodat die performance hit weer verdwijnt.
** let op, op android ligt het verschil tussen hardware-laag en middleware-laag veel dieper in het OS dan - het voorbeeld met windows en java = maar ik probeer het vooral een beetje duidelijk te maken voor mensen die nog nooit van zaken als
Hardware Abstraction Layers hebben gehoord.
[Reactie gewijzigd door i-chat op 23 juli 2024 20:50]