Il crash del sistema operativo Android

Sicuramente vi è capitato di acquistare uno smartphone che dopo qualche tempo magicamente si spegneva e si riaccendeva da solo oppure solamente si spegneva senza che voi aveste premuto il pulsante di spegnimento, questo fenomeno è chiamato crash. Quando è capitato a me ho googlato e mi sono ritrova a leggere forum inerenti a questo fenomeno, ma ho visto, che non si sa il motivo e come Android va in crash, a questo punto ho deciso di documentarmi e di scrivere per voi un articolo, che spero vi sarà da guida e che una volta per tutte cancellera’ le leggende urbane come quella inerente che il crash è causato dall’utente quando compie delle precise operazioni.

crash-android-report

Innanzitutto dobbiamo analizzare l’hardware degli smartphone e subito dopo il sistema operativo Android, questo perchè il crash avviene sia dall’interfaccia utente dove interagiamo con il sistema operativo sia nelle profonde fondamenta elettroniche di ogni dispositivo.

Quando avete acquistato il vostro smartphone sicuramente lo avete fatto  con coscienza oppure seguendo le recensioni di blogger e la moda del momento, direi che la seconda opzione sia la più comune; tranquilli l’ho fatto pure io ma dopo questo articolo non sarete più in mano a blogger che elogiano alcuni smartphone rispetto ad altri,senza nessun motivo tecnico ma solo per piacere personale, sarete in grado di valutare il vostro dispositivo da soli, evitando smartphone che non vi danno le prestazioni sperate.Detto questo iniziamo.

Nella descrizione tecnica di ogni dispositivo vi è indicato il processore, ovviamente più è potente meglio è voi direte, questo non è vero se è associato a un firmware scadente, ma vi spiego meglio :

Ogni processore è programmato in embedded, vi state chiedendo che cos’è, Wikipedia lo definisce così:

In elettronica e informatica, con il termine sistema embedded (generalmente tradotto in italiano con sistema integrato, letteralmente immerso o incorporato) si identificano genericamente tutti quei sistemi elettronici di elaborazione a microprocessore progettati appositamente per una determinata applicazione (special purpose) ovvero non riprogrammabili dall’utente per altri scopi, spesso con una piattaforma hardwaread hoc, integrati nel sistema che controllano ed in grado di gestirne tutte o parte delle funzionalità richieste.

Ecco con questa definizione vi ho introdotto un nuovo modo di vedere l’hardware.Generalmente il sistema embedded è progettato per eseguire ripetutamente un’azione  a costo contenuto, ciò significa che ogni hardware è programmato in modo specifico, inoltre per la maggior parte dei sistemi embedded le prestazioni richieste possono essere soddisfatte con una combinazione di hardware dedicato e una quantità limitata di software ottimizzato dunque ricordando che in un dispositivo Android si ha sia l’hardware sia il software, si presume che le due parti siano in stretta relazione.

Come sono in relazione l’hardware e il software?  Questo compito è affibbiato al firmware che come riportato da Wikipedia e’:

Il firmware è un programma, ovvero una sequenza di istruzioni, integrato direttamente in un componente elettronico nel senso più vasto del termine (integrati, schede elettroniche, periferiche). Il suo scopo è quello di avviare il componente stesso e consentirgli di interagire con altri componenti hardware tramite l’implementazione di protocolli di comunicazione o interfacce di programmazione.

Il termine deriva dall’unione di “firm” (stabile) e “ware” (componente), indica che il programma non è immediatamente modificabile dall’utente finale, ovvero risiede stabilmente nell’hardware integrato in esso, e che si tratta del punto di incontro fra componenti logiche e fisiche, ossia fra software e hardware.

Come sapete il firmware è aggiornabile sui dispositivi Android sempre se il produttore del vostro smartphone renda disponibile l’aggiornamento.

Dopo avervi introdotto nel mondo dell’hardware ora passiamo al sistema operativo,cuore pulsante dei dispositivi.

architettura sistema Android
Leggi Conoscere Android per poterlo Programmare http://www.slideshare.net/flaviusso88/conoscere-android-per-programmarlo-33365647

Lo schema è semplice da leggere, prima viene il linux kernel, poi le librerie e Android runtime, infine application framework, ma vi spiego meglio la struttura.

Il sistema operativo e costituito da uno stack software (ovvero un set di sottosistemi software) che include un sistema operativo di base, basato sul kernel Linux, e che e composto da applicazioni Java che vengono eseguite su uno speciale framework, basato anch’esso su Java e orientato agli oggetti; vengono utilizzati i middleware per le comunicazioni e le applicazioni di base. Sopra il kernel poggiano le librerie fondamentali, la piattaforma utilizza un set di librerie C e C++ come: il leggero database SQLite; la libreria SGL per la grafi ca bidimensionale; l’implementazione delle API OpenGL ES 2.0 per gestire l’accelerazione grafi ca 3D; Media Libraries per il supporto a diversi formati audio e video, oltre che alla manipolazione delle immagini; un motore gra fico e di layout basato su WebKit; surface manager, un framework multimediale OpenCore e System C library, ovvero una libreria derivata da libc, la libreria standard Linux, adattata per i dispositivi mobili.
Le applicazioni, una volta scritte in linguaggio Java, vengono eseguite tramite la Dalvik virtual machine, una macchina virtuale adattata per l’uso su dispositivi mobili dotata di compilatore just-in-time (JIT). La DVM e stata progettata da Dan Bornstein, dipendente Google, ed e uno dei componenti principali di Android; grazie ad un utilizzo intelligente dei registri di sistema permette una maggiore ottimizzazione della memoria in dispositivi con bassa capacità, consente di far girare diverse istanze della macchina virtuale contemporaneamente e nasconde al sistema operativo sottostante la gestione della memoria e dei thread. Ovviamente la DVM non esegue bytecode Java ma un qualcosa che si puo ottenere da esso e che prende il nome di Dalvik bytecode. Le applicazioni per Android si sviluppano in Java per poi trasformare il bytecode Java in bytecode Dalvik, quindi su un dispositivo Android non gireràa alcun bytecode Java ma un bytecode le cui specifiche sono descritte dal formato .dex (Dalvik EXecutable). Nel penultimo strato dell’architettura e possibile rintracciare i gestori e le applicazioni di base del sistema; ci sono gestori per le risorse, per le applicazioni installate, per le telefonate, le system e altro ancora: tutti componenti di cui sicuramente si puo’ fare a meno. In fi ne, sullo strato piu alto dell’architettura, poggiano gli applicativi destinati all’utente normale. Molti, naturalmente, sono gia’ inclusi con l’installazione di base: il browser ed il player multimediale sono dei facili esempi; in questo livello si inseriranno anche le applicazioni sviluppate da terze parti.
In sintesi, il sistema operativo Android e composto in tutto da 12 milioni di righe di codice che comprendono 3 milioni di righe di XML, 2,8 milioni di righe di C, 2,1 milioni di righe di Java e 1,75 milioni di righe di C++.
Ma bando alle ciance torniamo allo scopo primario per cui avete aperto questo articolo, il crash di questo beneamato robottino verde, principalmente il sistema Android va in crash a causa di una cattiva gestione delle librerie del sistema operativo e per problemi hardware del dispositivo.
Il primo problema evidenziato ed è quello che è più comune è la mal gestione delle librerie del sistema operativo, esso avviene quando le applicazioni installate nel dispositivo sono state mal programmate dallo sviluppatore e di conseguenza quando si tenta di utilizzare quella determinata applicazione le librerie che vengono chiamate producono un crash e quindi lo spegnimento del dispositivo o solamente la chiusura dell’applicazione.
Il secondo problema è quello che riguarda l’hardware, come descritto sopra i dispositivi Android sono sistemi embedded ovvero l’hardware viene specializzato per compiti precisi e quindi dato che il sistema operativo Android è in continuo aggiornamento l’hardware può non supportare i modo ottimale i vari sistemi operativi. Il crash però non avviene solo a causa dell’aggiornamento del sistema operativo ma anche per un mancato aggiornamento del firmware e in casi particolari può essere causato dall’applicazione play store perchè essa è il cuore del sistema operativo Android dal quale ogni utente può accedervi per scaricare le applicazioni; l’applicazione Google Play Store è soggetta ad aggiornamenti dettati dalle esigenze dei nuovi sistemi operativi lanciati dalla Google, a volte questo in dispositivi meno recenti e con sistemi operativi non aggiornati questo può causare interruzioni inaspettate del servizio google.process.gapps o similari e quindi portare al crash e spegnimento del dispositivo.
Ora che sapete il motivo per cui il vostro dispositivo si spegne improvvisamente, sarete consapevoli che non è prevedibile l’istante del crash, quindi possiamo dire che la leggenda metropolitana sia stata sfatata, detto questo le uniche soluzioni per risolvere il crash sono solo tre o cambiate smartphone o fatte un ripristino delle impostazioni di fabbrica (prevedete un backup prima del ripristino) oppure come da veri androidiani ci smanettate sopra finchè non lo “curate” fino alla guarigione, a questo proposito suggerisco CyanogenMod in sostituzione del sistema operativo Android.
Per il momento questo è tutto, aspetto i vostri commenti qui sotto. Così possiamo approfondire di più questo argomento. Alla prossima.

Seguiteci anche su Facebook, Google Plus, Tumblr e Twitter, per restare sempre in contatto con noi e con le nostre guide.

Sono una studentessa, la mia passione è la tecnologia in generale,in particolare la robotica è la mia materia, spero di trasmettere la mia passione a voi e che vi divertiate in questo blog

Il crash del sistema operativo Android ultima modifica: 2015-06-06T10:28:33+00:00 da Lovely Salviato