Перейти к содержанию
Fire Monkey от А до Я
  • 0

Что лучше: зашивать в ресурсы или Deployment? (Android)


Major

Вопрос

Как лучше поступать с точки зрения занимаемой памяти и быстродействия приложения: зашивать файлы в ресурсы и извлекать в run-time через TResourceStream или закидывать их в Deployment?

Заранее спасибо за ответ.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

мы в чатике провели небольшое расследование.

получилось что ресурсы на мобильных (на андроиде точно) сделаны для совместимости кода, т.к. даже если вы добавите в ресурсы файл, он все равно окажется в деплойменте

и доступ будет и через TResourceStream и по пути.

тест был такой

1) Новый проект

2) Project - Resources and Images

3) добавляем файл (camera_1x.png) camera_1x.png

2017-02-17_16-28-23.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'е наш файлик

2017-02-17_16-29-13.png

Ссылка на комментарий
  • 0
  • Модераторы
6 минут назад, Major сказал:

а если делать через *.rc файл, потом brcc32 и подключать в коде *.res ?

без разницы

Ссылка на комментарий
  • 0
37 минут назад, Major сказал:

но ведь ресурсы вшиваются в *.so, а файлы из deployment-а достаются легко после разархивирования apk-файла

не, ресурсы на андройде располагаются там же, где и файлы деплоймента (вернее по пути, что возвращает TPath.GetDocumentsPath)

Ссылка на комментарий
  • 0
  • Модераторы
53 минуты назад, Major сказал:

но ведь ресурсы вшиваются в *.so, а файлы из deployment-а достаются легко после разархивирования apk-файла

где вы это прочитали?

в андроиде нет ресурсов таких как Windows

Ссылка на комментарий
  • 0
В 17.02.2017 в 15:58, Равиль Зарипов (ZuBy) сказал:

где вы это прочитали?

в андроиде нет ресурсов таких как Windows

я вот сейчас еще раз проверил. Всё, что кидалось в Deployment,  - в apk-файле находится в папке assets. А то, что подключалось через ресурсы (brcc32), то находится в .so-файле.

Delphi 10.1 Berlin.

Можете сами проверить

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...