Платформа Meta Horizon поддерживает два типа файлов объектов для мобильных приложений, чтобы уменьшить размер скачиваемого APK.
Файлы расширения OBB — мобильные приложения могут иметь один файл расширения в формате opaque binary blob (OBB) размером до 4 ГБ. Этот файл автоматически скачивается во время установки.
Обязательные файлы объектов — мобильные приложения могут предоставлять несколько общих файлов объектов практически в любом формате, в том числе OBB. Вы помечаете их как обязательные объекты, чтобы они скачивались во время установки.
Эти файлы загружаются в Meta Horizon Store, когда вы загружаете свой APK. Подробные характеристики этих двух типов см. в следующих разделах.
Файл расширения OBB
Расширение OBB автоматически скачивается и устанавливается, когда пользователь устанавливает приложение.
Один файл расширения OBB:
может иметь размер до 4 ГБ;
во время загрузки вы можете дать ему любое имя, затем он будет переименован в следующем формате: main.[package-name].[version-code].obb;
по имени файла файловая система файлов объектов определяет, нужно ли обновлять файл расширения OBB на гарнитуре пользователя.
Несколько файлов OBB:
Если у вас несколько файлов OBB, вы можете загрузить дополнительные OBB в качестве обязательных файлов объектов с помощью файла конфигурации объектов.
Файл устанавливается на устройство пользователя в папку /sdcard/Android/obb/[package-name]. Вы можете найти его в этом месте установки.
Обязательные файлы объектов
Обязательные файлы объектов скачиваются во время установки приложения.
Обязательные файлы объектов:
Могут иметь любой формат и любое расширение (в том числе OBB).
Могут иметь размер до 4 ГБ (рекомендуется не более 2 ГБ).
Требуют наличия файла конфигурации в процессе загрузки приложения, который отмечает элемент как обязательный.
Должны иметь одинаковое имя файла во всех версиях сборки. Использование одинакового имени файла во всех версиях сборки позволяет быстрее обновлять пакеты исправлений. В последующих версиях сборок будут скачиваться только изменения в файлах объектов с одинаковыми именами.
Обязательные файлы объектов не переименовываются системой и устанавливаются на устройство в папку /sdcard/Android/obb/[package-name].
Требования к манифесту приложения
Чтобы уменьшить размер скачиваемого APK с помощью файлов объектов, убедитесь, что для вашего приложения указано, что оно требует подключения к Интернету. Так пользователи смогут скачивать обязательные файлы с Meta. Войдите на панель разработчика. Выберите Распространение > Отправка приложений. Выберите свое приложение в диалоге и следуйте пути, указанному на странице отправки приложений: Draft (Черновик) > App Metadata (Метаданные приложения) > Specs (Спецификации) > Internet Connection (Подключение к Интернету). Выберите Internet connection required for downloadable content (Для скачиваемого контента требуется подключение к Интернету).
Убедитесь, что в файле манифеста Android имеется разрешение READ_EXTERNAL_STORAGE, поскольку файлы объектов обычно хранятся на внешних носителях. В следующем примере показана соответствующая запись манифеста.
Для загрузки приложений Quest используйте команду upload-quest-build. Чтобы добавить файлы расширения, используйте один из следующих параметров.
Для OBB-файла расширения укажите путь к файлу OBB в параметре --obb
Для обязательных файлов объектов и скачиваемого контента укажите каталог, содержащий объекты для загрузки, в параметр --assets_dir.
Для скачиваемого контента, который также доступен для покупки, или для обязательных объектов укажите путь к файлу конфигурации в параметре --asset_files_config.
Important
При загрузке новых APK с сопутствующими объектами убедитесь, что файлы объектов и расширений имеют те же имена, что и ранее загруженные версии этих файлов.
Пример для мобильного приложения, содержащего obb-файл и обязательные объекты:
ovr-platform-util upload-quest-build
-a 12345 // Specifies the app ID for the app you want to upload the build to
-s 1234 // Specifies the app secret for the app you want to upload the build to.
-d path/to/mygame.zip // Specifies the path to the APK file for the Quest build.
--obb path/to/myGame.obb // Specifies the path to the OBB file for the Quest build.
--assets_dir /path/to/myGame/assets // Specifies the directory containing additional asset files for the Quest build.
--asset_files_config /path/to-config-file.json // Specifies the path to a JSON configuration file that lists the required asset files and their metadata.
-c ALPHA // Specifies the release channel for the build (in this case, "ALPHA").
Файл конфигурации объектов
Если у вас несколько файлов OBB, загрузите дополнительные OBB в качестве обязательных файлов объектов с помощью файла конфигурации объектов. В параметре --asset-files-config указывается JSON-файл, определяющий обязательные объекты.
Пример для устройства Link PC-VR:
{
"asset1.ext": {
"required": true
}
}
Для устройств Meta Quest
Чтобы различать объекты для разных устройств Quest, укажите, какие файлы объектов следует добавить, в поле supportedDevices.
В области навигации слева выберите Распространение и нажмите Отправка приложений.
На странице Отправка приложений в столбце Сборка нажмите гиперссылку отправки, которую нужно просмотреть.
Откройте вкладку Файлы расширений.
На ней есть разделы Файл OBB и Файлы объектов (скачиваемый контент). Значение Да в колонке Обязательный указывает на то, что файл скачивается во время установки приложения.
На рисунке ниже показан пример вкладки.
Чтобы отредактировать или скачать файл, нажмите кнопку с тремя токами рядом с колонкой Обязательный.
Новые файлы необходимо загружать с помощью утилиты командной строки, описанной в статье Загрузка файлов расширения.
Интеграция поддержки файла расширения в код приложения
Вы должны получать доступ к файлу OBB в коде запуска приложения. Файл находится в каталоге OBB вашего устройства, который можно получить с помощью функции Android Context.GetObbDir.
При локальном тестировании файлы, которые требуются во время установки приложения, необходимо вручную поместить в каталог OBB после установки основного APK. Для этого можно использовать инструмент Android Debug Bridge (ADB). Пример:
Удаление ранее установленного файла:
adb uninstall com.oculus.demo // Uninstalls the app
adb shell rm /sdcard/Android/obb/main.1.com.oculus.demo.obb // Removes the previously installed expansion file for the app with specified location.
Установка файла APK:
adb push -p bundles.apk /data/local/tmp // Pushes the APK file to the device's temporary storage directory.
adb shell pm install -g /data/local/tmp/bundles.apk // Installs the APK file on the device, granting all runtime permissions requested by the app.
adb shell rm /data/local/tmp/bundles.apk // Removes the APK file from the device's temporary storage directory after installation.
Отправка нового файла расширения:
adb push -p main.1.com.oculus.demo.obb /sdcard/Android/obb/ // pushes the new expansion file to the device's OBB directory
Для устройств Link PC-VR
Вы можете предоставить файлы объектов для своих приложений Link PC-VR, чтобы уменьшить размер скачиваемого пакета приложений.
Общие файлы объектов, которые могут быть контентом, скачиваемым во время выполнения, или обязательными объектами, скачиваемыми во время установки.
Обязательные объекты скачиваются во время установки приложения.
Необходимые объекты:
Может иметь любой формат и любое расширение (в том числе языковые пакеты).
Могут иметь размер до 4 ГБ (рекомендуется не более 2 ГБ).
Требуют наличия файла конфигурации в процессе загрузки приложения, который отмечает элемент как обязательный.
Загрузка двоичного файла объектов в магазин Meta Horizon
Чтобы загрузить двоичный файл объектов или языковых пакетов, вы должны использовать утилиту командной строки платформы Meta Horizon и команду upload-rift-build. Чтобы загрузить файлы объектов, используйте один из следующих параметров.
Important
При загрузке новых приложений с файлами объектов убедитесь, что файлы объектов имеют те же имена, что и ранее загруженные версии этих файлов.
Для обязательных файлов укажите каталог с загружаемыми объектами в параметре --assets_dir, а в параметре --asset_files_config укажите путь к JSON-файлу конфигурации, в котором определяются обязательные элементы.
JSON-файл конфигурации содержит записи, позволяющие связать скачиваемый контент с ранее определенными элементами ПВП или идентифицировать элемент по мере необходимости. Обратите внимание: SKU должны соответствовать тем SKU, которые вы определили на панели в предыдущем разделе.