Das Ende der ARMv7-Ära oder ein bisschen über das Portieren von Spielen

Eintrag


Vor ein paar Wochen hatte ich das Problem, dass die Spielarchitektur des Prozessors im Telefon nicht unterstützt wird. Natürlich wusste ich, dass ARMv7 überholt sein würde, aber ich hatte nicht erwartet, dass dies so schnell passieren würde. Die Downgrade-Anwendung enthielt nicht viele Informationen im Netzwerk, daher musste ich ein wenig improvisieren und mich an die Zeiten erinnern, als die Unterstützung für ARMv6 weg war. In diesem Artikel konzentrieren wir uns daher auf die Portierung von Anwendungen von der ARMv8-Architektur nach ARMv7, basierend auf meinen Erfahrungen.
Das Thema des Portierens von Android-Spielen von einer Architektur auf eine andere ist sehr neu. Anfangs bin ich 2015 darauf gestoßen, es ging nur um die Portierung auf ARMv6. Seitdem hat sich das Übertragungsprinzip nicht geändert, und jeder kann das Spiel von einer Architektur auf eine andere übertragen, wenn er über die erforderlichen Bibliotheken verfügt.

Parsing apk


Was ist .apk ? Die APK-Datei ist ein leicht modifiziertes ZIP-Archiv, das Spielressourcen und eine Spiel-Engine enthält. Es sieht ungefähr so ​​aus:

Bild

Der Ordner lib ist ein wichtiger Punkt bei der Migration zwischen Architekturen. Es enthält Bibliotheken unserer Spiel-Engine.
* armeabi - armv6 library (nicht relevant)
* armeabi-v7a - armv7-Bibliothek (in Abwesenheit eines Ordners - es gibt auch keine Architekturunterstützung)
* arm64-v8a - armv8 x64-Bibliotheken

Übertragen


Schritt # 1


Zunächst müssen wir herausfinden, ob es möglich ist, das Spiel zu portieren. Dazu müssen Sie die Game-Engine ermitteln. Beispielsweise gehört die Datei lib / libunity.so zur Unity Engine, und aufgrund des vorhandenen Ordners assets / x-renpy können Sie davon ausgehen, dass das Spiel auf der RenPy Engine entwickelt wurde. Wenn das Spiel keine eigene Engine hat, fahren Sie mit Schritt 2 fort.

Schritt 2


Also haben wir die Game Engine definiert. Jetzt müssen wir einen geeigneten Spender finden. Wenn dieses Spiel zuvor von Ihrem Gerät unterstützt wurde und nach dem Update nicht mehr verfügbar war, können Sie versuchen, die Ressourcen früherer Versionen zu öffnen. Wenn diese Option nicht passt, können Sie nach Spielen suchen, die auf derselben Engine basieren. Manchmal unterstützen Entwickler armv7 einfach nicht, sodass die Möglichkeit besteht, die erforderlichen Komponenten zu finden.

Schritt 3


Wir haben einen geeigneten Spender gefunden. Jetzt müssen wir den Ordner lib / armeabi-v7a zu unserer (name) .apk hinzufügen . Füge hinzu und sieh folgendes:

Bild

Wie ich bereits sagte, handelt es sich bei der APK-Datei zu Beginn um ein leicht modifiziertes ZIP-Archiv , das nach Änderung des Inhalts zu einer regulären ZIP- Datei wird .

Schritt 4


Damit Ihr Gerät die APK-Datei (Name) installieren kann, müssen Sie sie „signieren“. Hierfür gibt es verschiedene Dienstprogramme, zum Beispiel apk-signer .

Installieren Sie das Dienstprogramm auf Ihrem Gerät, öffnen Sie es, gehen Sie zum Abschnitt Signieren, klicken Sie auf den Stift unten und wählen Sie unsere (Name) .apk. Danach werden Sie vom Programm aufgefordert, den Speicherort für die „signierte Datei“ auszuwählen. Wir wählen und warten. ??? GEWINN !!!

Bild

Schritt # 5


Seien Sie eine freundliche Person, stellen Sie Ihren Port für die öffentliche Nutzung zum Beispiel in das Thema des Spiels auf derselben w3bsit3-dns.com. ;-)

Einige Bibliotheken


Einheit 3. * für ARMv6: yadi.sk/d/XGHn309ORuPgeg

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

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


All Articles