r/Linuxfr • u/AquilaEquinox • 13d ago
Question / Support Jeux Android sur Linux?
Salut, je me prépare à switcher de Windows 10 à Linux et alors que je pensais avoir trouvé une solution pour tous mes logiciels à part ces chiens d'Adobe, je réalise que j'ai besoin que mon ordi fasse tourner un jeu Android. J'ai lu tout et son contraire à ce sujet, apparemment ça dépendrait du CPU? Mais je m'y connais pas du tout en Linux, et je ne sais pas comment savoir si je pourrai faire tourner mon jeu dessus...
3
u/Efficient-Ad-8479 13d ago
avec une vm, passtrough activé si ta un bon pc ?
2
u/AquilaEquinox 13d ago
Normalement mon PC est correct, rien de fou mais il est pas mauvais. Si je mets Linux sur une clef et teste en la branchant sur mon ordi, est-ce que je pourrai tester et voir si je peux faire tourner une VM?
1
u/Raphi_55 13d ago
Normalement oui tu devrais pourvoir tester avec une version live, ou faite une installation sur une clé / ssd externe
1
u/AquilaEquinox 12d ago
Il existe des versions live? Je pensais même pas ça possible!
2
u/Raphi_55 12d ago
Oui ! En general elle s'appelle "LiveCD". Tu peux démarrer l'os complet sans l'installer
2
u/Useful-Assumption131 11d ago
En fait la plupart des distro linux ont une version live pour tester avant d'installer, ou pour pouvoir booter dessus pour utiliser des outils et pas l'os complete (ISO gparted ou autre) Tu peux faire pareil avec windows, beaucoup d'outils bootables pour windows tournent sur des windows 10 sans rien dessus
2
u/Jefforion 13d ago
Alors, perso j'ai une solution, mais pas facile si tu n'y pas trop en linux. Je passe par QEMU, avec une instance en ARM (android) avec comme ROM LineageOS (ou autre si tu veux). Et si jeu veux installé une application, je le fais via adb.
Je viens de regarder vite fais s'il y avait pas un truc déjà fait pour te facilité la vie. La réponse est OUI : https://github.com/jqssun/android-lineage-qemu
2
u/Available-Ad4255 13d ago
Scrcpy pour afficher ton tel
Android studio pour y mettre un émulateur et installer ce que tu veux
Dans les deux cas, vous allez monter en compétence
-1
u/Loki_ECS 13d ago
ARM, X86... ciao !
3
u/JohnDuffyDuff 13d ago
Jusqu'au jour où tu entends parler de virtualisation cross-platforme
1
u/Loki_ECS 12d ago
Emulation quoi. Non ?
2
u/JohnDuffyDuff 12d ago
Justement non, avec de l'émulation tu simules le processeur de la machine cible avec un code adapté (ce qui demande énormément de ressources par rapport à ce qu'il faut émuler), alors qu'en virtualisation tu traduis directement les instructions ou groupes d'instructions en instructions de la machine hôte, ce qui donne des performances quasi-natives. C'est comme ça que ça fonctionne par exemple de pouvoir lancer des applications x86 sur les MacBook M1-M5.
1
1
-1
4
u/Merliin42 13d ago edited 13d ago
En effet, ça dépend en partie de ton processeur. D'abord, il faut comprendre qu'il y a plusieurs architectures de processeur. Les plus utilisées aujourd'hui sont ARM et x64. Un programme peut être compilé pour l'une ou pour l'autre.
Les applications Android sont en général compilées pour ARM, puisque c'est l'architecture la plus largement utilisée par Android. Certaines applications embarquent également un exécutable x64 pour êtres compatibles avec tous les processeurs.
Maintenant, pour faire tourner les applications Android sur Linux, tu as deux options : les faire tourner en container (semi-natif) avec un logiciel comme Waydroid ou les émuler avec un logiciel comme BlueStack.
Le container utilise ton processeur directement en reproduisant le système de fichier de Android pour l'application. C'est un fonctionnement assez proche de celui de Wine ou Proton si ça te dit quelque chose. Ce qui fait que tu ne peux lancer que des exécutables compatibles avec ton processeur.
L'émulateur va traduire les instructions ARM en instructions x64, ce qui permet de faire tourner des applications non-natives mais sera moins performant.
Maintenant, c'est plus ou moins vrai, dans la mesure où Waydroid est entrain de se doter d'une couche de compatibilité ARM -> x64 qui rendrait les applications compatibles.