Version: 5.3 (switch to 5.4b)
Возможности, не поддерживаемые в Unity Android
Написание кода для Android

Поддержка разделения приложения (.OBB)

In the Android Publishing Settings you’ll find the option to split the application binary (.apk) into expansion files (.apk + .obb). To find it, go to Edit -> Project Settings -> Player. Then select the Android button, and expand the Publishing Settings section. The setting is a checkbox marked “Split Application Binary”.

The Split Application Binary publish option for Android
The Split Application Binary publish option for Android

Этот механизм необходим только при публикации в магазин Google Play, если приложение больше 50 МБ. См. http://developer.android.com/guide/google/play/expansion-files.html для дополнительной информации о файлах расширения APK (APK Expansion Files).

Когда включена опция Split Application Binary (разбивать приложение), исполняемый файл проигрывателя и данные будут отделены друг от друга, в результате чего сгенерируется .apk (основной исполняемый файл), в котором будет содержаться только исполняемый (Java и нативный) код (около 10 МБ), все без исключения скрипты / плагины и данные для первой сцены. Всё остальное (все дополнительные сцены, ресурсы, поточные ассеты …) будет сериализовано отдельно в файл расширения APK (.obb).

  • При запуске .apk, построенного с включенной опцией Split Application Binary, приложение будет проверять, есть ли у него доступ к .obb файлу из текущего расположения на sd карте. Расположение объяснено в документации по расширению APK (Apk Expansion) от Google.
  • Если не удаётся найти файл расширения (.obb), тогда будет возможен доступ только к первому уровню (т.к. остальные данные находятся в .obb).
  • Первый уровень в приложении требуется, чтобы получить доступ к .obb файлу с sd карты, до того как приложение сможет обрабатывать и загружать последующие сцены/данные.
  • После того как найдётся .obb, Application.dataPath переключится с текущего пути до .apk на новый путь до .obb. В таком случае нет необходимости в скачивании .obb.
  • Содержимое .obb никогда не используется вручную. Всегда относитесь к связке .apk+.obb как к уникальному бандлу, так же как вы относитесь к одному большому .apk.

Опция Split Application Binary – не единственный способ разделения .apk на .apk/.obb (другие способы это сделать включают в себя сторонние плагины, ассет бандлы и т.д.), но это единственный официально поддерживаемый автоматический механизм разделения.

Скачивание файла расширения (.OBB)

  • Файл расширения (.obb) можно (но не обязательно, как минимум в текущей форме) размещать на серверах Google Play.
  • Если файл .obb опубликован в Google Play вместе с .apk, вы должны включить в сборку код для скачивания .obb (для тех устройств, которые этого требуют и для случаев утери .obb).
  • В Asset Store есть подходящий плагин (адаптированный из примеров расширения Apk от Google), который сделает это за вас. Он скачает .obb файл и сохранит его в правильном месте на sd карте. См. http://u3d.as/content/unity-technologies/google-play-obb-downloader/2Qq
  • При использовании плагина из Asset Store, вам необходимо вызвать этот плагин из первой сцены (по описанным выше причинам).
  • Asset Store плагин можно также использовать для скачивания .obb файлов, созданных каким-либо другим способом (одиночный файл данных, zip архив ассет бандлов и т.д.) - трудно сказать как именно был создан .obb.
  • Для проверки скачивателя obb, вы должны залогиниться в android устройстве в правильный акканут google (акканут тестировщика).
Возможности, не поддерживаемые в Unity Android
Написание кода для Android