Major Опубликовано 17 февраля, 2017 Поделиться Опубликовано 17 февраля, 2017 Как лучше поступать с точки зрения занимаемой памяти и быстродействия приложения: зашивать файлы в ресурсы и извлекать в run-time через TResourceStream или закидывать их в Deployment? Заранее спасибо за ответ. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 17 февраля, 2017 Модераторы Поделиться Опубликовано 17 февраля, 2017 мы в чатике провели небольшое расследование. получилось что ресурсы на мобильных (на андроиде точно) сделаны для совместимости кода, т.к. даже если вы добавите в ресурсы файл, он все равно окажется в деплойменте и доступ будет и через TResourceStream и по пути. тест был такой 1) Новый проект 2) Project - Resources and Images 3) добавляем файл (camera_1x.png) 4) компилируем на андроид устройство 5) проверяем оба варианта procedure TForm1.Button1Click(Sender: TObject); var ResourceStream: TResourceStream; begin ResourceStream := TResourceStream.Create(hInstance, 'camera', RT_RCDATA); try ResourceStream.Position := 0; Image1.Bitmap.LoadFromStream(ResourceStream); finally FreeAndNil(ResourceStream); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Image1.Bitmap.LoadFromFile(TPath.Combine (TPath.GetDocumentsPath, 'camera_1x.png')); end; в deployment'е наш файлик Major и enatechno 2 Цитата Ссылка на комментарий
0 Major Опубликовано 17 февраля, 2017 Автор Поделиться Опубликовано 17 февраля, 2017 а если делать через *.rc файл, потом brcc32 и подключать в коде *.res ? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 17 февраля, 2017 Модераторы Поделиться Опубликовано 17 февраля, 2017 6 минут назад, Major сказал: а если делать через *.rc файл, потом brcc32 и подключать в коде *.res ? без разницы Цитата Ссылка на комментарий
0 Major Опубликовано 17 февраля, 2017 Автор Поделиться Опубликовано 17 февраля, 2017 но ведь ресурсы вшиваются в *.so, а файлы из deployment-а достаются легко после разархивирования apk-файла Цитата Ссылка на комментарий
0 sinuke Опубликовано 17 февраля, 2017 Поделиться Опубликовано 17 февраля, 2017 37 минут назад, Major сказал: но ведь ресурсы вшиваются в *.so, а файлы из deployment-а достаются легко после разархивирования apk-файла не, ресурсы на андройде располагаются там же, где и файлы деплоймента (вернее по пути, что возвращает TPath.GetDocumentsPath) Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 17 февраля, 2017 Модераторы Поделиться Опубликовано 17 февраля, 2017 53 минуты назад, Major сказал: но ведь ресурсы вшиваются в *.so, а файлы из deployment-а достаются легко после разархивирования apk-файла где вы это прочитали? в андроиде нет ресурсов таких как Windows Цитата Ссылка на комментарий
0 Major Опубликовано 16 марта, 2017 Автор Поделиться Опубликовано 16 марта, 2017 В 17.02.2017 в 15:58, Равиль Зарипов (ZuBy) сказал: где вы это прочитали? в андроиде нет ресурсов таких как Windows я вот сейчас еще раз проверил. Всё, что кидалось в Deployment, - в apk-файле находится в папке assets. А то, что подключалось через ресурсы (brcc32), то находится в .so-файле. Delphi 10.1 Berlin. Можете сами проверить Rusland 1 Цитата Ссылка на комментарий
Вопрос
Major
Как лучше поступать с точки зрения занимаемой памяти и быстродействия приложения: зашивать файлы в ресурсы и извлекать в run-time через TResourceStream или закидывать их в Deployment?
Заранее спасибо за ответ.
Ссылка на комментарий
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.