Форум программистов, компьютерный форум CyberForum.ru

Сохранение состояния приложения с целью экономии времени при последующих запусках - Android

Восстановить пароль Регистрация
 
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
11.06.2015, 13:33     Сохранение состояния приложения с целью экономии времени при последующих запусках #1
Всем привет. Появился небольшой вопрос. Допустим я запустил какое-то приложение, оно загрузилось и я его настроил. Весь процесс запуска и моих действий, ну скажем, занимает 10 минут. И каждый раз когда мне нужно использовать это приложение, я опять запускаю и настраиваю это приложение - все по новой, одно и то же. Так вот, а можно ли сохранить состояние уже настроенного приложения с целью экономии времени при дальнейших запусках?

P.S. Когда я выхожу из приложения путем нажатия кнопки "назад", состояние сохраняется (приложение появляется в recent apps) и я могу быстро вернуться к его использованию. Вот может этот момент и можно как либо использовать? Если андроид сохраняет состояние в RAM, может есть возможность скопировать его оттуда, а потом опять загрузить при надобности?

Может кто знает куда копать, очень прошу подсказать.

Буду очень благодарен за любую помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2015, 13:33     Сохранение состояния приложения с целью экономии времени при последующих запусках
Посмотрите здесь:

Сохранение состояния деятельности динамически созданных объектов Android
Android Конусультация в написании приложения(работа с базой, сложение и сохранение результата)
Android Сохранение текущего времени
Сохранение состояния при ротации Android
Android Сохранение состояния активности
Сохранение состояния Checkbox в Listview Android
Android Ускорение сборки приложения и времени отправки на эмулятор/устройство
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androidlover
3 / 3 / 0
Регистрация: 20.04.2015
Сообщений: 9
11.06.2015, 13:40     Сохранение состояния приложения с целью экономии времени при последующих запусках #2
все зависит от того, что вы подразумевате под состоянием приложения, но думаю, что скорее всего вам надо смотреть в сторону SharedPreferences
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
11.06.2015, 14:19  [ТС]     Сохранение состояния приложения с целью экономии времени при последующих запусках #3
androidlover, посмотрел, но думаю sharedpreferences не подойдет, т.к. там не только настройка приложения, там еще много чего. Если быть точным, то на андроиде я запускаю эмулятор с xp, в xp запускаю приложение, потом провожу некоторые действия с приложением и только потом все готово к работе. Хотелось бы просто сохранить состояние эмулятора с запущенным и настроенным приложением. Может есть еще другие варианты? Можно ли как нибудь скопировать приложение из RAM в файл, а потом загрузить его обратно для повторного использования? Тем не менее, спасибо за ответ.
vxg
Модератор
 Аватар для vxg
2718 / 1729 / 170
Регистрация: 13.01.2012
Сообщений: 6,478
11.06.2015, 17:01     Сохранение состояния приложения с целью экономии времени при последующих запусках #4
Цитата Сообщение от dimcoder Посмотреть сообщение
Хотелось бы просто сохранить состояние эмулятора с запущенным и настроенным приложением
свернуть его кнопкой Home и молиться что бы система не выгрузила.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
11.06.2015, 18:07  [ТС]     Сохранение состояния приложения с целью экономии времени при последующих запусках #5
vxg, таки не выгружает, ну а что делать после перезагрузки девайса? Вот я думаю, система то не выгрузила приложение, вот может здесь и стоит попробовать как то скопировать прогу и файлы из RAM. Проблема наверное будет с динамическо-выделенное памятью, то бишь указатели будут невалидны, даже если получиться загрузить файлы обратно в RAM. Однако если загрузить обратно по тем же адресам, то проблем не вижу.

Вот как я примерно представляю как можно решить задачу:
1) Зарезервировать у андроида кусок RAM исключительно для эмулятора (что бы даже при выключенном эмуляторе андрюха ничего туда не загружал). Ну или иметь какую-то оболочку, которая будет отвечать за правильность переадресации (но это уже более трудоёмкий вариант).
2) Запустить эмулятор в зарезервированном куске памяти и все настроить как надо.
3) Скопировать этот кусок RAM на SD карту.
4) При надобности, когда прогу нужно будет запустить, загрузить файл из SD карты в зарезервированный кусок RAM. Ну и как то дать знать об этом андроиду, конечно же.

Будет ли работать? И если да, то как это провернуть, товарищи?

P.S. Я тут подумал, а тема то может оказаться очень полезной в принципе для любой проги, работающей на эмуляторе, т.к. ждать эмулятора не охота никому.
vxg
Модератор
 Аватар для vxg
2718 / 1729 / 170
Регистрация: 13.01.2012
Сообщений: 6,478
11.06.2015, 22:46     Сохранение состояния приложения с целью экономии времени при последующих запусках #6
Цитата Сообщение от dimcoder Посмотреть сообщение
таки не выгружает
подключите USB - как правило в момент особой активности MTP всех остальных система просит покурить.
Цитата Сообщение от dimcoder Посмотреть сообщение
как можно решить задачу
эту задачу должен решать эмулятор - почему у него нет функции "пауза"? эмулятор может естественным образом корректно сохранить и восстановить свои данные. а сохранение образа памяти с эмулятором это звучит как то невероятно
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
12.06.2015, 08:23     Сохранение состояния приложения с целью экономии времени при последующих запусках #7
А разве нельзя по простому?
http://developer.android.com/guide/t...a-storage.html
пусть при запуске приложения лезет в sqllite базу и достает оттуда параметры. а устанавливаются они в пункте настройки.
или, если не хочется связываться с бд, записывать все данные в xml. аналогично при запуске mainactivity считывать и устанавливать все эти данные.
vxg
Модератор
 Аватар для vxg
2718 / 1729 / 170
Регистрация: 13.01.2012
Сообщений: 6,478
15.06.2015, 10:10     Сохранение состояния приложения с целью экономии времени при последующих запусках #8
Цитата Сообщение от no0ker Посмотреть сообщение
А разве нельзя по простому?
проблема ТС не в том что он хочет "экзотически" сохранить данные приложения, а в том что он хочет сохранить уже готовый образ памяти что бы потом быстрее стартовать
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
15.06.2015, 12:45     Сохранение состояния приложения с целью экономии времени при последующих запусках #9
а если совсем по простому. virtualbox - android86. настроил программу - сохранил состояние машины. выключил виртуалку. при включении - программа будет уже настроена.
vxg
Модератор
 Аватар для vxg
2718 / 1729 / 170
Регистрация: 13.01.2012
Сообщений: 6,478
15.06.2015, 14:33     Сохранение состояния приложения с целью экономии времени при последующих запусках #10
Цитата Сообщение от no0ker Посмотреть сообщение
virtualbox
эта штука работает на android? я имею ввиду ее можно запустить на телефоне?
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
15.06.2015, 16:47     Сохранение состояния приложения с целью экономии времени при последующих запусках #11
не, эта штука на android не работает. а зачем ее запускать на телефоне? но если уж извращаться - установить virtualbox на домашнем пк. поставить туда android 86. с телефона подключаться по rdp. запускать виртуалку. и там запускать это приложение =))
vxg
Модератор
 Аватар для vxg
2718 / 1729 / 170
Регистрация: 13.01.2012
Сообщений: 6,478
16.06.2015, 09:10     Сохранение состояния приложения с целью экономии времени при последующих запусках #12
Цитата Сообщение от no0ker Посмотреть сообщение
установить virtualbox на домашнем пк. поставить туда android 86. с телефона подключаться по rdp. запускать виртуалку. и там запускать это приложение =))
хм... забавно. интересно что скажет ТС
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
16.06.2015, 23:27  [ТС]     Сохранение состояния приложения с целью экономии времени при последующих запусках #13
vxg, no0ker, спасибо за ответы!

Цитата Сообщение от vxg Посмотреть сообщение
подключите USB - как правило в момент особой активности MTP всех остальных система просит покурить.
А зачем подключать сматрфон к компу? Да и при "сворачивании" эмулятора, андроид его не выгружает - можно быстро восстановить все обратно, то есть проблемы с этим я не вижу. Или я Вас не так понял?

Цитата Сообщение от vxg Посмотреть сообщение
проблема ТС не в том что он хочет "экзотически" сохранить данные приложения, а в том что он хочет сохранить уже готовый образ памяти что бы потом быстрее стартовать
+1

Цитата Сообщение от no0ker Посмотреть сообщение
установить virtualbox на домашнем пк. поставить туда android 86. с телефона подключаться по rdp. запускать виртуалку. и там запускать это приложение =))
Да вы, батенька, эстет Кому-то это может и подойти, но в моем случае я как раз пытаюсь программу которая идет только на Windows запустить на андроиде.

Цитата Сообщение от vxg Посмотреть сообщение
а сохранение образа памяти с эмулятором это звучит как то невероятно
А было бы круто. Я думаю область применения нашлась бы программе которая могла бы это делать. А что нереализуемо в представленных шагах?

Цитата Сообщение от vxg Посмотреть сообщение
эту задачу должен решать эмулятор - почему у него нет функции "пауза"?
Это мысль. Думаю я так и сделаю. Но и тут не без загвоздки. Поставил три эмулятора: Qemu, Bochs и Limbo PC Emulator. Вот как дела у меня идут с каждым из них.

Qemu
Даже XP не получается пока запустить. На счет паузы, вроде save/restore поддерживается, но тоже не без плясок с бубном.

Limbo PC Emulator
Винду запустил. Функционал save/restore доступен сразу. Но, к сожалению, когда запускаю винду и нажимаю сохранить состояние системы, то процесс сохранение не завершается и бегунок просто бежит без остановки ("Please, wait. Saving VM state.") - минут 20 ждал пока сохранит, но нет. Может кто нибудь знает причину? Вот список параметров которые я выставляю в этом эмуляторе:
Кликните здесь для просмотра всего текста
Используется MicroXP by Anatomica ~392MB (образ скачан с популярного форума по ПДА)
User interface: SDL
CPU Model: pentium 3
CPU Cores: 1
RAM: 128
Hard disk B: 1000MB (этот пункт просит заполнить сам эмулятор для сохранения образа машины. Сколько сюда выставить я не знаю.)
VGA: cirrus
Почему не может сохранить я не знаю, может ему где то места не хватает?


Bochs
Получилось запустить XP. Теперь не понимаю как сделать save/restore (сохранить/восстановить). Вроде функционал поддерживается:
http://bochs.sourceforge.net/doc/doc...e-restore.html
Но никакой верхней панели (header bar) я не вижу. Видимо на андроид ее не перенесли. Как быть? Что делать?
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
17.06.2015, 15:28     Сохранение состояния приложения с целью экономии времени при последующих запусках #14
я как раз пытаюсь программу которая идет только на Windows запустить на андроиде.
ну так еще проще! ставишь программу на компьютер с windows - подключаешься по rdp с андроида. вуаля! =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2015, 15:58     Сохранение состояния приложения с целью экономии времени при последующих запусках
Еще ссылки по теме:

Как переопределить диалоговое окно с целью кастомизации? Android
Сохранение данных при пересоздании активити Android
Android Сохранение состояния списка
Android Как вызвать метод только при последующих запусках приложения?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
18.06.2015, 15:58  [ТС]     Сохранение состояния приложения с целью экономии времени при последующих запусках #15
no0ker, хорошая попытка, Билл... но нет, это будет слишком неудобно, да и интернет штука непостоянная.
Пока вожусь с эмуляторами
Yandex
Объявления
18.06.2015, 15:58     Сохранение состояния приложения с целью экономии времени при последующих запусках
Ответ Создать тему
Опции темы

Текущее время: 19:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru