2010-11-19 4 views
0

Je réfléchis à l'idée d'une couche de compatibilité vin-ish sur Android. L'idée est d'exécuter des applications Symbian car les deux OS partagent le matériel ARM.Wine like pour Android

Je n'ai aucune connaissance de Symbian mais je pense qu'étant donné les capacités matérielles des appareils Android, cela pourrait être fait avec moins d'effort que l'émulation Windows de Wine.

Quelle serait la différence la plus significative à surmonter dans cet émulateur? (threading, storage, ...)

+3

WINE n'émule pas Windows. Cela signifie réellement Wine Is Not a Emulator. –

+0

@ghills: Correct! –

Répondre

1

Le vrai problème ne va pas être l'exécution de code, mais pour faire de l'API des choses comme les graphiques, interagir avec le matériel, accepter l'entrée, etc. Si vous avez la documentation de l'original et Android a la capacité, les couches de traduction de l'API serait possible. Mais le modèle de sécurité d'android empêche carrément un certain nombre de choses qui sont possibles sur d'autres plates-formes téléphoniques et, combiné à son "Java uniquement", ne permet que des méthodes inefficaces qui peuvent être utilisées plus efficacement sur d'autres.

Il s'agit bien sûr de la traduction de l'émulation/api au niveau de l'application. Si vous êtes prêt à modifier la plate-forme Android elle-même, la prise en charge de tout ce que vous avez de la documentation (et des licences?) Dans la capacité matérielle de l'appareil devrait être possible.

1

Les capacités matérielles d'un périphérique n'ont rien à voir avec la complexité d'un émulateur à héberger. Cela dépend du design et de la complexité de Symbian.

Et, encore plus, l'octroi de licences. Même si l'on pouvait faire un émulateur Symbian pour Android, sa légalité serait remise en question.

Il est difficile de répondre à votre question en détail, mais depuis Symbian est open source (et Android aussi), si vous avez le temps, il ne devrait pas être trop difficile de voir ce qui les distingue.

+0

Le matériel a un peu à voir avec la vitesse du code adapté. Si la couche de compatibilité n'est pas suffisamment fine pour effectuer des adaptations 1: 1, le code de la colle risque de consommer une partie de la bande passante du processeur. Comme je l'ai dit, je ne sais rien sur Symbian et ses internes - c'est pourquoi j'ai posé cette question. Tout pointeur serait apprécié. –

+0

@Daniel: vrai, mais votre déclaration "compte tenu des capacités matérielles des appareils Android cela pourrait être fait avec moins d'effort que l'émulation Windows de Wine" ne tient pas. Vous pouvez avoir un PC avec 50Ghz et pourtant il ne serait pas plus facile de faire un émulateur Playstation 3 pour cela. – darioo

+0

CellBE vs. x86 n'est pas la même chose que ARM v7 (le poisson rouge d'Android) vs ARM v7 (OMAP/...). Vous avez toujours un point valide ici. L'idée est que le code qui n'a pas de correspondance 1: 1 entre Symbian et Android doit être écrit - et ce code devrait fonctionner aussi vite que possible - d'où la nécessité d'un matériel plus rapide. –

1

QT est utilisé pour le dernier système d'exploitation symbian, et a été porté sur Android, vous pouvez écrire des applications dans l'intervalle QT construire pour chaque plate-forme

+0

Pour S^3 oui, c'est la voie à suivre. Que faire si vous voulez exécuter une application plus ancienne à partir de modèles S60 ou précédents? Il n'y avait pas de QT alors ... Un exemple que j'ai à l'esprit est Garmin MobileXT - une excellente application avec un arrêt du support sur WinMo et Symbian. Ce serait génial de pouvoir utiliser un téléphone plus récent. –

+0

c'est vrai, comme je l'ai dit QT est utilisé dans le dernier Symbian OS :) – hhafez

1

le problème pour écrire un emulatir est variouss.

Si les applications Symbian sont écrites dans un langage d'interpréteur comme Basic ou similaire, un émulateur ne peut pas être trop difficile à écrire. J'ai fait une telle chose une fois pour faire fonctionner le même code sous linux et windows, et j'ai utilisé une API de traduction pour tous les appels provenant du logiciel dirigé vers l'interface utilisateur, entrée/sortie. Je pense que les fonctionnalités UI de Symbian sont un sous-ensemble des fonctions Android, donc il ne serait pas trop difficile d'écrire un truc comme WINE ou un interpréteur qui exécute le code Symbian sur un matériel différent - SI c'est seulement dans haut langage. Mais sachez qu'il peut y avoir du code machine dans les appps et qui est spécifique au processeur. La plupart des onglets Android fonctionnent sur Tegra, Tegra2 ou (bientôt) sur Tegra3, certains peuvent fonctionner sur StrongArm ou Arm, certains peuvent fonctionner sur Intel Atom (x86 architechture), donc cela peut devenir plus ou moins impossible si le CPU n'est pas t binaire compatible comme ARM/ATOM. Ensuite, vous avez besoin d'émuler le processeur aussi bien et cela pourrait consommer tellement de performance que vous avez besoin d'une machine 4-5 fois plus puissante pour faire fonctionner ce genre de choses en douceur.

Il ne sera pas trop difficile de pirater Android pour exécuter des binaires semblables à Linux, mais il est certain que ce "mod" affectera la possibilité d'utiliser ou de télécharger des choses à partir d'applications ordinaires.

Avec certaines applications, vous pourriez avoir encore plus de maux de tête, e.G. mon lecteur MP3 de Corée fonctionne sur Strongarm, mais il exécute aussi des jeux Flash de diverses sources. Quand il n'y a pas de lecteur Flash - et Google a annoncé quelque chose comme abandonner le support pour Adobe Flash - il ne sera pas utilisable. Le "plus recherché" est évidemment Ovi Maps, probablement que les choses pourraient facilement être converties en une autre application ayant une capacité de navigation hors ligne :-) Les gens ont écrit "Gaia" il y a quelques années, un visualiseur open source pour Google Earth (et plus tard forcé d'abandonner) ainsi il ne peut pas être trop difficile de réaliser au moins ceci.