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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
#1

нубский: что есть ядро приложения? - Программирование Android

20.11.2013, 12:21. Просмотров 553. Ответов 4
Метки нет (Все метки)

В ходе изучения метод. материала по android, а именно после прочтения, что каждый activity живет своей жизнью и может быть стерт из памяти при перемещении на другое activity у меня случился разрыв шаблона)), не могу понять, как правильно составить дизайн архитектуры приложения да и возникло несколько попутных вопросов.
1. допустим перешли на новое активити, и система инициировала удаление старого активити, тогда куда деть его контент(поля объектов, строки и т.п.)? должно же быть какое-то единое место (с вашего позволения сказать, кэш), чтобы при возвращении к старому активити можно было восстановить данные?
2. Где правильно открывать сокеты, файлы и т.п.? из активити или делать посредством сервиса? как вводить/выводить данные из файлов и сокетов? опять с помощью сервиса? или прямо в активити?
3. И как правильно организовать взаимодействие? приложение должно базироватся на сервисе, или где можно без него обойтись - нужно обходится(понимаю,конечно, что зависит от задачи, но если в среднем по больнице)


Вообще, программирую под десктоп и как правило делаю ядро, которое инициирует и запускает все ресурсы (инициализация форм, создание очередей, открытие и работа с сокетами) и при необходимости, модули общаются друг с другом через это самое ядро. Так ли это выглядит на андроиде? Или подход совсем другой?

Вообщем, "Интуитивно я догадываюсь, но хотелось бы уточнить" (с) Уездный Город

Добавлено через 2 часа 17 минут
И еще, правильно ли я понимаю, что Intent - эсть реализация паттерна "Команда"?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 12:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нубский: что есть ядро приложения? (Программирование Android):

Что я делаю не так. Совсем нубский вoпрос. - Программирование Android
Везде в руководствах говорится, что обработчик нажатия кнопки должен переопределять метод onClick. У меня данный код не компилируется. Если...

Есть идея для мобильного приложения, что дальше делать? - Программирование Android
у меня есть идея для мобильного приложения! что мне дальше делать? подскажите!

Какие есть карты для встраивания в приложения - Программирование Android
Какие есть карты для встраивания в Android приложения, кроме Яндекс карт , Google карт и OpenStreetMap ?

Есть концепт приложения, где найти компаньонов-помощников? - Программирование Android
Друзья, есть концепт мобильного приложения (под андроид), мысли оформлены в более-менее законченном виде. Хочется видеть проект...

APP не появляется в экране приложений но есть в Настройки/Приложения - Программирование Android
Пробую на реальном телефоне подписанный, неподписанный, релиз, дебаг, неподписанный дебаг/ релиз все равно не появляется. ...

Что использовать для выхода из приложения? - Программирование Android
Подскажите как правильнее ? Имеется кнопка Exit. По нажатию надо завершить приложение. Использовать метод с "finish(); и...

4
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
20.11.2013, 13:04 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Martovskij, если кратко: ядра приложения нет. Вот нет и всё. Философия самой системы построена на том, что каждый отдельный отдельно взятый Activity является отдельным приложением, которое можно вызывать независимо от других. Единственное, что их связывает - общий объект Application.
1. Здесь важно понимать весь жизненный цикл Activity, объект Bundle, который сохраняется даже есть Activity удалено и хранит необходимые данные, и события onSaveInstanceState() и onRestoreInstanceState(), в которых и происходит сохранение/загрузка данных.
2. Сокеты открываются в отдельных потоках, которые никак не зависят от Activity. С файлами - по ситуации, если записать/считать пару строк, то можно и в Activity, если писать/читать постоянно - лучше сервис, который запускает отдельный поток на каждую итерацию записи.. Главное - не забывайте закрывать файлы (в методах объектов finalize и Activity onDestroy).
3. В среднем по больнице - сервис такой же компонент приложения, как и Activity. И в большинстве своём, приложения не базируются на сервисе (пример исключения - аудио проигрыватель, основную работу делает сервис, через Activity пользователь меняет треки).
4. На андроиде подход иной. Работать может только одно Activity, несколько сервисов, которые могут общаться между собой посредством Broadcast'ов или Intent'ов.
5. Не думаю, что Intent можно считать реализацией паттерна "Команда". Intent'ом вы фактически запускаете новое приложение с установленным набором данных, а не просто вызываете метод некого объекта.
3
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
20.11.2013, 14:15  [ТС] #3
Спасибо. Наступило просветление))
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.11.2013, 00:21 #4
Цитата Сообщение от Wenceslaus Посмотреть сообщение
Intent'ом вы фактически запускаете новое приложение с установленным набором данных, а не просто вызываете метод некого объекта.
ну, для броткаcтов тоже ведь интенты используются.
0
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
26.11.2013, 13:21 #5
V0v1k, да, за них я не подумал. Должен сказать, что сама система Broadcast'ов мне больше напоминает реализацию паттерна "Команда" (но всё равно, в очень широком смысле), чем Intent в плане запуска Activity. Но если так считать, то обязательно стоит упомянуть про его более яркую реализацию: Runnable.
И всё же я останусь при своём мнении: чистой реализации паттерна "Команда" в Андроиде нет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 13:21
Привет! Вот еще темы с ответами:

Получить что-то типа md5() для приложения - Программирование Android
Требуется получить уникальную строку, описывающую само приложение. Т.е. чтобы при каждом изменении кода приложения эта строка изменялась....

Что изучить для написание такого приложения? - Программирование Android
Здравствуй форум! Специалисты помогите с подбором литературы к изучению Андройд приложений. Суть приложения такова квесты только в...

Что нужно знать для написания гибридного приложения? - Программирование
Всем привет! Очень хочу научиться писать гибридные приложения, но не знаю с чего начать. Имеются знания HTML5/CSS3/JS(Библиотеками и...

Что использовать для реализации клиент-серверного приложения? - Программирование Android
Нужно реализовать клиент-серверное приложение. Принцип работы: Клиент отправляет текстовую информацию на сервер. Сервер обрабатывает и...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
26.11.2013, 13:21
Ответ Создать тему
Опции темы

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