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

Включение своих файлов в приложение


la_coste

Вопрос

Доброго времени суток, уважаемые форумчане!  :)
У меня такой вопросик: можно ли в установочный пакет для android собираемый в delphi xe5 включать свои файлы???
Заранее спасибо)) :)

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

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

  • 0

Да, можно.

В файл проекта dpk добавляем строку

program YouSoft;
{$R 'resource.res' 'resource.rc'} 

в файле resource.rc создаем такое содержимое:

YouRes RCDATA .\Resources\твой_файл.txt

и далее в программе загружать примерно так:

var
  Stream: TResourceStream;
begin
  Stream:= TResourceStream.Create(hInstance, 'YouRes', RT_RCDATA);
  try
    //Работаем с потоком
  finally
    Stream.Free;
  end; 

Как-то так. Удачи!

Ссылка на комментарий
  • 1
  • Администраторы

Добрый вечер,
 
Тут есть два способа:

1. Deployment Manager
Специальная настройка проекта, которая позволяет указать, какие файлы нужно включить в состав пакета (Андроид) или бандла (iOS). Суть его работы простая, вы указываете какие файлы с вашего компьютера нужно перенести на устройство (в какое место). А далее работаете с ними из приложения так, как при обычной работе с файлами под Windows.

 

На мобильных платформах нужно учесть специфику возможных местоположений файла. Пакет/Бандл (приложение) не допускает изменения внутренних файлов, потому что подписывается сертификатом. Поэтому теоретически при изменении файлов приложения, вы нарушаете целостность подписи. Именно по этому файлы внутри пакета/бандла доступны только на ЧТЕНИЕ.

 

Однако, мобильные платформы предлагают широкий круг специальных мест для хранения (временные папки, песочницы, документы, карточка памяти и тд) изменяемых файлов (например файл локальной базы данных, или настройки в ini файле и тд).

 

Описание всех вариантов местоположений с описанием путей есть в записе TPath (RTL): http://docwiki.embarcadero.com/RADStudio/XE5/en/Standard_RTL_Path_Functions_across_the_Supported_Target_Platforms
post-1-0-89809400-1389644579_thumb.jpg

Общие действия для использования менеджера развертывания такие:
1. Открываем менеджер развертывания: Системное Меню -> Project -> Deployment.
post-1-0-39721500-1389644579.jpg
2. Выбираем в верхнем выпадающем меню платформу и конфигурацию сборки.
post-1-0-35250300-1389644580_thumb.jpg
3. Нажимаем кнопку добавить файл и выбираем нужный файл.
post-1-0-89626800-1389644580_thumb.jpg post-1-0-90916200-1389644582_thumb.jpg
4. Указываем местоположение файла, куда он должен поместиться после развертывания приложения на устройстве. Тут есть особенность, если файл нужен только на чтение, то пути менять не надо. Если возможна ситуация, когда файл может быт изменен, то файл нужно поместить под iOS в Startup\Documents\ (регистр важен)
post-1-0-87742100-1389644583_thumb.jpg
Под Андроид в assets\internal (регистр важен) - для внутреннего доступа из пакета приложения или assets - для внешнего доступа
post-1-0-42605600-1389644583_thumb.jpg
5. Получаем пути к расположению файлов:
Под iOS:

TPath.Combine(TPath.GetDocumentsPath, 'filename')

Под Андроид:

TPath.Combine(TPath.GetDocumentsPath, 'filename')  { Внутренний доступ}
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename')  { Внешний доступ }

Полезные ссылки

  1. Подробное руководство по добавлению файлов для iOShttp://docwiki.embarcadero.com/RADStudio/XE5/en/Creating_an_iOS_App#Loading_and_Deploying_Files
  2. Подробное руководство по добавлению файлов для Androidhttp://docwiki.embarcadero.com/RADStudio/XE5/en/Creating_an_Android_App#Loading_and_Deploying_Files
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...