Android Extensions: da Google un nuovo alleato contro la frammentazione di Android

09 Novembre 2016 75

Come sappiamo la gestione degli aggiornamenti di Android è uno dei principali talloni d'Achille della piattaforma. Nel corso degli anni, Google ha cercato di "scorporare" quanti più componenti possibili dal sistema operativo, in modo da snellire il processo di adattamento del codice ai vari dispositivi.

Tutto è cominciato con le core app come tastiera e client di posta, ora aggiornabili tramite il Play Store, poi abbiamo visto l'introduzione del Play Services. Con le prossime release di Android, Google sembra intenzionata a compiere un ulteriore passo in avanti, introducendo le Android Extension.

Questo nome è comparso per la prima volta poche ore fa, nell'Android 7.0 Compatibility Definition Document. È una serie di linee guida e obblighi che i produttori devono rispettare affinché Google permetta l'installazione dei suoi software e servizi. La sezione relativa indica la seguente dicitura:

3.1.1. Android Extensions

Android includes the support of extending the managed APIs while keeping the same API level version. Android device implementations MUST preload the AOSP implementation of both the shared library ExtShared and services ExtServices with versions higher than or equal to the minimum versions allowed per each API level. For example, Android 7.0 device implementations, running API level 24 MUST include at least version 1.

La teoria di Ars Technica è che queste "Extension" siano dei "contenitori" delle API AOSP di Android, che Google potrebbe aggiornare in qualunque momento come se fossero delle semplici app. In pratica, le Extension svolgerebbero per le API di Android "base" la funzione del Play Services per le API proprietarie di Google.

I due pacchetti menzionati nel documento, ExtShared.apk ed ExtServices.apk, sono effettivamente già presenti nel file system di Android 7.0 Nougat, ma per il momento sono solo "di figura" - includono poche righe di codice e non sembrano avere un'utilità pratica. Probabilmente ne sentiremo riparlare con le prossime versioni del sistema.

È importante precisare che, per quanto risultino molto sensate alla luce delle informazioni presenti nel CDD, queste teorie per il momento non sono state confermate da Google. Certo è che qualsiasi soluzione che permetta di snellire i tempi di attesa per gli aggiornamenti dei dispositivi basati su Android sarebbe ben accetto.


75

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...
glukosio

se per frammentazione intendi il numerino nelle info dispositivo allora sì. Se invece intendi il livello delle API cazziemazzi vari che gli sviluppatori devono fare per accontentare tutti da gingebread a nougat allora questa cosa potrebbe portare migliorie. magari non nell'immediato, ma quando uscirà android 10 questi di adesso non rimarranno così indietro

Azzorriano

No lui parla del 2013 credo. Il mio 2013 comunque va bene :-)

Azzorriano

Potrebbe essere un problema di memorie sai. Il mio non ha mai mostrato particolari segni di cedimento e sino all'ultimo è andato benino devo dire, ora è in prestito ma dalle ultime notizie se la cavava ancora :-)

Felk

Io ho la versione solo Wifi. Ho provato anche quella lte ed era leggermente meglio di quella mia, ma comunque da sbatterlo per terra in alcuni momenti.

Alchemide

sono veloci e reattivi, ovviamente dopo l'update ovviamente sono stati ripristinati, domandina ma tu e Mr.Chuck avete la versione con sim telefonica?

Felk

Avrai un comcetto di "Benissimo" diverso dal mio. Chiedi anche a Mr.Chuck se vuoi

Alchemide

io ripeto ne ho 2 che uso spesso, e vanno benissimo.

gablib83

la frammentazione nel OS android è molto difficile da limitare per molti motivi.
intanto il supporto ai device difficilmente supera i 2 anni, ed in giro ne trovi tantissimi...
i vari costruttori non sono obbligati ad aggiornare all'ultima versione,
Google non stringe la morsa più di tanto, ossia, lei obbliga i vari costruttori a mettere in commercio solo dispositivi con l'ultima versione OS disponibile...
ma le scappatoie sono tante, se vedi nei vari megastore ci sono tanti telefoni, specie quelli a basso costo che sono vecchi come progettazione, e quindi sono già obsoleti in partenza... e spesso mai aggiornati...
per non parlare dei costruttori minori, i vari telefoni cinesi ... quelli hanno una versione android in relazione all'HW.... generalmente nascono così e nessuno li aggiorna.
i costruttori speculano sull'obsolescenza programmata... un telefono con già 2 anni alle spalle è "anziano" se non viene aggiornato si stimolano i clienti ad abbandonarlo e passare al nuovo modello.. e si risparmiano anche soldi...aggiornare un vecchio telefono è pur sempre un costo...

come ho scritto altrove... questa soluzione studiata da Google, permetterebbe a molti telefoni di restare "compatibili" anche se hanno versioni di android precedenti .. e questo è chiaramente un vantaggio per il cliente e per il costruttore che evita di dover aggiornare un telefono che continua ad andare bene.... e questo aumenta la frammentazione

gablib83

infatti l'alleato di Google per abbattere la frammentazione non è affatto questo android extension manager...
Per assurdo la frammentazione potrebbe aumentare ancora con questo....
ma non vuol dire che android extension sia qualcosa di negativo...

gablib83

infatti frammentazione e compatibilità delle API sono due cose totalmente differenti...
ma non è che questo sia da considerarsi un passo indietro...

Mario I/O

No, ho detto 4 perché è la media Apple. Se vogliono copiare i prezzi, iniziassero anche a copiare questo aspetto.

Federico

Non colgo il nesso con gli hackintosh e non vedo nessuno svantaggio nello standardizzare

Steve

figurati..saresti il primo che direbbe "perchè 4? andiamo a 5 dai" e una volta a 5 "beh l'hardware è talmente potente da gestire 6 anni di aggiornamenti" e così via

a'ndre 'ci

"bene o male sempre la medesima di versione in versione"
NO.
è RETROCOMPATIBILE (quasi sempre), non la medesima

Felk

Un conto è vederli, un altro è utilizzarli quotidianamente.
Fidati che è una chiavica, soprattutto con MM.

a'ndre 'ci

è quello che Microsoft ha fatto dopo windows 98, circa xD

Felk

E' estremamente lento, laggoso e si blocca spesso. Il primo ha problemi sin dall'inizio (l'ho preso praticamente al Day One, e da lì in poi mi sono ripromesso di non prendere mai più nulla all'inizio), ma anche un altro che ho provato (quest'ultimo in versione LTE) era leggermente meglio, ma comunque estremamente lento e laggoso.

Mako

non so, ne ho visti diversi e girano discretamente, a livello di un nexus 5 con mm, non perfetti, ma si usano benissimo

Felk

Non mi confondo, ce l'ho il 2013 e con MM è un fermacarte.
Il mio è difettoso fin dall'inizio, ma ho avuto modo di provare anche un'altra Nexus 7 2013 (questo LTE) ed è lento anche quest'ultimo.

Il mio l'ho downgradato a Lollipop ma è comunque scarso...

Mako

forse ti confondi col 2012 che effettivamente è un fermacarte con le nuove versioni, un po' all'ipad 2

Mako

allora perchè gli hackintosh funzionano su dispositivi amd? e la standardizzazione dell'hardware ha vantaggi ma anche tanti svantaggi

Alchemide

io ne ho 2 e funzionano stupendamente. non è che ti confondi con il Nexus 2012???

Azzorriano

Il mio funziona benino, lo ho in prestito ora e il proprietario ne è soddisfatto, gira bello liscio, che problemi ti da?

Ilgard

Beh, aspetta, tralasci alcuni aspetti.
Windows è in grado di "mangiarsi" i driver fino ad un certo punto e se non ha niente che possa vagamente funziona quella componente non va.
Per Android il discorso resta identico.
Potenzialmente il fatto che se su un SoC ci gira una Cyano allora ci possono girare tutte è vero, purché qualcuno ci lavori.
Tanto per dirne una, per far girare MM sul Nexus 4 bastava cambiare il codice identificativo del device nella stringa della Cyano del Nexus 5 (se non erro).
Ok che determinate interfacce cambiano, ma raramente si tratta di cambiamenti rilevanti o insormontabili, il più delle volte si tratta di trovare qualche dev che si metta a patchare i singoli aspetti che danno qualche problema.
Semplicemente, quel che su Android viene visto come un problema mono-blocco, su Windows è un problema distribuito. Su Android hai un SoC e devi far funzionare tutto. Su Windows basta far funzionare il grosso della MB, poi te la smazzi tu (e spesso te la smazzi, tra driver audio, wifi e via dicendo).

ErCipolla

Non parlavo di architettura delle CPU, che il kernel linux gira su bene o male qualsiasi architettura è risaputo.

Non è quello il punto.

Il punto è che windows tu lo metti su e va su qualsiasi PC "IBM compatibile" (termine antiquato, ma per capirsi). Non è che devi configurarlo e ricompilarlo specificatamente per il Dell XPS13 piuttosto che per lo Znebook, piuttosto che per il pc di tua nonna di 10 anni fa. Questo perché è progettato per fare bootstrap in autonomia con il solo aiuto del BIOS e si "mangia" i driver anche se non sono stati progettati per l'esatta versione corrente del kernel.

Se fosse vero quello che dici tu, cioè che è solo perché i produttori non aggiornano, allora un device che sono compatibili con almeno una versione della Cyano dovrebbero essere compatibili anche con tutte le successive. Invece non è così, proprio perché da una versione all'altra di android cambiano le interfacce tra SO e driver e ti capita che una volta il modulo che controlla la fotocamera non va più, un'altra il modulo che controlla i sensori non va più, ecc. ecc. Solo trovando versioni aggiornate di questi moduli (da altri device che usano lo stesso hw o facendo delle "pezze" se le differenze sono minime) si riesce a far andare tutto. Sennò ti ritrovi la roma che va per metà, come purtroppo spesso accade.

Ilgard

Mi riferivo ai driver tra una versione e l'altra del dispositivo.
Per il resto, il sistema deve essere testato e ricompilato su tutte le piattaforme, esattamente come accade su Windows.
Il kernel Linux gira tranquillamente su x86 come su ARM, non sta lì il problema.
Amdroid è poco aggiornato perché è la specifica volontà dei produttori, niente più. Non c'è nessuno strano meccanismo ad impedire l'aggiornamento.

Federico

No, affatto...
esiste una standardizzazione non solo della CPU ma dell'intera macchina.
Non è che tu abbia un disco di installazione per il Dell fa 5.000$ ed uno differente per il MiniPC da 70$, l'hardware esposto dai driver al layer di astrazione è identico nelle modalità di accesso e ciò permette di rendere unico il sistema operativo.

Federico

No, sono tutti compatibili gli iOS, così come gli OS-X dei dispositivi fissi, a cambiare sono solo alcuni driver di periferica (e in genere neppure quelli).
Tu puoi prendere un OS-X e montarlo sul primo iMac Intel o sull'ultima versione di Mac Pro. E questo perché la piattaforma hardware sottosante è standardizzata.
Stessa cosa per Win, sia fisso che mobile.
Se vi fosse una standardizzazione Google distribuirebbe il proprio OS per i Nexus e gli altri OEM potrebbero implementarlo senza alcuna modifica per i loro sistemi.

Federico

Ma il problema non è mica nelle app, standardizzazione dell'hardware significa avere sistemi operativi identici caricabili sui più svariati tipi di dispositivo cambiando solo il pacchetto di driver (che comunque non variano da versione a versione dell'OS).
Al momento Android non può farlo proprio perché le piattaforme hardware non sono standardizzate.

comatrix

Purtroppo sai cos'è: ign0ranza, e sovente anche stupid1tà, poiché non sono la stessa cosa, ma spesso vanno a braccetto.

boosook

Già adesso le api google sono aggiornate tramite play services, se iniziano a farlo anche con le api di sistema la versione di android diventa praticamente irrilevante per la compatibilità delle app, che è quello che interessa agli sviluppatori e agli utenti.

V.

Succede sempre così, quando tempo fa venne introdotto l'attuale sistema di gestione dei tab di Chrome, dissi che secondo me anche il multitasking avrebbe avuto un'evoluzione di quel tipo, dire che mi fecero una m3rda è un eufemismo...

Francesco

E che vuol dire che differenti versioni del SO sono incompatili tra di loro? TRA DI LORO ?

Anche iphone 6 ha un hw diverso dal 6S che è diverso dal 7 e dal 5... la differenza è solo che ci sono meno modelli di iphone rispetto agli android

Redvex

si parlava di unificare la piattaforma hardware. I sistemi dove gira windows hanno configurazioni hardware tra le più disparate. L'unica cosa in comune è che sono x86/x64

Federico

Frammentazione indica differenze di versione dello stesso sistema operativo incompatibili fra di loro, e nel caso di Android incompatibili lo sono perché non esistendo un hardware standardizzato fra tutti i produttori è inevitabile. Tu cosa intendi?

tonyX86

Esatto visto che ormai il prezzo è quello

Luca

E insisti... Ma secondo te noi non abbiamo i nostri metodi di tracciamento per sapere chi usa le nostre applicazioni? Ce ne sono quanti te ne pare che ti dicono il modello, le caratteristiche, la versione del sistema, quando e perché crasha, quante volte viene aperta l'app in tempo reale e mille altre informazioni... Come se la dasboard di android fornisse i dati che realmente servono ad una software house -.-" Sono valori indicativi quelli, ti ci puoi fare una chiacchierata sopra, NON un'analisi, soprattutto quando scopri che il 15% di Jelly Bean USA la tua app!

Mako

Stai presupponendo che lui abbia letto l'articolo, cosa che non è così sicura

Mako

Esatto, adesso avviene solo per le api di Google, così avverrebbe anche per le api di sistema

ErCipolla

Guarda, se non ci fosse questo problema di incompatibilità a livello di ABI (occhio, ABI, non API) la Cyano girerebbe ovunque in qualunque versione.

La verità è proprio che ogni device android ha una configurazione tutta sua con un set di driver, firmware e file di configurazione/inizializzazione che è specifico per QUEL device e QUELLA versione di Android.

Francesco

intanto i dati riportano semplicemente chi ha acceduto al play store in un periodo di 7 giorni, magari anche io che riaccendo un vecchio telefono per 5 minuti e mi partono gli aggiornamenti automatici, potrebbe essere anche più del 60%

Inoltre l'utenza che fa uso più intensivo delle applicazioni avrà anche telefoni più aggiornati, quindi per me sì, taglierei tranquillamente il supporto quantomeno a jelly bean

ErCipolla

Sta di fatto che su un vecchio portatile che ho, uscito 9 anni fa e morto con Vista, win10 va perfettamente con tutte le periferiche. Le cose sono due: o i produttori di hardware PC sono tutti dei lavoratori instancabili e aggiornano i loro driver costantemente oppure il modello driver di windows è molto più stabile. E la webcam di me*da da 640x480 che c'era su quel portatile non penso proprio che sia stata aggiornata esplicitamente a win10 sai, quindi propendo per la seconda ipotesi.

Mario I/O

Google pensasse a dare il buon esempio e a supportare i suoi pixel/nexus per almeno 4 anni come fa Apple. E lo dico da possessore e fan di soli nexus negli ultimi 7 anni.

Francesco

ma cosa ti frega di jelly bean?? Che ha neanche il 15% ormai (dati di ieri)

Luca

Oh te sei quello che non risponde mai non appena si va un po' più sul tecnico... Aspè, ti rispondo con un'altra domanda... E ALLORA? Tu pensi davvero che si possa lasciare indietro il 40% dell'utenza usando una versione minima come lollipop? A parte qualche applicazioncina che faccio per diletto, il cliente non accetterà MAI una frase come la tua. Siamo riusciti ad abbandonare la 2.3 solo dopo averla vista scendere sotto il 6%, e tu mi parli di supporto del 60%... Informati che hai un po' le idee confuse sullo sviluppo. Un conto è chi lo fa per passione, un conto è chi lo fa anche per lavoro.

Francesco

ma cosa c'entra... anche se il firmware è personalizzato gira tutto su tutto, a parte quelle pochissime app che usano hw specifico.
Cioè se l'app vuole il lettore di impronte e il mio telefono non ce l'ha chiaramente non potrà usare quella funzione, idem il giroscopio, ma tutto cioò non ha niente a che vedere con l'abuso che fate di questo termine (frammentazione)

Federico

Bene, adesso provo a flashare la 7.0 del Galaxy sul mio M9 e poi vediamo che ne pensa :)
Francesco... a parte che la VM ormai è risotta all'osso perché usa ART, ma quella sta comunque SOPRA il sistema operativo, ossia fra processi utente e middleware Android e NON fra il kernel e la macchina fisica.
Quindi non ha niente a che vedere con la standardizzazione delle piattaforme hardware

Francesco

intanto informati te che hai le idee confuse mi sa... 60% dei dispositivi che oggi accedono al play store hanno almeno android 5

Francesco

qualunquismo ne abbiamo?

Ilgard

No, non cambia nulla a riguardo.
Anche le storielle su Google che non può aggiornare per mancanza di driver sono balle per giustificare il fatto che i produttori non vogliano aggiornare.

Recensione Lenovo Smart Paper: Il Tablet E-INK con Android ci ha convinto | Video

Recensione Lenovo Tab Extreme: per la produttività ma anche l'uso multimediale

Recensione Realme 11 5G: ottima autonomia ma con alcuni limiti | VIDEO

Recensione OnePlus Open: il paradosso dei Fold | VIDEO