Mi chiedo perché le app Android non potranno essere eseguite nativamente su Ubuntu Touch . Voglio dire, non è tutto solo Linux?
Mi chiedo perché le app Android non potranno essere eseguite nativamente su Ubuntu Touch . Voglio dire, non è tutto solo Linux?
Risposte:
La risposta breve è "no".
A rigor di termini, il kernel Linux fornisce poco più che un'interfaccia diretta all'hardware su cui è in esecuzione. Esiste un'intera serie di API, programmi, applicazioni, ecc. Specifici specifici del telefono Android da cui dipendono le applicazioni Android. Inoltre, Android non funziona su un kernel Linux generico, ma su uno che è stato altamente personalizzato da Google con lo scopo specifico di eseguire il proprio sistema operativo.
Anche se è tecnicamente possibile riprodurre l'intero stack richiesto per l'esecuzione delle applicazioni Android su un altro sistema, sarebbe gonfio ed estremamente inefficiente.
Nokia n900 esegue maemo witch è un sistema operativo Linux e tuttavia può eseguire l'app di Android tramite l'ambiente dalvik che è stato sviluppato per questo, ma non è mai stato immesso sul mercato o nei repository. Perché? Solo la società che ha sviluppato il dalvik per n900 lo sa. Ora c'era un'altra iniziativa chiamata apkenv. Sembra che non ci siano tante cose da aggiungere per far funzionare l'N900 con alcuni giochi Android e, indipendentemente dalla potenza della gpu o della cpu o dal desktop di maemo, le app girano lì come in qualsiasi emulazione, ma alcune non funzionano perfettamente. Quindi su Ubuntu Touch non è una questione di tecnica (forse mi sbaglio, ma un telefono touch ufficiale di Ubuntu è uno xiaomi che viene utilizzato anche per Android, quindi l'hardware non è un problema in questo caso), ma volontà e legge che Google ha vinto '
La risposta alla tua domanda è un GRANDE NO.
Android è completamente diverso da Ubuntu Touch sebbene Android sia basato sul kernel Linux ma ciò non significa che le applicazioni native di Android possano essere eseguite su Linux e viceversa.
La somiglianza nel kernel tra diversi sistemi operativi non rende le loro applicazioni eseguibili su questi diversi sistemi operativi. Il kernel è il livello software più basso di un sistema. Sopra il kernel si trova lo spazio utente costituito da software di sistema e interfaccia dell'applicazione .
Il sistema operativo con lo stesso kernel può avere spazi utente completamente diversi e le applicazioni native vengono eseguite in un determinato spazio utente.
Inoltre, le app Android vengono sviluppate in genere utilizzando java e le app Android vengono eseguite in un ambiente di runtime ( Dalvik o ART ) che utilizza il bytecode da JVM come input, mentre le applicazioni Linux vengono convertite direttamente in codice macchina al momento della compilazione.
Le applicazioni sviluppate per Android utilizzando C ++ non possono essere eseguite direttamente in ambiente Linux, ma devono essere compilate prima per i sistemi Linux.