# Android KitKat

Android KitKat (versione 4.4) è una versione del sistema operativo mobile Android, nonché l'undicesima versione di quest'ultimo. Svelato il 3 settembre 2013, KitKat si è concentrato principalmente sull'ottimizzazione del sistema operativo per migliorare le prestazioni sui dispositivi entry-level con risorse limitate.
A maggio 2019, le statistiche pubblicate da Google indicano che il 6,9% di tutti i dispositivi Android che accedono a Google Play eseguono KitKat.

## Cronologia

Android 4.4 "KitKat" venne ufficialmente annunciato il 3 settembre 2013. La versione era internamente conosciuta con il nome in codice "Key lime pie" (torta di limetta); John Lagerling, direttore delle partnership globali di Android, e il suo team, hanno deciso di lasciare il nome, sostenendo che "pochissime persone effettivamente conoscono il gusto di una torta di limetta". Mirando a un nome in codice che fosse "divertente e inaspettato", il suo team perseguì la possibilità di nominare la versione "KitKat". Lagerling telefonò a un rappresentante di Nestlé, proprietario del marchio KitKat che produce il prodotto (fuori dagli Stati Uniti, dove è prodotta da The Hershey Company su licenza), e rapidamente raggiunse un accordo preliminare per una collaborazione promozionale tra le due società, successivamente finalizzato in un incontro al Mobile World Congress nel febbraio 2013. La partnership non venne rivelata pubblicamente, o anche ad altri dipendenti di Google e sviluppatori Android (che altrimenti hanno continuato a riferirsi internamente al sistema operativo come "KLP"), fino al suo annuncio ufficiale in settembre.
Nell'ambito degli sforzi promozionali, sono state prodotte le barre KitKat a forma di logo del robot Android, mentre Hershey partecipò a un concorso negli Stati Uniti con premi di tablet Nexus 7 e credito Google Play Store.
Il Nexus 5, sviluppato da LG Electronics, venne presentato il 30 settembre 2013 come dispositivo di lancio per KitKat.
Fino a ottobre 2017, Android 4.4 era ancora supportato con patch di sicurezza da parte di Google per il codice sorgente.

## Sviluppo

Continuando con l'obiettivo di migliorare le prestazioni visive e la reattività di Android 4.1 "Jelly Bean", l'obiettivo principale di Android 4.4 è stato quello di ottimizzare la piattaforma per prestazioni migliori su dispositivi di fascia bassa, senza compromettere le sue capacità e funzionalità generali. L'iniziativa venne denominata in codice "Project Svelte", che il capo dell'ingegneria di Android Dave Burke scherzò dicendo che fosse era un piano di perdita di peso dopo che "Project Butter" di Jelly Bean aggiungeva "peso" al sistema operativo. Per simulare dispositivi con specifiche inferiori, gli sviluppatori Android hanno utilizzato i dispositivi Nexus 4 underclock per funzionare a una velocità ridotta della CPU con un solo core attivo, 512 MB di memoria e una risoluzione dello schermo a 960×540 - specifiche pensate per rappresentare un comune dispositivo Android di fascia bassa.
Venne sviluppato uno strumento di sviluppo noto come ProcStats per analizzare l'utilizzo della memoria delle app nel tempo, in particolare quelle che eseguono servizi in background. Questi dati sono stati utilizzati per ottimizzare e disaccoppiare le app e i servizi di Google ritenuti inefficienti, contribuendo così a ridurre l'utilizzo complessivo della memoria di Android. Inoltre, 4.4 è stato progettato per essere più aggressivo nella gestione della memoria, aiutando a difendersi dalle app che sprecano troppa memoria.

## Funzionalità
### Esperienza utente

L'interfaccia complessiva di KitKat minimizza ulteriormente l'aspetto dell'interfaccia "Holo" introdotta su 4.0, sostituendo le restanti istanze di accentuazione blu con grigi e bianco (come le icone della barra di stato). Le app possono attivare lo stato traslucido e l'aspetto della barra di navigazione o attivare una modalità a schermo intero ("Modalità immersa") per nasconderle interamente. Il launcher ha anche ricevuto un aspetto rinnovato, con l'implementazione delle barre di navigazione traslucide e la sostituzione dello sfondo nero nel cassetto delle applicazioni con uno sfondo traslucido. Inoltre, i pulsanti del menu di overflow delle azioni nelle app sono sempre visibili, anche sui dispositivi con il tasto di navigazione "Menu" deprecato. Nel menu Impostazioni, gli utenti possono ora specificare una Home page predefinita (launcher) e un'app di messaggistica di testo.
Su dispositivi di serie, le app di Messaging e Movie Studio sono state rimosse; il primo è stato sostituito da Google Hangouts, che supportava gli SMS. Anche l'app AOSP Gallery è stata deprecata a favore di Google+ Foto. In alcune app è disponibile un nuovo selettore di file "Documenti".

### Piattaforma

Un nuovo ambiente di runtime noto come Android Runtime (ART), destinato a sostituire la macchina virtuale Dalvik, è stato introdotto come anteprima tecnologica in KitKat. ART è un runtime multipiattaforma che supporta le architetture x86, ARM e MIPS in ambienti a 32 e 64 bit. A differenza di Dalvik, che utilizza la compilazione just-in-time (JIT), ART compila app al momento dell'installazione, che vengono quindi eseguite esclusivamente dalla versione compilata da quel momento in poi. Questa tecnica rimuove l'overhead di elaborazione associato al processo JIT, migliorando le prestazioni del sistema.
I dispositivi con 512 MB di RAM o meno si segnalano come dispositivi "a bassa RAM". Utilizzando un'API, le app potrebbero rilevare i dispositivi con poca RAM e modificarne le funzionalità di conseguenza. KitKat supporta anche zram. I componenti di WebView sono stati aggiornati per utilizzare una versione del motore di rendering di Google Chrome. Una nuova API di Storage Access Framework consente alle app di recuperare i file in modo coerente; come parte del framework, un nuovo selettore di file di sistema consente agli utenti di accedere ai file da varie fonti (incluse quelle esposte dalle app, come i servizi di archiviazione online).
È stata introdotta un'API pubblica per lo sviluppo e la gestione dei client di messaggistica di testo Sono stati inoltre aggiunti il batch di sensori, il rilevamento dei passaggi e le API del contatore. KitKat supporta "emulazione della scheda host" per le comunicazioni near-field, che consente alle app di emulare una smart card per attività come i pagamenti mobili.