android — Большой внешний файл двоичных ресурсов Qt

Я хочу использовать файл внешних ресурсов Qt в качестве файла расширения для моего приложения для Android. Общий размер ресурса, который должен быть объединен в файле ресурса, составляет более 700 МБ. Я обнаружил, что компилятор ресурсов (rcc) не может обрабатывать более 500 МБ, пока он не завис и не завис на моем компьютере. Я бы очень хотел сделать большой файл, так как это значительно облегчает загрузку файлов расширения для Android.

Я запускаю инструмент rcc из командной строки со следующими аргументами:

rcc -binary -no-compression myQrcFile.qrc -o myOutputFile

Мне не нужно использовать сжатие, чтобы иметь возможность воспроизводить видеофайлы, напрямую связанные с файлом ресурсов, но здесь это не проблема.

У меня два вопроса, но первый является основным:

  1. Есть ли способ связать файлы с общим размером файла более 500 МБ в один файл?
  2. Ли размер внешний Qt файл ресурсов влияет на производительность приложения? Большой файл = медленная загрузка или подобное?

1

Решение

Для создания данных меньшего ресурса, вы можете попробовать изменить сжатие (s, -компресс)

Для более быстрой загрузки, кажется, есть две возможности для встраивания ресурсов в Qt.

Если вы явно не укажете создание ресурсов-данных как внешней библиотеки, данные ресурсов будут встроены в исполняемый файл и будут загружены при запуске приложения (имеет смысл для значков приложений, шрифтов и т. Д.)

Если вы компилируете данные с опцией -binary

rcc -binary myresource.qrc -o myresource.rcc

вы будете встраивать данные в динамическую библиотеку, которую вы можете загрузить позже, чем запуск приложения с помощью вызова

QResource::registerResource("/path/to/myresource.rcc");

Вот аналогичный вопрос о SO, который, однако, ориентирован на динамическую загрузку ресурсов, а не на размер: Как я могу встроить ресурс Qt в файл .dll?

Эти ссылки должны быть полезны:

0

Другие решения

Я использовал MinGW, который является 32-битным компилятором. Я перешел на 64-битный компилятор MSVC и смог создавать большие файлы внешних ресурсов.

0

По вопросам рекламы [email protected]