Unity как собрать проект под андроид

Содержание
  1. В недрах процесса построения Android сборки
  2. Сжатие текстур.
  3. Google Android Project
  4. Начало разработки под Android
  5. Подготовка среды разработки для Android
  6. Доступ к функциям Android
  7. Привязка C, C++ или Java кода к скриптам
  8. Occlusion Culling (отсечение невидимой геометрии)
  9. Настройка начальной заставки
  10. Решение проблем и сообщения об ошибках
  11. Как Unity для Android отличается от версии для настольных компьютеров
  12. JavaScript со строгой типизацией
  13. ETC — рекомендуемый способ сжатия текстур
  14. Проигрывание видео.
  15. Инструкция по сборке Unity приложения под Android
  16. Как собрать проект Unity для смартфона или планшета
  17. Шаг 1. Выбор платформы
  18. Шаг 2. Проверить и отредактировать (если надо) настройки в в окне Project Settings, в разделе Player:
  19. Шаг 3. Перечислить в окне Build Settings сцены, которые должны попасть в сборку (build) проекта:
  20. Шаг 4. Нажать на кнопку Build в правом нижнем углу окна Build Settings, указать папку и имя собираемого файла в формате .apk и нажать на кнопку Сохранить (Save):
  21. Профилируем Unity проект с Android Studio
  22. Требования
  23. Настройка Unity проекта
  24. Настройки в Build Settings
  25. Настройки в Player Settings
  26. Подготовка Gradle проекта
  27. libil2cpp.so
  28. libunity.so
  29. Профилирование
  30. Известные особенности
  31. Unity специфика

В недрах процесса построения Android сборки

Сборка Android-приложения происходит в два этапа:

  1. Генерируется дистрибутив приложения (.apk-файл) со всеми необходимыми библиотеками и сериализованными ассетами.
  2. Пакет приложения разворачивается на текущем устройстве.

Кнопка “Build” в окне “Build settings” запускает лишь первый этап. Кнопка “Build and Run” выполняет оба этапа.

При первой сборке Android-проекта Unity попросит вас указать путь до Android SDK, требуемого для сборки и установки вашего Android приложения на устройство. Вы можете поменять его позже в Preferences .

При сборке приложения под Android убедитесь, что в настройках устройства включены “USB Debugging” и “Allow mock locations”.

Run the adb devices command found in your Android SDK/platform-tools folder, so that the operating system can see your device. This should work both for Mac and Windows.

Unity соберёт дистрибутив приложения (.apk-файл) и установит его на ваше подключенное устройство. Иногда ваше приложение не сможет запуститься само как на iPhone, и вам нужно будет разблокировать экран; в редких случаях вам придётся запустить только что установленное приложение из меню.

Сжатие текстур.

В Build Settings вы также найдёте опцию Texture Compression . По умолчанию, Unity использует ETC1/RGBA16 формат для текстур, которые не имеют индивидуальных переопределений (см. 2D текстуры / переопределения для платформ).

Если вы желаете собрать архив приложения (.apk файл), нацеленного на определённую архитектуру оборудования, вы можете использовать опцию Texture Compression для переопределения поведения по умолчанию. Все несжатые текстуры (с отключенным сжатием в настройках импортера) останутся без изменений; только текстуры со сжатым форматом будут использовать выбранный в Texture Compression формат.

Чтобы убедиться, что приложение разворачивается только на устройствах, поддерживающих выбранное сжатие текстур, Unity включит в AndroidManifest тэги, соответствующие выбранному формату. Это позволит механизму фильтрации Android Market’а предоставлять приложение только тем устройствам, у которых имеется соответствующее графическое оборудование.

Google Android Project

Generates a project which can be opened by Android Studio. Simply follow the steps:

  • Download Android Studio.
  • Export the project from Unity with Google Android project checkbox selected.
  • Open Android Studio:
    • File->Import Project. For ex., if you project was exported to C:\MyProjects, pick C:\MyProjects

    Источник

    Начало разработки под Android

    Разработка игр для устройств с Android OS требует подхода, схожего с разработкой под iOS. С другой стороны, аппаратное обеспечение Android-устройств не подчиняется чётким стандартам, что заставляет решать вопросы, которые отсутствуют при работе с iOS. Также присутствуют различия между версиями Unity для Android и iOS.

    Подготовка среды разработки для Android

    Прежде чем вы сможете протестировать свои игры на устройстве, вам нужно будет подготовить среду разработки. В частности — скачать и установить Android SDK нужной платформы и добавить ваше устройство в систему (этот процесс отличается для Windows и Mac). Об этом подробно написано на сайте Android-разработчиков, а также дополнительную информацию может предоставлять производитель вашего устройства. Так как это достаточно сложный процесс, мы приготовили небольшую инструкцию которая поможет вам подготовить всё необходимое для разработки. Если вам понадобится больше информации, вы сможете получить её на портале Android-разработчиков.

    Доступ к функциям Android

    Unity предоставляет API для доступа к средствам ввода и настройкам Android. Доступные классы задокументированы на странице Написание кода для Android сборок.

    Привязка C, C++ или Java кода к скриптам

    Unity позволяет вызывать функции, написанные на C/C++, непосредственно из скриптов (Java-функции могут быть вызваны непрямым способом). Чтобы узнать как из Unity получать доступ к функциям из нативного кода, посетите страницу о сборке плагинов для Android.

    Occlusion Culling (отсечение невидимой геометрии)

    Unity предоставляет поддержку occlusion culling, что очень полезно при оптимизации для мобильных платформ. Больше информации можно найти на странице Occlusion culling.

    Настройка начальной заставки

    Заставка, отображаемая при запуске игры, может быть настроена — см. эту страницу для дополнительной информации.

    Решение проблем и сообщения об ошибках

    Существует множество причин, из-за которых ваше приложение вылетает или не работает должным образом. Наше руководство по решению специфических для Android проблем поможет вам разобраться с причинами ошибок в кратчайшие сроки. Если после прочтения руководства вы предполагаете, что проблема именно в Unity — вам следует составить сообщение об ошибке. Обратитесь к этой странице за инструкциями.

    Как Unity для Android отличается от версии для настольных компьютеров

    JavaScript со строгой типизацией

    Для улучшения производительности в Android-версии Unity динамическая типизация в JavaScript всегда отключена (как если бы к каждому скрипту автоматически применялась #pragma strict). Это важно помнить, если вы переносите на Android проект со старших платформ, и если вы столкнётесь с ошибками компиляции — проблему стоит искать в первую очередь в типизации. С такими ошибками обычно легко справиться, убедившись что типы всех переменных явно указаны или приведёны при инициализации.

    ETC — рекомендуемый способ сжатия текстур

    Хоть Unity Android и поддерживает DXT/PVRTC/ATC текстуры, Unity распакует текстуры в формат RGB(A) при выполнении, если эти методы сжатия на поддерживаются на конкретном устройстве. Это может серьёзно повлиять на производительность GPU отрисовки, потому рекомендуется использовать формат ETC. Он является фактическим стандартом для Android, и должен поддерживаться всеми современными устройствами. С другой стороны, ETC не поддерживает альфа-канал, и иногда 16-битные RGBA текстуры будут лучшим выбором по критериям качества, размера и скорости рендеринга там, где нужен альфа-канал.

    Также возможно создать несколько дистрибутивов игры (apk-файлов) с разными форматами текстур, чтобы Android Market сам предоставлял для каждого устройства наиболее подходящий из дистрибутивов. За подробностями обратитесь к этой странице.

    Проигрывание видео.

    Видео текстуры (MovieTexture) не поддерживаются на Android, но программно доступно полноэкранное поточное проигрывание. Для дополнительной информации о поддерживаемых форматах файлов и API скриптинга, ознакомьтесь со страницой класса MovieTexture или со страницей поддерживаемых на Android форматах медиа.

    Источник

    Инструкция по сборке Unity приложения под Android

    Инструкция по сборке Unity приложения под Android

    Эта инструкция написана в ответ на пост:

    Надо скачать JDK и Android SDK.

    • Здесь скачиваем JDK
    • Здесь скачиваем Android SDK (в самом низу страницы «SDK tools package» — без Android Studio)

    Так же на эти страницы можно перейти если из Unity выбрать в меню: «Edit» -> «Preferences» -> «External Tools» -> там увидите кнопки «Download» (см. рисунок)

    Я когда настраивал заглядывал в документацию: Настройка Android SDK

    Для меня там важно было только это:

    Ещё заглядывал в какую-то видео-инструкцию на английском на youtube. Может вам это не нужно будет — я здесь попробую подробно описать

    Далее, в Unity надо указать пути, выбрать в меню: «Edit» -> «Preferences» -> «External Tools» (там же можно указать VS как среду разработки) (см. рисунок)

    У меня стоят пути:
    D:\Program Files (x86)\Android\android-sdk
    C:\Program Files\Java\jdk1.8.0_66

    После указания путей можете собрать первое приложение. Сначала сохраните сцену (Ctrl+S) Потом выберите в меню «File» -> «Build Settings»

    См.рисунок:
    1) В поле «Scenes In Build» нужно перетащить мышкой сохранённую сцену из панели «Project»
    2) Выберите платформу Android
    3) Нажмите «Switch Platform»
    4) Нажмите кнопку Build -> укажите путь для сборки. После сборки у вас появится apk-файл

    Для тестирования можете поставить эмулятор: Xamarin Android Player и/или BlueStacks

    Источник

    Как собрать проект Unity для смартфона или планшета

    Опишем процесс сборки проекта под платформу Android, которая поддерживается большинством смартфонов.

    Для начала сборки необходимо открыть окно Build Settings из пункта меню File -> Build Settings… (или нажать комбинацию клавиш Ctrl + Shift + B):

    Окно Build Settings

    Шаг 1. Выбор платформы

    В окне Build Settings выбрать платформу Android и нажать на кнопку Switch Platform:

    Выбор платформы Android

    Шаг 2. Проверить и отредактировать (если надо) настройки в в окне Project Settings, в разделе Player:

    1) заполнить поля:

    Company Name (писать по-английски и лучше без знаков препинания и пробелов),

    Product Name (аналогично – по-английски и без специальных символов и пробелов),

    Version (можно оставить значение по умолчанию, но если приложение собирается повторно, то значение надо менять на большее; тогда при установке новой версии приложения на смартфон существующее приложение обновится. Если это число оставить прежним, потребуется сначала удалить установленное ранее приложение).

    2) задать изображение для иконки приложения, добавив его в Default Icon.

    3) если необходимо, в разделе Resolution and Presentation можно зафиксировать ориентацию приложения: горизонтальное (Landscape) или вертикальное (Portrait):

    Ориентация приложения

    4) в разделе Other Settings проверить правильность сформированного идентификатора в поле Package Name:

    com.Company.ProductName – здесь правильно должны быть записаны компоненты Company и ProductName. При их записи должны быть использованы ТОЛЬКО буквы латинского алфавита, БЕЗ специальных символов и пробелов.
    Примечание: в Unity 2019 эти компоненты заполняются автоматически после заполнения полей Company Name и Product Name в самом начале окна Project Settings, в разделе Player (см. п.1).

    Например, итоговая строка com.Company.ProductName может получить следующий вид:

    Это минимальный набор настроек, которые стоит отредактировать. После этого окно Project Settings можно закрыть.

    Шаг 3. Перечислить в окне Build Settings сцены, которые должны попасть в сборку (build) проекта:

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

    Дополнительные сцены можно перетащить мышью из нужной папки окна Project.

    Если в окне Scenes in Build указана не та сцена, её можно выделить мышью и удалить, нажав на клавишу Delete на клавиатуре компьютера.

    Шаг 4. Нажать на кнопку Build в правом нижнем углу окна Build Settings, указать папку и имя собираемого файла в формате .apk и нажать на кнопку Сохранить (Save):

    Собранный файл .apk переписать на смартфон, открыть его на смартфоне и установить приложение. После этого можно начать тестировать свою мобильную игру или приложение на смартфоне.

    Источник

    Профилируем Unity проект с Android Studio

    Требования

    Для полноценного профилирования приложения вам потребуется телефон с Android 8 или новее (API 27). По опыту, профилирование с Android-ами более старых версий несёт больше приключений, чем пользы. По этой причине я рекомендую обзавестись полной линейкой Nexus устройств, так как они имеют старое железо и последние обновления Android-а.

    Настройка Unity проекта

    Для получения результата, вам придётся настроить Unity проект определённым образом.

    Настройки в Build Settings

    • В первую очередь, вы должны переключить Build System в “Gradle” и поставить галочку напротив “Export Project”. Таким образом мы получим готовый Android Studio проект, который мы и будем в дальнейшем профилировать. Профилирование готового APK тоже возможна, но более ограничена и требует больше подготовки
    • Режим “Development Build” желательно выключить, так как таким образом получаемые тайминги в профайлере будут максимально близки к реальным

    Настройки в Player Settings

    • Установите Scripting Backend в IL2CPP. Если оставить Mono, то при нативном профилировании мы увидим много функций Mono, без информации как они соотносятся с C# кодом.
    • Опция ‘C++ Compiler Configuration’ для Android ни на что не влияет (в Unity 2018.3). Можете поставить её в ‘Release’, возможно в будущих версиях Unity Android toolchain эта настройка будет влиять на настройки компилятора.
    • Желательно ограничить ‘Target Architecture’ до ARMv7. Так вы сэкономите на времени компиляции и по опыту множество архитектур иногда вводит Android Studio в ступор.
    • Также стоит установить ряд дополнительных настроек:
      • Install Location — ‘Prefer external’
      • Internet Access — ‘Require’
      • Write Permission — ‘External (SDCard)’

      Android Studio и другие профайлеры используют simpleperf для сбора статистики, и ему потребуется доступ к карте памяти для записи временных файлов.

    Подготовка Gradle проекта

    После того, как вы установили все настройки, соберите Unity проект. Вы должны получить папку с Gradle проектом.

    Unity по умолчанию собирает проект из расчёта, что вы планируете собирать из него финальный APK. Потому вся отладочная информацию из него удалена, но к счастью её можно вернуть. Для этого вам нужно подменить libil2cpp.so и libunity.so на версии с отладочной информацией.

    libil2cpp.so

    libunity.so

    Это файл, который содержит low-level часть Unity Player. Так как мы делаем Release сборку, то Unity положила вам в проект файл без отладочной информации. Вам нужно подменить libunity.so на файл с символами.

    • Пойдите в папку, где у вас установлена Unity
    • Перейдите в папку «\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Development\Libs\armeabi-v7a\»
    • Возьмите от туда файл libunity.so, и замените файл в вашем проекте, который лежит в папке ‘\src\main\jniLibs\armeabi-v7a’

    Профилирование

    Теперь вы можете начать профилировать в Android Studio, достаточно нажать кнопку запуска профайлера.

    Android Studio запустит приложение и начнётся сессия профилирования

    По умолчанию, Android Studio показывается графики, но не производит сэмплирование данных. Для запуска процесса, вам нужно кликнуть на треке CPU, чтобы профайлер переключится на вид CPU. При этом сверху окна появится дропдаун и кнопка ‘Record’.

    Выберите Sampled ‘Native’ (В Android Studio 3.3 — C/C++ Native), и нажмите кнопку ‘Record’.
    Так как запись производится на диск устройства, по опыту лучше не записывать более 5-8 секунд, многие устройства будут фейлится и на меньшем кол-ве данных (список проверенных устройств смотрите в конце статьи).

    Для получения результата нажмите ‘Stop’ и потом красный квадрат, чтобы прервать сессию. Сложно понять задумку авторов, но если вы не остановите запись полностью, то профайлер не всегда начинает анализ полученных данных и ваш отрезок с данным уедет в далёкие дали.

    После этого остаётся только немного подождать, через 30-50 секунд профайлер выдаст вам результат. Если всё настроено верно, вы получите capture со всем именами функций

    Известные особенности

    Unity специфика

    • Главный поток Unity называется UnityMain, но вы можете увидеть множество UnityMain при профилировании. Это пользовательские потоки, которые вы создаете внутри C# кода. По умолчанию они получают такое же имя. Главный поток Unity обычно легко отличить, так как он будет самый нагруженный.
    • Графический поток называется UnityGfxWorkerW
    • Потоки Unity Job системы называются Worker Thread
    • К сожалению некоторые wait-функции, которые применяет Unity (futex-ы), Android Studio показывает и считает не как wait-time, а как активность.
    • Когда вы будете смотреть call graph в Top Down view, вам придётся пройти через множество уровней Java-вызовом, к сожалению отфильтровать в Android Studio это никак нельзя.

    Источник

    Читайте также:  Виртуальная машина айфон для андроид
Оцените статью