Конец Эпохи Armv7 Или Немного О Портировании Игр



Введение Пару недель назад столкнулся с проблемой, что игра не поддерживает архитектуру моего процессора в телефоне.

Я, конечно, знал, что ARMv7 устареет, но не ожидал, что это произойдет так быстро.

Информации о понижении версии приложения в сети было не так много, поэтому пришлось немного импровизировать, вспоминая времена, когда пропала поддержка ARMv6. Итак, в этой статье мы поговорим о миграции приложений с архитектуры ARMv8 на ARMv7, исходя из моего опыта.

Тема портирования Android-игр с одной архитектуры на другую не очень нова.

Изначально я столкнулся с этим еще в 2015 году, только речь шла о портировании на ARMv6. С тех пор принцип переноса не изменился, и перенести игру с одной архитектуры на другую может любой желающий, если у него есть необходимые библиотеки.



Разбор apk

Так что же такое .

apk ? APK-файл представляет собой слегка модифицированный ZIP-архив, содержащий игровые ресурсы и игровой движок.

Это выглядит примерно так:

Конец эпохи ARMv7 или немного о портировании игр

Папка библиотека — ключевой момент при переносе между архитектурами.

Он содержит библиотеки нашего игрового движка.

* Armeabi — библиотеки Armv6 (не имеет значения) * Armeabi-v7a — библиотеки Armv7 (если папки нет, то нет поддержки архитектуры) * Arm64-v8a — библиотеки Armv8 x64.

Передача



Шаг 1

Прежде всего нам нужно выяснить, можно ли портировать игру.

Для этого вам необходимо определиться с движком игры.

Например, файл библиотека/libunity.so - принадлежит Unity Engine, и по наличию папки активы/x-renpy Вы можете догадаться, что игра разработана на RenPy Engine. Если у игры нет своего движка, то переходим ко второму шагу.



Шаг 2

Итак, мы определились с игровым движком.

Теперь нам нужно найти подходящего донора.

Если эта игра ранее поддерживалась вашим устройством, но после обновления перестала поддерживаться, то вы можете попробовать открыть ресурсы предыдущих версий.

Если этот вариант вас не устраивает, то можете поискать игры на этом же движке.

Иногда разработчики просто не добавляют поддержку Armv7, поэтому есть шанс найти нужные вам компоненты.



Шаг 3

Мы нашли подходящий донор, теперь нам нужно добавить папку lib/armeabi-v7a на наш (имя).

apk. Добавляем и видим следующее:

Конец эпохи ARMv7 или немного о портировании игр

В самом начале, как я уже говорил, APK-файл представляет собой слегка модифицированный ZIP-архив, а после изменения его содержимого становится обычным ZIP.

Шаг №4

Чтобы ваше устройство могло установить ваш файл (имя).

apk, его необходимо «подписать».

Для этого есть несколько разных утилит, например apk-подписчик .

Установите утилиту на свое устройство, откройте ее, перейдите в раздел Подписание, нажмите на карандашик внизу и выберите наш (имя).

apk. После чего программа предложит вам выбрать, куда сохранить «подписанный файл».

Выбираем и ждем.

??? ВЫГОДА!!!

Конец эпохи ARMv7 или немного о портировании игр



Шаг №5

Будьте добрый человек, выложите свой порт для публичного использования, например, в теме игры на том же 4PDA. ;-)

Некоторые библиотеки

Unity 3.* для ARMv6: yadi.sk/d/XGHn309ORuPgeg
РенПи ARMv7: yadi.sk/d/_U-hnz8D-J7D-Q
Теги: #Разработка игр #Разработка для Android #unity #обратное проектирование #armv7 #ren'py #armv6 #Порт Android
Вместе с данным постом часто просматривают: