Se android è una virtual machine, perché le rom non sono universali?
Ho letto che è una macchina virtuale, allora le ROM dovrebbero essere uguali per tutti gli smartphone.
Chi mi spiega perché non è cosi, anche in tecnichese moderato :-)
Se android è una virtual machine, perché le rom non sono universali?
Ho letto che è una macchina virtuale, allora le ROM dovrebbero essere uguali per tutti gli smartphone.
Chi mi spiega perché non è cosi, anche in tecnichese moderato :-)
La macchina virtuale sta su una macchina reale, di mezzo c'è una distribuzione linux che si occupa, tra l'altro, di fornire alla macchina virtuale i "servizi" dei dispositivi hardware della macchina reale quali, ad esempio, video audio radio fotocamera etc etc, ogni ROM deve essere fatta specificatamente per l'hardware che deve pilotare in quanto é questo che cambia da telefono a telefono.
"Sembra dunque che per questo particolare io sia più saggio di quest'uomo, poiché non m'illudo di sapere ciò che non so!" - Socrate.
Non c'è una distribuzione Linux, c'è proprio il kernel Linux (tra l'altro pochissimo modificato)
Le rom sono "universali", quello che cambia sono i driver del kernel (e anche qualche minima porzione di esso) che devono essere specifici per ogni componente del dispositivo.Se android è una virtual machine, perché le rom non sono universali?
Ho letto che è una macchina virtuale, allora le ROM dovrebbero essere uguali per tutti gli smartphone.
Chi mi spiega perché non è cosi, anche in tecnichese moderato :-)
Ultima modifica di xzell; 14-12-13 alle 21:40
Assolutamente negativo a riguardo, android é una distribuzione minimale di linux, la dalvik (o art) garantiscono che le app funzionino in maniera portabile, se fosse solo il kernel neanche partirebbe tant'è che c'è il tipico file system linux con le cartelle dev etc proc etc sya e via dicendo, con il solo kernel non combini nulla. Tra l'altro il kernel non é per nulla dipendente dal solo hardware cosi cone la rom non sono assolutamente uguali "a parte il kernel" a seconda del produttore ci sono personalizzazioni anche pesanti a vari livelli fino al framework.
Inviato dal mio Galaxy Nexus usando Androidiani App
Ultima modifica di lostman; 15-12-13 alle 16:16
"Sembra dunque che per questo particolare io sia più saggio di quest'uomo, poiché non m'illudo di sapere ciò che non so!" - Socrate.
Io ritengo che non si possa chiamare propriamente distribuzione, se non altro perché ci sono cose in più (tipo la dalvik) o in meno (il server X o wayland) rispetto ad una distribuzione tipica che comprende i tool Gnu e il kernel Linux. E' chiaro che avendo solo il kernel servirebbe giusto come fermacarte ma quello che c'è sopra ha poco/niente a che vedere con una distro, la Dalvik, gli apk, SurfaceFlinger e tutto quello sviluppato da Google per Android è appunto, sviluppato solo per esso, quindi a mio parere considerabile come un sistema operativo a parte che però ha parti in comune con una distribuzione. Attento che i filesystem sono tutti sviluppati nel kernel come moduli.
Il kernel non è dipendente dall'hardware, lo sono i driver; le rom non sono uguali, ho scritto "universali", proprio perché sono certamente personalizzate ma quando si implementa tutto a livello di framework, server e kernel, si può facilmente portare tutta una rom da un dispositivo all'altro con poco sforzo: nelle custom rom, si scrive una sola implementazione di una feature, che però è la stessa su dispositivi diversi.
ora mi spiego molte cose , grazie
mi sorge un dobbio all'ora, ho letto che virtualizzano android (dalvik) per farlo andare su hardware differenti, purtoppo la virtualizzazione rallenta tutto; ma se devo adattare il tutto od ogni cellulare, non vedo il senso di virtualizzare usando la dalvik, cosa che ho letto stanno cambiando nella nuova versione di android. che ne pensate?
Non devi adattare tutto, devi adattare i driver dei vari componenti e piccole parti del kernel, la dalvik , le librerie e il framework rimangono press'a poco identici (discorso a parte per le personalizzazioni degli OEM) la virtualizzazione ha vantaggi (grande portabilità, possibilità di creare applicazioni in linguaggi diversi) e svantaggi (performance peggiori rispetto al codice nativo).
In Kitkat la virtualizzazione rimane, quello che tu intendi è ART, che è un rimpiazzo della dalvik, pensato per offrire maggior performance e minor consumo, per approfondire leggi qui:
Meet ART, Part 1: The New Super-Fast Android Runtime Google Has Been Working On In Secret For Over 2 Years Debuts In KitKat
Meet ART, Part 2: Benchmarks - Performance Won't Blow You Away Today, But It Will Get Better
grazie delle spiegazioni.
tutto questo dubbio mi era venuto vedendo che il mio xperia sole (provate tantissime rom e versioni), il pipo m9 (jelly bean), il galaxy tab (dei clienti) e tutti gli altri dispositivi android che mi capita di usare, sono lenti, dopo un mese ci sono lag, l'apertura delle pagine web è lenta, i programmi sono lentissimi ad avviarsi, e quindi ne ho dedotto che il difetto è di android, qualsiasi versione sia. Presumo sia dovuto in gran parte alla virtualizzazione, (l'unica esperienza che ho è vmware o hyper-v su pc o server windows).