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

Реестр в Андроиде и Delphi


Major

Вопрос

Господа, а есть ли в Андроиде нечто подобное реестру в Windows?

Нужно записать некоторые данные в систему, которые не должны теряться при удалении программы.

И как работать с этим, используя Delphi? Заранее спасибо.

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

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

  • 0

В Unix нет реестра, там все на файлах.  Android, MacOS и iOS - это Unix. 

В Android есть 2 варианта для сохранения данных, которые не будут удалены после деинсталяции - сохранять на SD карту, и сохранять удаленно в свою базу (через интернет). 

http://stackoverflow.com/questions/19683614/android-persist-data-after-uninstall

Хотя можно попробовать записать что-то и во внутреннее хранилище, в папки Music, Ringtones итп  почитайте здесь статью Saving files that can be shared with other apps

 

 

Изменено пользователем ENRGY
Ссылка на комментарий
  • 1

ENRGY,

а как вам такой способ (не мой)?
 

uses
  Androidapi.Helpers,
  Androidapi.JNI.App,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.GraphicsContentViewText;

var
  SP: JSharedPreferences;
  SPE: JSharedPreferences_Editor;

procedure TMain.FormShow(Sender: TObject);
begin
  SP := TAndroidHelper.Activity.getSharedPreferences(StringToJString('ZTApp'), 0);
  IP.Text := JStringToString(SP.getString(StringToJString('IP'), StringToJString('127.0.0.1')));
end;

procedure TMain.SaveClick(Sender: TObject);
begin
  SPE := SP.edit;
  SPE.putString(StringToJString('IP'), StringToJString(IP.Text));
  SPE.commit;
end;

 

Ссылка на комментарий
  • 0
3 часа назад, krapotkin сказал:

я просто в SharedDocuments пишу. Это не очень хорошо, но полезно

если каждый туда будет писать, представляю, какой бардак там может образоваться))

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

а на CheckBoxEx верно?): .. не работает // .. ааа, нашел:

 *   https://github.com/freeonterminate/delphi/ - FMX INI file Delphi-master

procedure TFormMain.LogPassSave;
var
   RegIniFile: TXplatIniFile;
begin
 RegIniFile:= CreateIniFile('AndroidSoftware');
 RegIniFile.WriteBool('CheckBoxVbrEx','CheckBoxVbrExt', CheckBoxVbr.isChecked);
 RegIniFile.WriteInteger('TrackBarEx','TrackBarExt', Trunc(TrackBar1.Value));
 RegIniFile.Free;
end;

procedure TFormMain.LogPassLoad;
var
   RegIniFile: TXplatIniFile;
begin
 RegIniFile:= CreateIniFile('AndroidSoftware');
 CheckBoxVbr.isChecked := RegIniFile.ReadBool('CheckBoxVbrEx','CheckBoxVbrExt', True);
 TrackBar1.Value :=  RegIniFile.ReadInteger('TrackBarEx','TrackBarExt', Trunc(TrackBar1.Value));
end;

 

Изменено пользователем beegl
replace CODE
Ссылка на комментарий
  • 0

это немного вчерашний день

лучше 

создавайте в приложении класс настроек и считывайте/записывайте  его одной строкой

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

krapotkin

На мой взгляд формат ini наиболее удобный - Секция > Имя=значение.

1. Не нашел как делить настройки на секции - в этом основное преимущество ini. 

2. Парсинг json требует больше времени чем ini. Если настроек много, то это будет в несколько раз медленнее варианта ini. Например в моем проекте кроме основных настроек, есть еще группы, профайлы, и кампании.

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

К примеру : 

[Group1]

Key=Value

[Profile2]

Key=Value

[Campaign1]

Groups=Group1, Group2

Profiles=Profile1, Profile2 

[Campaign2]

[Campaign3]

 

Изменено пользователем ENRGY
Ссылка на комментарий
  • 0

проблемы со временем это несерьезно. ДАЖЕ если это так, то 50 мсек один раз за запуск всегда найдется.

Но в JSON например есть массивы, и вложенные объекты, чего нет в ini

и все-таки самое главное - это возможность совсем не писать код если настройки изменяются-добавляются

но решать, конечно, вам

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

проблемы со временем это несерьезно.

"Приложения становятся медленнее быстрее, чем железо становится быстрее". (с) вроде как Никлаус Вирт...

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

Здравствуйте.

Получается что apk-архив можно распаковать в компе, и залить папку в Android-девайс, навроде portable в винде?

Изменено пользователем mirumir
Ссылка на комментарий
  • 0
В 27.11.2018 в 11:04, mirumir сказал:

Здравствуйте.

Получается что apk-архив можно распаковать в компе, и залить папку в Android-девайс, навроде portable в винде?

Получается, что да)
Однако, здравствуйте!

?

Ссылка на комментарий
  • 0
  • Модераторы
В 27.11.2018 в 16:04, mirumir сказал:

Здравствуйте.

Получается что apk-архив можно распаковать в компе, и залить папку в Android-девайс, навроде portable в винде?

Не будет работать конечно, куда ещё больше портабл, если пакет андроид приложения это один файл

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

 

В 05.12.2018 в 20:42, Равиль Зарипов (ZuBy) сказал:

Не будет работать конечно, куда ещё больше портабл, если пакет андроид приложения это один файл

Спасибо за ответы. Сорян за нубасские вопросы.

Тут ещё подумать надо как сформулировать :wacko:

Получается файлы из архива apk не просто распаковываются, а как то прописываются в android устройстве?

apk (это один файл архив который можно открыть к примеру winrar winzip в компе)

Порядок установки apk приложений:

залить apk в смартфон, "открыть" в смартфоне.

но это архив для распаковки, после распаковки apk можно удалить, софт установлен. Тогда:

файл с каким расширением является исполняемым для запуска приложения android?

 

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

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

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

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

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

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

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

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

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

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

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