La fin de l'ère ARMv7 ou un peu sur le portage de jeux

Entrée


Il y a quelques semaines, j'ai été confronté au problème du manque de prise en charge de l'architecture du jeu du processeur dans le téléphone. Bien sûr, je savais que ARMv7 deviendrait obsolète, mais je ne m'attendais pas à ce que cela se produise si rapidement. Il n'y avait pas beaucoup d'informations sur le réseau sur l'application de rétrogradation, j'ai donc dû improviser un peu, rappelant l'époque où la prise en charge d'ARMv6 avait disparu. Ainsi, dans cet article, nous nous concentrerons sur le portage des applications de l'architecture ARMv8 vers ARMv7, en fonction de mon expérience.
Le thème du portage de jeux Android d'une architecture à une autre est très nouveau. Au départ, je suis tombé sur cela en 2015, seulement il s'agissait de porter sur ARMv6. Depuis lors, le principe du transfert n'a pas changé, et n'importe qui peut transférer le jeu d'une architecture à une autre s'il dispose des bibliothèques nécessaires.

Analyser apk


Alors, qu'est-ce que .apk ? Le fichier APK est une archive ZIP légèrement modifiée qui contient des ressources de jeu et un moteur de jeu. Cela ressemble à ceci:

image

Le dossier lib est un point clé lors de la migration entre architectures. Il contient des bibliothèques de notre moteur de jeu.
* armeabi - bibliothèque armv6 (sans objet)
* armeabi-v7a - bibliothèque armv7 (en l'absence de dossier - il n'y a pas non plus de support d'architecture)
* arm64-v8a - bibliothèques armv8 x64

Transfert


Étape # 1


Tout d'abord, nous devons savoir s'il est possible de porter le jeu. Pour ce faire, vous devez déterminer le moteur de jeu. Par exemple, le fichier lib / libunity.so appartient à Unity Engine, et par la présence du dossier assets / x-renpy, vous pouvez deviner que le jeu est développé sur RenPy Engine. Si le jeu n'a pas son propre moteur, passez à l'étape deux.

Étape # 2


Nous avons donc défini le moteur de jeu. Nous devons maintenant trouver un donneur approprié. Si ce jeu était précédemment pris en charge par votre appareil, et après la mise à jour, il s'est arrêté, vous pouvez essayer d'ouvrir les ressources des versions précédentes. Si cette option ne vous convient pas, vous pouvez rechercher des jeux basés sur le même moteur. Parfois, les développeurs n'ajoutent tout simplement pas la prise en charge d'armv7, il est donc possible de trouver les composants nécessaires.

Étape # 3


Nous avons trouvé un donneur approprié, nous devons maintenant ajouter le dossier lib / armeabi-v7a à notre (nom) .apk . Ajoutez et voyez ce qui suit:

image

Au tout début, comme je l'ai dit, le fichier APK est une archive ZIP légèrement modifiée , et après avoir changé son contenu, il devient un ZIP normal.

Étape # 4


Pour que votre appareil puisse installer votre fichier (nom) .apk, vous devez le «signer». Il existe plusieurs utilitaires différents pour cela, par exemple apk-signer .

Installez l'utilitaire sur votre appareil, ouvrez-le, allez dans la section Signature, cliquez sur le crayon ci-dessous et sélectionnez notre (nom) .apk. Après quoi, le programme vous demandera de choisir où enregistrer le «fichier signé». Nous choisissons et attendons. ??? PROFIT !!!

image

Étape # 5


Soyez une personne gentille, mettez votre port à la disposition du public, par exemple, dans le sujet du jeu sur le même w3bsit3-dns.com. ;-)

Quelques bibliothèques


Unity 3. * pour ARMv6: yadi.sk/d/XGHn309ORuPgeg

RenPy ARMv7: yadi.sk/d/_U-hnz8D-J7D-Q

Source: https://habr.com/ru/post/fr482282/


All Articles