Similar presentations:
андроид
1.
Приложения AndroidСкоромникова Юлия, Окунев Александр
МО03
2.
Темы, которые раскрывает презентация1.
Основы архитектуры и структуры Android-приложений.
2.
Компоненты Android-приложения, такие как активности (activities), службы (services), получатели
(receivers) и поставщики контента (content providers).
3.
ВведениеAndroid предоставляет модель приложений, имеющую существенные отличия от обычной среды
командной строки в оболочке Linux или даже от приложений, запускаемых из графического интерфейса
пользователя. Приложение не является исполняемым файлом с основной точкой входа, оно
представляет собой контейнер для всего, из чего складывается приложение: его кода, графических
ресурсов, объявлений о том, чем оно является для системы, и других данных.
4.
По соглашению приложение Android является файлом с расширением apk, что означает AndroidPackage (пакет Android). Это обычный zip-архив, в котором содержится все, касающееся приложения. В
apk-файле имеется следующее важное содержимое:
1. Манифест, дающий описание того, чем является приложение, что оно делает и как его запустить.
Манифест должен предоставить пакетное имя для приложения, строку, оформленную в Java-стиле
(например, com.android.app.calculator), которая идентифицирует его уникальным образом.
2. Ресурсы, необходимые приложению, включая строки, которые оно показывает пользователю, XMLданные для компоновки и другие описания, графические побитовые изображения и т. д.
3. Сам код, который может быть байт-кодом Dalvik, а также собственного библиотечного кода.
4. Информация о подписи, надежно идентифицирующей автора.
5.
Компоненты приложенияУ Android-приложений нет простой основной точки входа в приложение, с которой начинается
выполнение кода при запуске приложения. Вместо этого они публикуют под тегом манифеста ряд точек
входа, описывая при этом различные действия, на которые способно приложение. Эти точки входа
выражаются в виде четырех различных типов, определяя основные типы поведения, предоставляемые
приложением: активность (activity), получатель (receiver), служба (service) и поставщик контента (content
provider). Представленный пример показывает несколько активностей и одно объявление из числа
других типов компонентов, но пр иложение может декларировать ноль и больше любых из этих типов
компонентов.
6.
Диспетчер пакетовДиспетчер пакетов (package manager) — часть системы Android, следящая за всеми пакетами
приложений. Он анализирует каждый манифест приложения, собирает и индексирует найденную в нем
информацию. Затем, используя эту информацию, предоставляет клиентам удобную возможность
запроса данных о текущих установленных приложениях и извлечения важной информации о них. Он
также отвечает за установленные приложения (создание пространства под хранилище приложения и
обеспечение целостности apk-файла), а также за все необходимое для их удаления (очистку всего
связанного с ранее установленным приложением).
Если диспетчер пакетов отвечает за обслуживание статической информации обо всех установленных
приложениях, то диспетчер активностей определяет, когда, где и как эти приложения должны
запускаться. Несмотря на его название, он фактически отвечает за работу всех четырех компонентов
приложения и реализует соответствующее поведение для каждого из них.
7.
АктивностьАктивность (activity) является частью приложения, взаимодействующей непосредственно с
пользователем через пользовательский интерфейс. Когда пользователь запускает приложение на своем
устройстве, в приложении в качестве основной точки 10.8. Android 901 входа должна быть определена
активность. Приложение выполняет код в своей активности, отвечающей за взаимодействие с
пользователем.
8.
СлужбаСлужба (service) имеет две отличительные особенности:
1. Она должна быть самодостаточной фоновой операцией, запускаемой на продолжительный срок.
Широко распространенными примерами использования служб таким способом являются фоновое
проигрывание музыки, поддержка активного сетевого подключения (например, с помощью IRCсервера) в то время, когда пользователь работает с другими приложениями, загружает или
выгружает данные в фоновом режиме, и т. д.
2. 2. Она может работать как точка связи для других приложений или систем, целью которой является
выполнение сложных видов взаимодействия с приложением. Это может быть использовано
приложениями для предоставления безопасных API-функций другим приложениям: например,
предоставления обработки изображений или аудиоданных, текста для его озвучивания и т. д.
9.
ПолучательПолучатель (receiver) принимает случающиеся события (как правило, внешние) обычно в фоновом
режиме и вне обычного взаимодействия с пользователем. Концептуально получатели — это то же
самое, что и приложение, явным образом зарегистрированное для обратного вызова при наступлении
какого-нибудь интересного события (выдан сигнал тревоги, произошло изменение в передаче данных и
т. д.), от которого не требуется, чтобы оно обязательно оставалось в работающем состоянии для приема
события.
Получатели работают только как разовые операции. Когда происходит событие, система находит всех
заинтересованных в нем получателей и доставляет им событие, а они после потребления события
завершают свою работу. Здесь нет записи ReceiverRecord, подобной той, что мы видели для других
компонентов приложения, поскольку отдельно взятый получатель является всего лишь переходным
объектом на время действия отдельной рассылки. При каждой отправке получателю новой рассылки
создается новый экземпляр класса этого получателя.
10.
Поставщики контентаПоследним нашим компонентом приложения будет поставщик контента (content provider), который
является основным механизмом, используемым приложением для обмена данными с другими
приложениями. Все взаимодействия с поставщиком контента осуществляются через унифицированные
индикаторы ресурса (URI), с использованием формата content: схема. Полномочия URI используются для
поиска правильной реализации поставщика контента, с которым требуется наладить взаимодействие.
11.
Вопросы для аудитории1. Какую роль выполняет манифест в структуре Android-приложения, и почему он важен?
2. Чем отличаются службы (services) от активностей (activities) в Android, и в каких случаях лучше
использовать службы?
3. Как диспетчер пакетов управляет установкой и удалением приложений на устройстве?