Android Architecnologia: livelli di applicazione, framework, componente
Android la versione iniziale del sistema operativo è stata nell'anno 2008. Anche all'inizio, il team dietro il sistema operativo lo ha costruito sulle spalle dei giganti. Oltre all'interfaccia utente che il Android Il sistema operativo si presenta a livello superficiale, è composto da più strati. Questi livelli includono codice personalizzato e tecnologie open source che sono in continuo sviluppo da decenni.
Android è stato sviluppato attraverso massicci sforzi collaborativi e investimenti da parte di molte aziende. La principale azienda dietro lo sviluppo di Android è Google. Altre aziende includono produttori di dispositivi come Samsung, LG; produttori di processori come Intel e ARM, ma per citarne alcuni.
Quando si parla di Android architettura, intendiamo come il Android sistema è stato progettato, segmentato in strati e costruito per funzionare come un sistema. Costruire un sistema così complesso richiede un'attenta strutturazione per garantire che tutti i componenti lavorino insieme in modo coeso. La sua architettura assicura che i numerosi componenti funzionino come un tutto unico senza bloccarsi.
Livelli
Di seguito sono riportati gli strati che compongono il Android architettura come etichettato nel diagramma:
- Applicazioni
- Application Framework
- Android Librerie runtime e core
- Kernel Linux
Sviluppare un sistema operativo per dispositivi mobili comporta una serie di sfide. L'utilizzo di questa architettura a strati assicura che i diversi problemi siano suddivisi e risolti a livelli diversi.
Un'architettura a strati aiuta a separare le preoccupazioni e a garantire che gli sviluppatori di software Android non debbano occuparsi di problemi di basso livello a ogni svolta. Possono invece concentrarsi sulla fornitura di valore aziendale in relazione al livello su cui stanno lavorando.
Gli sviluppatori stanno lavorando per fare in modo che le app non debbano preoccuparsi dell'implementazione del framework dell'applicazione. Questo lavoro è lasciato agli sviluppatori di sistema che lavorano sul framework dell'applicazione.
Gli sviluppatori di Application Framework lavorano sull'esperienza degli sviluppatori e non devono preoccuparsi dei driver di basso livello. Gli ingegneri di sistema di basso livello possono concentrarsi completamente sui componenti di basso livello come i driver Bluetooth o Audio e simili.
AndroidLa struttura a livelli di consente di applicare aggiornamenti con correzioni di bug o miglioramenti a ciascun livello singolarmente. Ciò garantisce che le modifiche tra i livelli non interferiscano tra loro. Ciò consente alle persone che lavorano a un livello diverso del sistema operativo di lavorare ostacolandosi a vicenda man mano che vengono eseguiti nuovi aggiornamenti e rilasci.
Android Applicazioni
Questo è il livello con cui interagiscono gli utenti finali. È su questo livello che gli sviluppatori di applicazioni pubblicano le loro applicazioni da eseguire.
Android, di default, è dotato di una serie di applicazioni che rendono i dispositivi Android utilizzabili fin da subito.
- Casa: La home page su Android è costituito da icone di avvio per le applicazioni di uso comune a cui l'utente finale potrebbe desiderare un accesso rapido. Puoi avviare le app facendo clic sui relativi launcher. Nella parte superiore dello schermo sono presenti widget che mostrano rete, livello della batteria, data e ora.
- Contatti: Android, per impostazione predefinita, fornisce un mezzo per archiviare e recuperare i contatti. Le informazioni di contatto vengono condivise tra altre app per migliorare la funzionalità.
- messaggi: Android fornisce la possibilità di inviare e ricevere messaggi SMS.
- E-mail: Android viene fornito con supporto nativo per i servizi di posta elettronica. Impostazione di un Android dispositivo richiede un account Gmail. L'impostazione di Gmail attiva altri componenti dipendenti dalla posta elettronica su Android dispositivi. Alcune funzionalità dipendenti dalla posta elettronica includono meccanismi di sicurezza e recupero. Un'altra funzionalità dipendente dalla posta elettronica è l'accesso al Play Store, un marketplace per Android applicazioni.
- Browser: Android viene fornito con un browser predefinito.
- Cassetto notifiche: Scorrendo verso il basso sullo schermo si apre il riquadro delle notifiche. Fornisce eventi dell'applicazione di cui l'utente dovrebbe essere a conoscenza. Sopra la notifica sono presenti una serie di scorciatoie per alcune impostazioni del dispositivo di uso comune che gli utenti possono attivare. Queste impostazioni includono l'attivazione e la disattivazione di vari componenti hardware come Bluetooth e Wifi. Premendo a lungo questi eventi ci consente di accedere alla loro pagina di configurazione.
Questo livello è anche definito livello utente, in contrasto con i livelli sottostanti che sono per lo più ottimizzati per lo sviluppo di applicazioni. Gli sviluppatori di applicazioni creano e personalizzano le esperienze per le loro app su questo livello. I livelli sottostanti il livello applicazione non sono personalizzati dagli sviluppatori di applicazioni. Sono considerati parte del livello di sistema. Questi livelli sono personalizzati dai produttori di dispositivi, dai team di Google Android o da terze parti che desiderano utilizzare il Android codice sorgente per il loro prodotto o ricerca.
Application Framework
Android Il sistema operativo espone le librerie e le funzionalità sottostanti di Android dispositivo che utilizza a Java API. Questo è ciò che è noto come Android struttura. Il quadro espone un mezzo sicuro e uniforme da utilizzare Android risorse del dispositivo.
1) Responsabile delle attività
Le applicazioni utilizzano il file Android componente di attività per presentare un punto di ingresso all'app. Android Le attività sono i componenti che ospitano l'interfaccia utente con cui interagiscono gli utenti dell'app. Mentre gli utenti finali interagiscono con il file Android dispositivo, si avviano, si fermano e saltano avanti e indietro in molte applicazioni. Ogni evento di navigazione innesca l'attivazione e la disattivazione di molte attività nelle rispettive applicazioni.
Android ActivityManager è responsabile del comportamento prevedibile e coerente durante le transizioni delle applicazioni. L'ActivityManager fornisce uno slot affinché i creatori di app possano far reagire le loro app quando Android Il sistema operativo esegue azioni globali. Le applicazioni possono ascoltare eventi come la rotazione del dispositivo, la distruzione dell'app a causa della mancanza di memoria, un'app che viene spostata fuori fuoco e così via.
Alcuni esempi del modo in cui le applicazioni possono reagire a queste transizioni includono la sospensione dell'attività in un gioco o l'interruzione della riproduzione della musica durante una telefonata.
2) Gestore delle finestre
Android può determinare le informazioni sullo schermo per determinare i requisiti necessari per creare finestre per le applicazioni. Windows sono gli slot in cui possiamo visualizzare l'interfaccia utente della nostra app. Android utilizza il gestore finestre per fornire queste informazioni alle app e al sistema mentre vengono eseguite in modo che possano adattarsi alla modalità in cui è in esecuzione il dispositivo.
Il Window Manager aiuta a offrire un'esperienza di app personalizzata. Le app possono riempire l'intero schermo per un'esperienza coinvolgente o condividere lo schermo con altre app. Android ciò è possibile consentendo più finestre per ogni app.
3) Responsabile della posizione
ponte Android i dispositivi sono dotati di dispositivi GPS in grado di ottenere la posizione dell'utente utilizzando le informazioni satellitari che possono arrivare fino alla precisione dei metri. I programmatori possono richiedere l'autorizzazione alla posizione da parte degli utenti, fornire posizione ed esperienze consapevoli.
Android è anche in grado di utilizzare tecnologie wireless per arricchire ulteriormente i dettagli sulla posizione e aumentare la copertura quando i dispositivi si trovano in spazi chiusi. Android fornisce queste funzionalità sotto l'egida del Location-Manager.
4) Gestore della telefonia
ponte Android i dispositivi svolgono un ruolo primario nella telefonia. Android utilizza TelephoneManager per combinare componenti hardware e software per fornire funzionalità di telefonia. I componenti hardware includono parti esterne come la scheda SIM e parti del dispositivo come microfono, fotocamera e altoparlanti. I componenti software includono componenti nativi come tastierino numerico, rubrica telefonica, profili suoneria. Utilizzando TelephoneManager, uno sviluppatore può estendere o ottimizzare la funzionalità di chiamata predefinita.
5) Responsabile delle risorse
Android l'app di solito viene fornita con più del semplice codice. Hanno anche altre risorse come icone, file audio e video, animazioni, file di testo e simili. Android aiuta a garantire un accesso efficiente e reattivo a queste risorse. Garantisce inoltre che le risorse giuste vengano consegnate agli utenti finali. Ad esempio, durante la compilazione dei campi nelle app vengono utilizzati i file di testo della lingua corretta.
6) Visualizza sistema
Android fornisce inoltre un mezzo per creare facilmente componenti visivi comuni necessari per l'interazione dell'app. Questi componenti includono widget come pulsanti, contenitori di immagini come ImageView, componenti per visualizzare un elenco di elementi come ListView e molti altri. I componenti sono già pronti, ma sono anche personalizzabili per soddisfare le esigenze e il branding degli sviluppatori di app.
7) Gestore delle notifiche
Il Notification Manager è responsabile dell'informazione Android utenti degli eventi dell'applicazione. Lo fa fornendo agli utenti segnali visivi, audio o di vibrazione o una combinazione di essi quando si verifica un evento. Questi eventi hanno trigger esterni e interni. Alcuni esempi di trigger interni sono eventi di stato di batteria scarica che attivano una notifica per mostrare la batteria scarica. Un altro esempio sono gli eventi specificati dall'utente come un allarme. Alcuni esempi di trigger esterni includono nuovi messaggi o nuove reti Wi-Fi rilevate.
Android fornisce ai programmatori e agli utenti finali uno strumento per ottimizzare il sistema di notifiche. Ciò può aiutare a garantire che possano inviare e ricevere eventi di notifica nel modo più adatto a loro e ai loro ambienti attuali.
8) Gestore dei pacchetti
Android fornisce inoltre l'accesso alle informazioni sulle applicazioni installate. Android tiene traccia delle informazioni sull'applicazione come eventi di installazione e disinstallazione, autorizzazioni richieste dall'app e utilizzo delle risorse come il consumo di memoria.
Queste informazioni possono consentire agli sviluppatori di attivare o disattivare la funzionalità delle proprie applicazioni in base alle nuove funzionalità presentate dalle app complementari.
9) Fornitore di contenuti
Android dispone di un modo standardizzato per condividere i dati tra le applicazioni sul dispositivo utilizzando il fornitore di contenuti. Gli sviluppatori possono utilizzare il fornitore di contenuti per esporre i dati ad altre applicazioni. Ad esempio, possono rendere i dati dell'app ricercabili da applicazioni di ricerca esterne. Android stesso espone dati come dati del calendario, dati di contatto e simili utilizzando lo stesso sistema.
Android Librerie runtime e core/native
1) Android Runtime
Android attualmente utilizza Android Runtime (ART) per eseguire il codice dell'applicazione. ART è preceduto da Dalvik Runtime che ha compilato il codice dello sviluppatore in file Dalvik Executable (file Dex). Questi ambienti di esecuzione sono ottimizzati per la piattaforma Android tenendo in considerazione i vincoli di processore e memoria sui dispositivi mobili.
Il runtime traduce il codice scritto dai programmatori in codice macchina che esegue calcoli e utilizza i componenti del framework Android per fornire funzionalità. Android ospita più applicazioni e componenti di sistema che vengono eseguiti ciascuno nei propri processi.
Biblioteche principali
In questo segmento discuteremo alcune delle librerie principali presenti in Android sistema operativo.
2) Struttura dei media
Android supporta anche in modo nativo i codec multimediali più diffusi, semplificando l'utilizzo delle app create su Android piattaforma per utilizzare/riprodurre componenti multimediali pronti all'uso.
3) SQLite
Android ha anche un SQLite banca dati che consente alle applicazioni di avere funzionalità di database native molto veloci senza la necessità di librerie di terze parti.
4) Tipo libero
Android viene fornito con un motore di font veloce e flessibile preinstallato. Ciò consente agli sviluppatori di applicazioni di definire lo stile dei componenti della propria applicazione e offrire un'esperienza ricca che comunichi l'intento dello sviluppatore.
5)OpenGL
Android viene fornito anche con il sistema grafico OpenGL. È una libreria C che aiuta Android utilizzare componenti hardware nel rendering in tempo reale di grafica 2D e 3D.
6) SSL
Android inoltre è dotato di un livello di sicurezza integrato per consentire la comunicazione sicura tra le applicazioni Android e altri dispositivi come server, altri dispositivi mobili, router 6.
7) SGL
Android viene fornito con una libreria grafica implementata in codice di basso livello che esegue il rendering efficiente della grafica per la piattaforma Android. Funziona con i componenti di livello superiore del Android contesto Android pipeline grafica.
8)Lib
Il nucleo di Android contiene librerie scritte in C e C++, che sono linguaggi di basso livello pensati per l'uso incorporato che aiutano a massimizzare le prestazioni. Libc fornisce un mezzo per esporre a queste librerie funzionalità di sistema di basso livello come thread, socket, IO e simili.
9) Kit web
Questo è un motore browser open source utilizzato come base per creare browser. Il predefinito Android browser prima della versione 4.4 KitKat lo utilizza per il rendering delle pagine web. Consente agli sviluppatori di applicazioni di eseguire il rendering dei componenti Web nel sistema di visualizzazione utilizzando WebView. Ciò consente alle app di integrare componenti Web nelle loro funzionalità.
10) Gestore di superficie
Il surface manager è responsabile di assicurare il rendering fluido delle schermate delle applicazioni. Lo fa componendo grafica 2D e 3D per il rendering. Inoltre, lo consente eseguendo il buffering fuori dallo schermo.
Kernel Linux
La componente radice di Android Il sistema è il kernel Linux. È il pezzo fondamentale che abilita tutti Androidfunzionalità di.
Il kernel Linux è un software testato sul campo che è stato utilizzato durante lo sviluppo sistemi operativi per dispositivi di vasta gamma, dai supercomputer ai piccoli gadget. Ha capacità di elaborazione limitate come piccoli gadget collegati in rete per l'Internet delle cose (IoT).
Il kernel Linux può essere modificato per soddisfare le specifiche del dispositivo e consentire ai produttori di realizzarlo Android dispositivi con funzionalità diverse per soddisfare l'esperienza dell'utente.
Per quanto riguarda Android, il Kernel è responsabile di molte funzionalità fondamentali tra cui, ma non solo:
- I driver di periferica
- Gestione della memoria
- Process Management
Espandiamo alcune delle funzionalità:
I driver di periferica
Il kernel Linux ospita i driver necessari per consentire al sistema operativo di funzionare con diversi componenti hardware. Questi driver forniscono un'interfaccia standard con cui possono funzionare componenti hardware provenienti da diversi produttori.
Ciò consente ai produttori di dispositivi di approvvigionarsi di diversi componenti, come componenti Bluetooth, componenti Wifi, componenti della fotocamera. Finché i produttori corrispondono a Android specifiche standard, l'integrazione è perfetta.
1) Driver USB
Linux fornisce anche Android con un mezzo per interfacciarsi con dispositivi USB. I dispositivi moderni sono dotati di diverse porte USB, tra cui USB 2.0 e nuove versioni di USB, incluso USB-C. Questi driver consentono di utilizzare la porta USB per caricare e trasferire dati in tempo reale come i registri da Android dispositivi e interagire con l'androide file system.
2) Driver Bluetooth
Il kernel Linux fornisce il supporto per l'interfaccia con i componenti hardware Bluetooth. Fornisce un modo per leggere e scrivere i dati ricevuti dalle frequenze radio Bluetooth supportate. Fornisce inoltre una serie di servizi per Android per configurare il Bluetooth.
3) Driver Wi-Fi
Il kernel Linux fornisce i driver per integrare i componenti hardware della rete WiFi. I componenti WiFi integrati nei dispositivi mobili consentono Android dispositivi per connettersi alle reti Wi-Fi. Il driver consente ai componenti Wi-Fi di trasmettere reti Wi-Fi e creare hotspot.
4) Driver video
Android consente di interfacciarsi con i componenti di visualizzazione. Per la maggior parte dei dispositivi, il componente di interfaccia è un touch-screen LCD. Consente il supporto per la configurazione e il disegno di pixel.
5) Driver audio
Android i dispositivi vengono comunemente dotati di componenti hardware per l'ingresso e l'uscita audio. I driver audio nel kernel abilitano Android sistema per utilizzare l'audio ricevuto da questi componenti e produrre anche l'uscita audio.
6) Gestore della potenza
ponte Android i dispositivi vengono utilizzati mentre sono scollegati dalle prese di corrente. Dipendono quindi dalle batterie per alimentarli per gran parte del loro utilizzo. Linux Kernel viene fornito con un sistema di gestione dell'alimentazione configurabile per soddisfare le esigenze dei dispositivi che lo utilizzano.
Android Il sistema operativo utilizza il sistema di gestione dell'alimentazione per rendere gli altri componenti del dispositivo sensibili all'alimentazione. Lo fa trasmettendo vari stati legati al potere. Questi stati sono Standby, Sospensione e Batteria scarica. SU Android, il sistema di gestione dell'alimentazione viene impostato automaticamente sulla modalità di sospensione per garantire la massima durata della batteria.
Il Power Manager espone i mezzi con cui le applicazioni possono reagire alle diverse modalità di alimentazione. Le applicazioni possono anche modificare il proprio comportamento per adattarlo allo stato di alimentazione corrente del dispositivo.
Un'applicazione può anche richiedere di modificare le politiche di alimentazione predefinite. Le applicazioni possono ottenere la funzionalità desiderata, ad esempio mantenere attivi i componenti hardware. Un esempio è mantenere lo schermo attivo durante la lettura di un libro per garantire che l'utente non venga interrotto. Un altro esempio è tenere accesi i componenti audio mentre si ascolta la musica in sottofondo.
7) Memoria flash
ponte Android i dispositivi utilizzano la memoria flash come mezzo di archiviazione. La memoria flash è veloce e occupa meno spazio, rendendola perfetta per i dispositivi di piccole dimensioni. Il kernel Linux fornisce un mezzo per Android dispositivi per leggere e scrivere nella memoria flash. Fornisce un mezzo per partizionare la memoria in modo tale che il sistema operativo e altre applicazioni possano condividere facilmente ed efficacemente la risorsa di memoria.
8) Legante
Android ospita molte applicazioni e componenti di sistema che vengono eseguiti ciascuno nei propri processi. Nella maggior parte dei casi, questi processi dovrebbero essere isolati gli uni dagli altri per prevenire interferenze e corruzione dei dati. Tuttavia, ci sono casi in cui desideriamo trasferire i dati da un processo a un altro.
Il kernel Linux abilita la funzionalità di condivisione dei dati fornendo i driver del raccoglitore. I driver del raccoglitore consentono la comunicazione tra processi, IPC. Utilizzando i processi IPC puoi scoprire altri processi e condividere informazioni.
Gestione della memoria
Un'altra responsabilità del kernel Linux è la gestione della memoria. Quando diverse applicazioni vengono eseguite, il kernel garantisce che lo spazio di memoria utilizzato non entri in conflitto e si sovrascriva a vicenda.
Aiuta anche a garantire che tutte le app in esecuzione dispongano di memoria adeguata per funzionare, assicurandosi che nessuna singola app occupi troppo spazio.
Process Management
Ogni app in Android viene eseguito in un processo. Il Kernel è anche responsabile della gestione dei processi. Ciò significa che è responsabile della creazione, sospensione, arresto, chiusura o interruzione dei processi.
Il kernel abilita varie funzionalità come l'esecuzione di più processi contemporaneamente, la comunicazione tra processi, l'esecuzione di processi in background e così via.
Poiché ogni processo richiede il proprio spazio di memoria per funzionare correttamente, il kernel garantisce che gli spazi di memoria assegnati a ciascun processo siano protetti da altri processi. Garantisce inoltre che le risorse piacciano RAM assegnati ai processi vengono liberati quando i processi vengono chiusi.
Il kernel Linux è anche responsabile della distribuzione del lavoro ai processori presenti nel dispositivo. Ciò consente di massimizzare le prestazioni dei dispositivi con più core poiché app diverse avranno processi eseguiti su un core diverso.
Il kernel Linux svolge più attività nascoste, inclusa l'applicazione della sicurezza.
Sommario
- Android l'architettura è organizzata in strati.
- Ogni livello risolve una serie unica di problemi.
- Gli utenti finali interagiscono con le app a livello di applicazione
- Gli sviluppatori di applicazioni sviluppano app da utilizzare a livello di applicazione. Lo fanno utilizzando strumenti e astrazioni forniti dall'Application Framework.
- Android Il livello framework semplifica l'accesso ai componenti di basso livello creando un'API su librerie native.
- Android Le librerie runtime e core utilizzano linguaggi di basso livello insieme a ottimizzazioni per i dispositivi mobili. Ciò garantisce che il codice scritto dagli sviluppatori dell'applicazione venga eseguito senza intoppi nonostante Android vincoli del dispositivo.
- Nella parte inferiore della Android lo stack software è il kernel Linux. Si interfaccia con i componenti hardware comuni in Android dispositivi.