Come differisce Android da iOS in termini di architettura?
Entrambi i sistemi operativi variano l'uno dall'altro in termini di architettura, ma sono più simili in principio che in esecuzione. Questa risposta è un riassunto di come funziona, e non approfondirò nessun argomento in particolare, altrimenti questa risposta sarebbe lunga pagine.
Android differisce dall'architettura di iOS a causa di quanto Android sia aperto e quanto iOS sia closed-source.
Entrambi iniziano con un kernel, che è più o meno quello che controlla l'hardware, i tempi, il file system, gli interrupt, i driver e la gestione dell'alimentazione. Android funziona con il kernel Linux, mentre iOS ha optato per un kernel di derivazione BSD chiamato Darwin. Entrambi sono basati su UNIX.
Prossimo per iOS è il livello Core OS, che ha la maggior parte delle cose di basso livello necessarie per l'astrazione delle funzioni di sistema come OpenCL e l'accesso al disco.
Per Android, è il livello delle librerie, che ha un po' più librerie del Core OS, come media frameworks, OpenGL, SSL, LibWebCore e LibC.
Prossimo per iOS è il livello Core Services, che è più simile al livello delle librerie per Android, ma sono tutte librerie fatte da Apple, come Core Data, Core Animation, WebKit, Address Book, Core Foundation, Social Libraries e Security.
Dopo di che viene il livello Media, che controlla tutti i video, audio, testo e animazioni. Praticamente tutto ciò che viene visualizzato sullo schermo.
Poi per Android, c'è l'Android Runtime, che ha le Librerie Core per Java e la JavaVM. Questa è più o meno la base per l'Application Framework, che è un livello a cui arriveremo più avanti.
Dopo il Media Layer in iOS viene AppKit. Questa è la parte che riunisce tutti i livelli per essere in grado di funzionare come un tutto; questo aggancia tutte le librerie e i runtime insieme per essere in grado di eseguire le applicazioni iOS. Gli sviluppatori usano AppKit per essere in grado di creare ed eseguire applicazioni iOS. Questo è l'ultimo livello nell'architettura di iOS.
Dopo l'Android Runtime c'è l'Application Framework, che funziona molto come AppKit. Questo è il livello che riunisce tutto per poter essere usato dai programmatori. Questo è l'ultimo strato in Android.
Il modo in cui l'architettura di iOS differisce da Android è che iOS è più personalizzato e programmato per la sicurezza. Questo perché Apple usa un kernel personalizzato basato su BSD e programma quasi tutte le sue librerie da zero. Questo è paragonato ad Android che usa un sacco di software open-source invece di software personalizzato come quello scelto da Apple. Questo significa che molto di esso potrebbe anche non essere necessario per il vostro telefono ed è inutile.
Tuttavia, questa non è necessariamente una cosa negativa.
Per come la vedo io è come avere la scelta tra un portatile super sottile con ogni parte costruita dallo stesso produttore o costruire il proprio computer e usare parti off-the-shelf, mentre si usa una custodia personalizzata per metterlo dentro.
A qualcuno piace il computer portatile perché è elegante, mentre ad altri piace costruirsene uno da soli perché gli piace come possono cambiare o modificare quello che hanno, e gli piace come possono partecipare alla sua creazione, come Android.
Per me, mi piace Android, ma ad altri piace iOS, e questo va benissimo; entrambi hanno i loro punti forti e deboli.
Se ho fatto qualche errore, per favore suggerite una modifica, e molto probabilmente la accetterò.