Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 19
На сайте нет зарегистрированных пользователей

Пользователей: 13,361
новичок: uehuat
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Файл записей с выводом обратного заголовка на Turbo Pascal
База данных - рабочее место кассира на Delphi + бд Access
Программа тестирования (тест) - вступительные экзамены (математика, физи...

Жизненный цикл процессов
Android может решить завершить процесс в случае нехватки памяти или если память востребована другими, более важными процессами. Прикладные компоненты, выполняющиеся в этих процессах, будут уничтожены. Процесс будет перезапущен для компонентов в случае их повторного вызова.
При выборе процесса для уничтожения Android оценивает относительную важность этого процесса с точки зрения пользователя, т. е. "видимый пользователю компонент данного процесса, например деятельность на переднем плане, считается более важным компонентом, чем служба, выполняющаяся в другом процессе. Также система в первую очередь завершит процесс с деятельностями, которые больше не видны на экране, а не процесс с видимыми деятельностями. Поэтому решение о завершении процесса зависит от состояния компонентов, выполняющихся в данном процессе.
Приоритет и статус процессов
Порядок, в котором процессы уничтожаются для освобождения ресурсов, определяется приоритетом. Система Android пытается поддерживать процесс приложения максимально долго, но, в конечном счете, будет вынуждена удалить старые процессы, если заканчивается свободная память. Чтобы определить, какой процесс сохранить или уничтожить, Android создает иерархию важности процессов, основанную на компонентах, выполняющихся в процессах и состоянии этих компонентов (рис. 4.1).
}

Критический приоритет
Высокий приоритет
Низкий приоритет



Рис. 4.1. Приоритет и статус процессов
Процессы с самой низкой важностью уничтожаются первыми. Есть пять уровней в иерархии важности. Следующий список представляет их в порядке убывания важности.
□ Активный процесс (Foreground Process) — тот, который требуется для того, что пользователь в настоящее время делает. Процесс считается активным, если выполняется любое из следующих условий:
• процесс выполняет деятельность, с которой взаимодействует пользователь;
• процесс выполняет службу, которая связана с деятельностью, с которой взаимодействует пользователь;

• процесс имеет объект service, и выполняется один из методов обратного вызова, определенных в этом объекте;
• процесс имеет объект BroadcastReceiver, и выполняется его метод обратного вызова для приема намерения.
Одновременно могут существовать только несколько приоритетных процессов. Они будут уничтожены только в крайнем случае — если памяти настолько мало, что они все вместе не в состоянии продолжать работу.
□ Видимый процесс (Visible Process) — тот, который не имеет никаких приоритетных компонентов. Компонент из этого процесса еще может вызываться пользователем. Процесс, как полагают, является видимым, если выполняется любое из следующих условий:
• это процесс деятельности, которая не находится в фокусе, но все еще видна пользователю. Это может произойти, например, при вызове диалога, который не занимает весь экран, а деятельность потеряла фокус, но видна пользователю и находится позади диалога;
• это служба, которая в данный момент связана с деятельностью, находящейся на переднем плане (или частично закрытой другой деятельностью).
□ Видимый процесс считаются важным и не будет уничтожен, пока остаются процессы с более низким приоритетом.
□ Сервисный процесс (Service Process)— процесс, в котором выполняется служба и который не относится ни к одной из двух предыдущих категорий. Хотя сервисные процессы обычно не привязаны к интерфейсу, видимому пользователем, они выполняют задания, нужные пользователю, например фоновая работа медиаплеера или загрузка данных из сети, так что система сохраняет их при наличии свободной памяти наряду со всеми активными и видимыми процессами.
□ Фоновый процесс (Background Process)— процесс в котором выполняется деятельность, которую в настоящее время не видима пользователем. Эти процессы не имеют никакого прямого воздействия на пользовательский ввод и могут быть уничтожены в любое время, чтобы востребовать память для активного, видимого или сервисного процесса. Обычно имеется много фоновых процессов, они сохраняются в списке LRU (least recently used, "не использующиеся дольше всех"), чтобы гарантировать, что находящийся в конце этого списка процесс, в котором выполняется деятельность, был бы уничтожен в последнюю очередь.
□ Пустой процесс (Empty Process) — не содержит никаких активных компонентов приложения. Единственная причина сохранять такой процесс —
только как кэш, чтобы уменьшить время запуска при вызове компонента. Система уничтожает эти процессы в первую очередь.
Если в одном процессе выполняются несколько компонентов, Android определяет приоритет процесса по компоненту с самым высоким приоритетом. Например, если в процессе выполняется служба и видимая деятельность, процесс будет ранжирован как видимый, а не сервисный процесс.
Если от некоторого процесса зависят другие процессы, его ранг также может быть увеличен. Процесс, который обслуживает другой процесс, никогда не может иметь приоритет ниже, чем процесс, который он обслуживает. Например, если контент-провайдер в процессе А обслуживает клиента в процессе В или если служба в процессе А связана с компонентом в процессе В, то процесс А получит приоритет не меньше, чем приоритет процесса В. ЕСли вам задали заданию по http://mysapr.com, тогда зайдите сюда и посмотрите уроки и чертежи.
Поскольку сервисный процесс имеет ранг выше, чем фоновая деятельность, для выполнения фоновых процессов, требующих длительное время для завершения (например, передачи данных по сети), но которые должны гарантированно завершиться, часто запускают отдельную службу вместо того, чтобы просто породить поток в деятельности. Это важно в случае, если операция передачи данных по сети будет продолжаться больше времени, чем окно деятельности, 4из которой эта операция была запущена, будет оставаться в видимом процессе (будет видима на экране мобильного устройства). По этой же причине приемники широковещательных намерений должны использовать службы, а не просто помещать отнимающие много времени операции в поток.
Опубликовал Kest November 06 2012 15:43:50 · 0 Комментариев · 4962 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Черный круг двига...
Borland C++Builde...
SearchAndReplace
Запрет гостям ск...
AntiRus
С/C++ Программиро...
Ics
Работа с матрицами
ComboBox97
Text effect
Delphi 2006 - Спр...
Быстрое создание ...
Matrix2D
BSButton
SysInfo [Исходник...
RxLIB
Abc_component
EditButton
PDJ Scrollers
Цветной Grid

Топ загрузок
Приложение Клие... 100772
Delphi 7 Enterp... 97809
Converter AMR<-... 20260
GPSS World Stud... 17014
Borland C++Buil... 14189
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5972
Visual Studio 2... 5206
Microsoft SQL S... 3661
Случайные статьи
Концепцию какого м...
Вывести все 3х зна...
Клонирование устро...
Экспертные системы...
Invalid floating-p...
Минимальное произв...
ПРИЛОЖЕНИЕ Е. МИК...
Логическая задача ...
Уровень свопинга
Раскрутка сайта в ...
Официальный сайт Ф...
Пакет: бесплатный ...
ИЗМЕНЕНИЕ МАРШРУТО...
Поиск минимума фун...
Black SEO
Определите тип инф...
Что такое пиксели ...
Учебник Паскаль
Магистрали Gigabit...
Бинарный поиск и п...
Бюджеты и инфографика
Снова IUnknown
компьютеров:: если...
Сайты для обмена и...
Оценка точности оп...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?