Le app Android sarebbero in grado di funzionare in Ubuntu in modo nativo?


28

Mi chiedo perché le app Android non potranno essere eseguite nativamente su Ubuntu Touch . Voglio dire, non è tutto solo Linux?


1
L'ambiente desktop è un fattore determinante per la compatibilità di un'applicazione.
Patrick C. James,

8
Questa è in realtà una buona domanda. Nooby davvero, ma molto valido. Avere un voto.
don.joey,

Concordo con @ don.joey poiché questo non è qualcosa di facilmente ricercabile oltre un tipo di conclusione "sì" o "no".
MGodby,

C'è stata una discussione interessante sull'ultimo Ubuntu live, che ha trattato gran parte di questo argomento: youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <timestamp su alcuni argomenti rilevanti punti
Mateo,

Non è anche un problema che probabilmente hanno CPU diverse?
Kevin Fegan,

Risposte:


24

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.


3
Giusto: eseguire un set di librerie telefoniche su un desktop 10 volte più potente è estremamente inefficiente ? Ormai da un decennio eseguiamo emulatori di telefoni cellulari sui desktop.
Salterio,

3
Risposi sul presupposto che chi intendeva significava nativamente, cioè senza emulatori o virtualizzazione.
MGodby,

5
@MSalters Un emulatore userebbe più risorse per produrre lo stesso output rispetto a un programma nativo. Questa è praticamente la definizione di inefficienza. E gli emulatori Android sono particolarmente lenti nella mia esperienza.
jmathew,

1
@jmathew Dal punto di vista di uno sviluppatore (almeno il mio) un vantaggio è che se un'app funziona abbastanza bene in un emulatore su una macchina lenta, allora funzionerà abbastanza bene sulle pile di telefoni di fascia bassa là fuori.
zxq9,

2
@jmathew Penso che ciò che MSalters stava cercando di dire fosse che quando è stato pratico per diversi anni usare un emulatore, allora non è possibile che eseguire la stessa cosa in modo nativo sia inefficace.
Kasperd,

1

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 '


1

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.