Как Unity создает Android приложения
Unity использования Градль построить Android приложений, так что полезно понять процесс создания и как Unity взаимодействует с Gradle. Gradle позволяет использовать Настройки Игрока и другие Unity окна, чтобы настроить большинство аспектов окончательной постройки, однако для большего контроля, вы должны перезаписать манифест и шаблон файлы, или экспортировать свой проект и редактировать его в Android Студия.
Процесс сборки
Для создания приложений Android:
- Unity вызывает AndroidProjectFilesModifier.Setup для всех интерфейсов AndroidProjectFilesModifier. Этот обратный вызов можно использовать для настройки предварительных условий для изменения пользовательских файлов проектов Gradle Android. Дополнительные сведения см. в AndroidProjectFilesModifier.Setup.
- Unity собирает ресурсы проекта, библиотеки кода, плагины, шаблоны Gradle и шаблоны манифестов из проекта Unity и использует их для создания действительного проекта Gradle.
- Unity добавляет и обновляет значения в шаблонах Gradle и файлах манифестов на основе параметров Player и параметров сборки проекта Unity.
- Если вы выбрали экспорт проекта, а не сборку, и используете IL2CPP скриптирование backend, Unity места C++ исходные файлы, созданные из вашего C# в проект Gradle. В противном случае, если вы решили построить проект, Unity местах
libil2cpp.soбиблиотеку в проект Gradle. - Unity вызывает OnModifyAndroidProjectFiles для всех интерфейсов AndroidProjectFilesModifier. Этот обратный вызов можно использовать для изменения значений файла проекта Gradle. Дополнительные сведения см. в Изменение файлов проекта Gradle с помощью Android Project Configuration Manager.
Примечание: файлы проекта Gradle Android можно изменять только в пользовательских модулях. - Unity вызывает OnPostGenerateGradleAndroidProject для всех интерфейсов IPostGenerateGradleAndroidProject. Вы можете использовать этот обратный вызов для изменения или перемещения файлов до того, как Gradle создаст приложение.
- Unity запускает Gradle для создания приложения из проекта Gradle. Gradle объединяет манифест библиотеки Unity, манифест запуска Unity и манифесты плагинов в один файл манифеста приложения Android.
Инкрементальный поток сборки
Unity использует Конвейер построения когда он строит проигрыватель для AndroidСм. нижеследующее. Android-специфические поведения конвейера построения:
- Unity постепенно строит/генерирует:
- Файлы Gradle
- файлы манифестов
- Наборы активов
- APK файлы расширения (obbs)
- Несжатые разделы ассетов
- Android символы zip файлы
- Unity постепенно копирует:
- Двоичные файлы игрока
- Ресурсы Gradle
- Последний шаг в процессе процесс построения С этого момента процесс сборки не использует конвейер построения, и Gradle должен отслеживать зависимости.
Если вы реализуете IPostGenerateGradleAndroidProject и измените или переместите любой файл или ресурс Android, используемый конвейером построения, это может привести к проблемам при построении проекта. Если вы хотите изменить только файлы проекта Gradle, рекомендуется использовать Android Project Менеджер конфигурации вместо IPostGenerateGradleAndroidProject. Если вы должны использовать IPostGenerateGradleAndroidProject для вашего сценария использования и вам нужно обойти проблемы конвейера построения, см. Создание чистых сборок.
Примечание: Вы можете использовать Android Project Configuration Manager для изменения файлов проекта Android Gradle только в пользовательских модулях.