Les applications Android pourraient-elles fonctionner dans Ubuntu touch nativement?

28

Je me demande pourquoi les applications Android ne pourront pas être exécutées en mode natif sur Ubuntu Touch . Je veux dire, n'est-ce pas seulement Linux?

user287536
la source
1
L'environnement de bureau est un facteur important dans la compatibilité d'une application.
Patrick C. James
8
C'est en fait une assez bonne question. Nooby en effet, mais très valable. Ayez un vote positif.
don.joey
Je suis d'accord avec @ don.joey car ce n'est pas quelque chose de facile à rechercher au-delà d'un type de conclusion "oui" ou "non".
MGodby
Il y a eu une discussion intéressante sur le dernier ubuntu live, qui couvrait une grande partie de ce sujet: youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <horodatages sur certains pertinents points
Mateo
N'est-ce pas également un problème qu'ils ont probablement différents processeurs?
Kevin Fegan

Réponses:

24

La réponse courte est non."

À strictement parler, le noyau Linux fournit à peine plus qu'une interface directe avec le matériel sur lequel il tourne. Il existe toute une pile d'API, de programmes, d'applications, etc. spécifiques aux téléphones Android, dont les applications Android dépendent. De plus, Android ne fonctionne pas sur un noyau Linux générique, mais s'exécute à la place sur un noyau hautement personnalisé par Google dans le but spécifique d'exécuter leur système d'exploitation.

Même s'il est techniquement possible de reproduire la pile complète requise pour que les applications Android s'exécutent sur un autre système, elle serait gonflée et extrêmement inefficace.

MGodby
la source
3
Droite - exécuter un ensemble de bibliothèques téléphoniques sur un bureau 10 fois plus puissant est extrêmement inefficace ? Nous utilisons des émulateurs de téléphones portables sur les ordinateurs de bureau depuis une décennie maintenant.
MSalters
3
J'ai répondu sur la prémisse que le demandeur voulait dire nativement, c'est-à-dire sans émulateurs ni virtualisation.
MGodby
5
@MSalters Un émulateur utiliserait plus de ressources pour produire la même sortie par rapport à un programme natif. C'est à peu près la définition de l'inefficacité. Et les émulateurs Android sont particulièrement lents dans mon expérience.
jmathew
1
@jmathew Du point de vue d'un développeur (du moins le mien), un avantage est que si une application fonctionne raisonnablement bien dans un émulateur sur une machine lente, elle fonctionnera assez bien sur les piles de téléphones bas de gamme.
zxq9
2
@jmathew Je pense que ce que MSalters essayait de dire, c'est que quand il est pratique depuis plusieurs années d'utiliser un émulateur, alors il n'y a aucun moyen que l'exécution de la même chose en natif soit inefficace.
kasperd
1

Le Nokia N900 exécute maemo witch est un système d'exploitation Linux et pourtant il peut exécuter l'application Android via l'environnement Dalvik qui a été conçu pour cela, mais jamais mis sur le marché ou dans des répertoires. Pourquoi? Seule la société qui a développé le dalvik pour n900 le sait. Il y avait maintenant une autre initiative appelée apkenv. Il semble qu'il n'y ait pas tant de choses à ajouter pour que le n900 exécute certains jeux Android et peu importe la puissance du processeur ou du processeur ou le bureau de maemo, les applications fonctionnent sur un lac comme dans n'importe quelle émulation, mais certaines fonctionnent parfaitement, d'autres non. Donc, à propos d'Ubuntu Touch, il n'est pas question de technique (peut-être que je me trompe, mais le téléphone tactile officiel d'Ubuntu est un xiaomi qui est également utilisé pour Android, donc le matériel n'est pas un problème dans ce cas), mais la volonté et la loi que Google a gagnées ''

patrick
la source
1

La réponse à votre question est un GRAND NON.

Android est complètement différent d' Ubuntu Touch, bien qu'android soit basé sur le noyau Linux, mais cela ne signifie pas que les applications natives d'Android peuvent fonctionner sur Linux et vice-versa.

La similitude du noyau entre différents OS ne rend pas leurs applications exécutables sur ces différents OS. Le noyau est la couche logicielle la plus basse d'un système. Au-dessus du noyau se trouve l'espace utilisateur qui se compose d' un logiciel système et d'une interface d'application .

Le système d'exploitation avec le même noyau peut avoir des espaces utilisateur entièrement différents et des applications natives s'exécutent dans un espace utilisateur particulier.

De plus, les applications Android sont développées généralement à l'aide d'applications Java et Android exécutées dans un environnement d'exécution ( Dalvik ou ART ) qui prend le bytecode de JVM en entrée, tandis que les applications Linux sont directement converties en code machine lors de la compilation.

Les applications développées pour Android à l'aide de C ++ ne peuvent pas être exécutées directement dans un environnement Linux mais doivent d'abord être compilées pour les systèmes Linux.

Faizan Akram Dar
la source