logo search
rus

6 Общий обзор Android

Операционная система Android прошла долгий путь со своего анонса на Open Handset Alliance в конце 2007 года. Идея операционной системы с открытым исходным кодом для встроенных систем была не нова, но Google агрессивно поддерживала операционную систему, что определённо помогло протолкнуть её в центр деятельности за последнии несколько лет.

Множество беспроводных носителей во множестве стран, через различные протоколы соединения, имели один или более доступных (для подключения) телефонов с системой Android. Другие встроенные устройства, такие как планшеты, нэтбуки, телевизоры, абонентские установки, и даже автомобили, также имеют адаптированную Android OS.

Эта глава описывает различные главные аспекты использования системы Android для разработчика. Она предоставляет основу для создания Android приложений и контекст для рецептов в конце этой книги.

6.1 Эволюция Android

Google, наблюдая за сильным ростом Интернета в использовании и поиске в мобильных устройствах, приобрели Android, Inc., и в 2005 сфокусировали разработку на платформе мобильных устройств. Apple представила iPhone в 2007 с некоторыми иновационными идеями, включающими технологию мультитач и открытый магазин для приложений. Android был быстро адаптирован к включению этих функций и предложил дополнительные (определённые) предложения, такие как больший контроль для разработчиков и многозадачность. В дополнении, Android объединили корпоративные требования, такие как поддежка обмена, удалённое стирание, и поддержка Виртуальную Частную сети, пошли вслед за корпоративным рынком, что привело к разработке технологии Research In Motion и провела также хорошо с моделями Blackberry.

Разнообразие устройств и быстрая адаптация помогла Android нарастить основу пользователей, а это было потенциальным вызовом для разработчиков. Приложения нуждались в обеспечении многократного размера экрана, отношения разрешения, клавиатур, аппаратных сенсоров, версий операционной системы, беспроводных норм данных и системной конфигурации. Каждое из них могло привести к различному и непредсказуемому поведению, но тестирование приложений через всесреды это невозможная задача.

Поэтому система Android была встроена для обеспечения, как постоянная, на разных платформах, где это только возможно. По абстракции различий аппаратного обеспечения, Android OS пыталась изолировать приложения от специфических модификаций устройств при этом обеспечивая гибкость настройки данных аспектов по мере необходимости. Перспективность приложений по вводу новых аппаратных платформ, а также обновлений операционной системы. Это работает в основном до тех пор пока разработчик хорошо знает этот систематический подход. Общий Интерфейс Программирования приложений, которые предлагает Android и как обеспечить совместимость устройства и операционной системы это основный темы обсуждающиеся в этой книге.

Однако, с любой встроенной платформой, требуется обширное тестирование приложений. Google обеспечивает помощь для сторонних разработчиков во множестве форм таких как Android Development Tool (ADT) дополнение к системе Eclipse (также как самостоятельный инструмент) включающая возможность вежения лога в реальном времени, реалистичный эмулятор, который запускается на машинном ARM коде, и сообщения об ошибках в полевых условиях от пользователей разарботчикам Магазина приложений Android.

6.2 Дихотомия Android

Android имеет интересное деление на части. Знать о них заранее это полезно не только в понимании того, чем является Android, но и того чем он не является.

Android это встроенная OS, которая основана на ядре Linux для ядерных системных сервисов, но это оне встроенный Linux. К примеру, стандартные Linux утилиты такие как X-windows и GNU C libraries не поддерживаются. Для написания приложений для Android используется программная платформа Java, но это не Java. Стандартные Java библиотеки, такая как Swing, не поддерживается. Другие непопулярные библиотеки, такие как Timer; были заменены собственными Android библиотеками, которые оптимизированы для использования с ограниченными ресурсами, встроенных сред.

Операционная система Android имеет открытый исходный код, который означает, что разработчики могут видеть и использовать любые системы с открытым исохдным кодом, включая радио канал. Этот исходный код один из первых ресурсов для рассмотрения примеров Android кода в действии, и он помогает уточнить использование, когда документация отсутствует. Это также означает, что разработчики могут использовать систему таким же образом как любое приложение на ядре и могут выгружать системные компонеты для своих собственных. Однако, устройства Android содержат некоторое проприетарное программное обеспечение, которое недоступно для разработчиков (такое как Global Positioning System (GPS) навигация).

Финальным разделением операционной системы Android, является то, что Google также поддерживает операционную систему Chrome. Операционная система Android разрабатывается для встроенных платформ, а операционная система Chrome разрабатывается для платформ с облачными вычислениями. Однако, какой лучший выбор для встроенных устройств, которые живут в облаках? Нэтбуки, которые заполняют просвет между смартфонами и ноутбуками, приедположительно могут привести к такому повороту событий (и они ведут). Android больше начал использовать облако. Значит ли, что дни Chrome OS сочтены? Google также возвращает работающий на базе Web магазин, так Chrome OS имеет те же рычаги, что разработчик Android в настоящее время. Эта точка на сближение, которая может быть в картах всё это время.

6.3 Отличительные признаки аппаратного обеспечения устройств на Android

Аппаратное обеспечение доступное на каждом устройстве Android различно. В общем, большинство различий понятны для разработчика и здесь не рассматриваются. Однако, множество аппаратных различий важны для понимания в ассистировании написания устройство независимого кода. Здесь обсуждаются экраны, пользовательские методы ввода и сенсоры.

Дисплеи

Для дисплеев использованы две технологии жидкокристаллические дисплеи(LCD) и со светоизлучающими диодами (LED). Два конкретных выбора в телефонах Android это дисплеина тонкопленочных транзисторах и на активной матрице органических светодиодных дисплеев. Достоинство TFT дисплеев это долгий жизненный период. Достоинство AMOLED дисплеев в том что нет необходимостив подсветке и поэтому они более тёмные и потребляют низкую мощность.

В целом, устройства Android разделены на малые, нормальные и большие экраны, и мало-, средне- и много- пиксельные плотность. Помните, что фактическая пиксельная плотность может различаться, но будет выбрана в качестве одного из них.

Пользовательский ввод

Сенсорные экраны позволяют пользователю взаимодействовать с визуальным дисплеем. Существует три типа технологии сенсорных экранов:

Resistive—Два резистивных слоя материала нанесены на поверхность стеклянного экрана. Когда палец, стилус, или другой объект прикладывает давление, два слоя соприкосаются друг с другом и может быть определено месторасположение прикосновения. Резистивные сенсорные экраны рентабельны, но только отображалось 75 процентов света и до недавного времени, мультитач не был возможен.

Capacitive—Заряженный слой материала наложен на стекло экран. Когда палец или любой электропроводник касается слоя, небольшой заряд оставляет след, изменяя ёмкостное сопростивление, которое измеряется для определения расположения прикосновения. Ёмкостные сенсорные экраны позволяют пропускать не более 90 процентов света, хотя точность может быть меньше, чем у резистивных.

Surface Acoustic Wave—Используется более прогрессивный метод, который посылает и получает ультразвуковые волны. Когда палец или любой объект касаются экрана, волны поглащаются. Волны измеряются для определения расположения прикосновения. Это самое яркое решение, но больше подходит для больших экранов, таких как банкоматы.

Все Android устройства используют любой резистивную или ёмкостную технологию сенсорных экранов, и с некоторыми исключениями все поддерживают мультитач.

В дополнении, каждое устройство Android нуждается в альтернативном методе доступа к экрану. Это осуществляет одним из следующих методов:

D-pad —вверх-вниз-влево-вправо типа джойстика.

Trackball—катающийся шар действующий как точечное устройство похожее на мышь.

Trackpad—специальная прямоугольая поверхность, действующая как точечное устройство.

Датчики

Смартфоны становятся сенсорными датчиками пути, открытые для богатого опыта пользователей. Кроме микрофона каждый телефон имеет первый дополнительный сенсор введёный на телефонах был камерой. Разные камеры телефонов имеют разные характеристики, и это важный фактор для людей в выборе устройства. Такого же типа разнообразие в настоящее время рассматривается с дополнительными датчиками.

Большинство смартфонов имеют по крайней мере три основных сенсора: трёх-осевой акселерометр для измерения тяжести, трёх-осевой магнитометр для измерения окружающего магнитного поля, и температурный сенсор для измерения окружающий температуры.

6.4 Черты Android

Подробные особенности Android’а и как ими пользоваться являются главной темой на протяжении всей этой книги. На обширном уровне, некоторые ключевые особенности являются основными точками продаж и различий. Это хорошо, быть осведомлённым об этих сильных точках Android и использовать их так, как только возможно.

Многозадачность и приложения

Операционная система Android не ограничивает процессор в одном приложении по времени. Система управляет приоритетом приложений и нитей изнутри приложения. Это и есть приемущество, что фоновые задачи могут быть запущены пока пользователь использует устройство в высоко приоритетном процессе. К примеру, пока пользователь играет в игру, фоновый процесс может проверять курсы акций и инициализировать сообщение.

Виджеты это мини-приложения который могут быть встроены в другие приложения (такие как «Домашний экран»). Они могут сопровождать события, такие как старт музыкьного потока или обновление наружной температуры, пока запущены другие приложения.

Многозадачность имеет преимущество для богатых опытом пользователей. Однако внимание должно быть отдано избеганию энергоёмких приложений, которые истощают батарею.

Тачскрин это интуитивно-понятный пользовательский интерфейс для наладонных устройств. Если пользоваться хорошо, это может превзойти потребность для подробных инструкций. После прикосновения экрана пальцем, тащите и бросайте это естественный способ взаимодействовать с графикой. Мультитач обеспечивает путь движения, более чем одного пальца в одно время. Это часто используется для увеличения или поворота вида.

Некоторые события прикосновений прозрачно доступны разработчику без необходимости реализации их подробного поведения. Обычные жесты могут быть определены как необходимые. Это важно попытаться поддерживать согласованность использования событий прикосновений как сравнение с другими приложениями.

6.5 Основы приложений

Действия и Цели

Каждое приложение представлено одиночным Android проектом. Обзор структуры проекта, включает краткое введение в основы создания блоков приложения, это представлено как используемая фоновая информация для рецептов этой книги. Затем фокусировка этой главы переходит к activities (действиям) и intents (целям) которые их запускают.

Android application Overview

Android приложение включает разную функциональность. Некоторые примеры это редактирование заметок, проигрывание музыкального файла, звук сигнала, или открытие телефонных контактов. Эта функциональность может быть классифицирована в разных Android компонентах, показанных в Таблице 2.1, каждый из которых имеет спецификацию на основе Java класса.

Функция

Java-основанный класс

Пример

Фокус на объектах которые может сделать пользователь

Фоновый процесс

Получение сообщение

Хранение и восстановление данных

Activity

Service

BroadcastReceiver

ContentProvider

Редактирование заметок, запуск игр

Проигрывание музыки, обновление иконки погоды

Запуск сигнала по событию

Открытие телефонных контактов

Каждое приложение создано из одного или более чем одного из этих компонентов. Они установлены операционной системой Android (OS) как необходимые. Другие приложения позволяют тоже использовать их, с определённым ограничениями.

Как множество функциональностей воспроизводится в OS (некоторые даже не связаны с намеченными приложениями, такие как входящий телефонный звонок), каждый компонент проходит жизненный цикл получения создания, фокусирования, дэфокусирования и уничтожения. Обычное поведение может быть переопределено для изящной операции, такой как сохранение переменных или восстановление пользовательского интерфейса элементов.

С исключением ContentProvider, каждый компонент активирован асинхронным сообщением, называемым Intent. The Intent может включать Bundle поддркждки информации описываемой компонентом. Это обеспечивает метод передачу информации между компонентами.

В конце этой главы демонстрируется предыдущие понятия использования большинства общих компонентов: Activity. Потому что activities почти всегда специфицируются на взаимодецствии с пользователем, окно автоматически создано с каждой активностью. Поэтому, также включено небольшое введение в Пользовательский Интерфейс.

6.6 Создание проекта и действия

Прямой путь создания проекта Android или этих компонентов это использование Интегрированной среды разработки Eclipse (IDE). Этот метод гарантирует надлежащую установку, поддерживаемых файлов. Шаги по созданию нового проекта Android:

1. В Eclipse, выберите File - New - Android Project. Это покажет создание экрана New Android Project.

2. Заполните имя проекта, например SimpleActivityExample.

3. Выберите Build Target из приведённых вариантов. Эти выборы основаны на версии Software Development Kit (SDK) которая установлена на компьютере для разработки.

4. Заполните имя приложения, например Example of Basic Activity.

5. Заполните имя пакета, например com.cookbook.simple_activity.

6. Для создания главной активности в том же шаге, убедитесь в Create Activity проверена и заполните имя активности, например SimpleActivity.

Все активности расширяют абстрактный класс Activity или один из подклассов. Входная точка каждой активности это метод onCreate(). Он почти всегда переопределен инициализацией активности, например установки Графического Интерфейса, создания обработчика событий кнопки, инициализация параметров, и началом нити.

Сгенерированные пользователем файлы включают

src/ включают Java пакеты, которые разработчик написал или импортировал для приложения. Каждый пакет может иметь множество .java файлов представленный разными классами.

res/layout/ включает XML файлы, которые определяют макет каждого экрана.

res/values/ включает XML файлы использованы как ссылки других файлов.

res/drawable-hdpi/, res/drawable-mdpi/, и res/drawable-ldpi/ директории, которые включают картинки использованные приложением. Они имеют высокое, среднее, и низкое растровое разрешение, соотвественно.

assets/ включает дополнительные не мультимедиа файлы, которые исползует приложение.

AndroidManifest.xml определяет проект в системе Android OS.

Автогенерируемые файлы включают

gen/ включает автогенерируемый код, включающий сгенерированный класс R.java.

default.properties включает настройки проекта. Хотя автогененрированный, он должен быть сохранён под управлением проверки.

Ресурсы приложения включает XML файлы описанные макетом, XML файлы описываемые занчениями такими как строки, метки элементов Графического Интерфейса, и дополнительных поддерживаемых файлов, таких как картинки и звуки. Во время компиляции, ссылки на ресурсы собранные в сгенерированный обёрточный класс называнный R.java. Android Asset Packaging Tool (aapt) автоматически генерируют это файл.