Принципы работы операционной системы Android
Введение
Развитие мобильных устройств не стоит на месте, они завоевывают всё
большую популярность среди пользователей. А доминирующей на рынке мобильной
платформой является операционная система Android. Её доля ≈60%. Согласно
последнему отчету исследовательской компании Gartner, через несколько лет
платформа Android может стать самой популярной операционной системой в мире,
что является хорошим поводом для изучения как самой системы, так и сред
разработки под неё.
Целью моей курсовой работы является изучение принципов работы
операционной системы Android, а также освоение знаний по созданию программ для
данной ОС.
"Родным" для Android языком программирования, о котором и
пойдет речь, является Java. Для разработки используется среда Eclipseс
надстройкой AndroidSDK и встроенным в SDK эмулятором мобильного
устройства.является объектно-ориентированным языком. Синтаксис программного
кода для ПК и мобильных разнится, в AndroidSDK используется множество
собственных библиотек, в первую очередь, обеспечивающих взаимодействие
пользователя с устройством жестами.
1. Вступление
Android - операционная система для смартфонов, планшетов и нетбуков.
Компания Google приобрела разработчика программного обеспечения Android inc. в
2005 году. Операционная система Android основана на модифицированном ядре
Linux. Впоследствии, Google и другие участники Open Headset Alliance
сотрудничали для совместной разработки этой новой операционной системы. Далее
Android Open Source Project (AOSP) поручено поддержание и дальнейшее развитие
платформы. У Android имеется большое сообщество разработчиков, которые
расширяют функциональность устройств. Официально об OS Android стало известно
5 ноября 2007 года, когда было объявлено основание Open Headset Alliance -
консорциум из 80 компанийприложения включают в себя java-приложения и
библиотеки, которые запускаются виртуальной машиной Dalvik. Библиотеки включают
в себя систему управления, графику OpenGL ES 2.0, движок WebKit, графический
движок SGL, SSL и библиотеки Bionic. OS Android состоит из 12 миллионов строк
кода, в том числе 3-х миллионов строк XML, 2.8 миллионов строк на C, 2.1
миллиона строк на Java и 1.75 миллиона строк на C++.android
операционный телефон файл
2. История OS Android
Компания Android inc. была основана в октябре 2003 года в Пало Альто,
штат Калифорния. Основателями Android inc. были Энди Рубин, Рич Майнер, Ник
Сирс и Крис Уайт.
В августе 2005 года компания Google приобрела Android inc. После этого
Android inc. стала дочерней компанией Google. После покупки Энди Рубин, Рич
Майнер и Крис Уайт остались в Android inc. После поглощения Android inc., в
сети стали появляться слухи о том, что Google хочет выйти на рынок мобильных
телефонов.
Получив поддержку Google, команда во главе с Энди Рубином начала работать
над операционной системой базирующейся на ядре Linux. Тогда же, в декабре 2006
года поползли слухи о том, что Google планирует выпустить смартфон под свои
брендом, так называемый “Гуглофон”.
Все эти слухи опроверг Эрик Шмидт, заявив следующее: «Сегодняшнее
заявление носит более амбициозный характер, чем выпуск смартфона под нашим
брендом, о чем пресса спекулирует последние недели. Наше видение заключается в
том, что мощнейшая платформа должна отдать свои силы тысячам различных моделей
телефонов». После этих слов 5 ноября 2007 года и был представлен Open Headset
Alliance - консорциум из множества компаний, в который вошли такие гиганты как:
Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group,
Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, Texas
Instruments и другие.
Названия каждой очередной версии ОС Android представляет собой название
какого-либо десерта. Первые буквы наименований в порядке версий соответствуют
буквам латинского алфавита.
3. Среда разработки Eclipse
3.1 Подготовка к работе
Прежде всего для работы необходимо установить несколько компонентов:
· Java JDK
· Eclipse
· Android SDK
JavaDevelopmentKit(JDK) можно скачать с оффициального сайта Java, раздела
"Загрузки".
Для скачивания среды разработки Eclipseнужно перейти на сайт
#"576741.files/image001.gif">
Рис. 1
Устанавливаем Eclipse
Следующий шаг - установка Eclipse. Eclipse поставляется в виде
zip-архива. Распаковываем его в любую директорию, например, c:\utils\eclipse.
Теперь устанавливаем плагин для работы с android SDK - ADT Plugin.
Запускаем Eclipse. Он предложит создать новый workspace, соглашаемся.
Выбираем Help>Install new software. Жмем кнопку "Add..",
появляется окно "Add repository". В поле Name вводим "ADT
Plugin", в поле Location указываем
https://dl-ssl.google.com/android/eclipse/. Ставим галочку "Developer
Tools", дважды жмем Next, принимаем лицензионное соглашение. После
завершения загрузки плагина перегружаем Eclipse.
Рис. 2
Осталось указать Eclipse путь к Android SDK. Открываем
Window>>Preferences>>Android, в графе SDK вводим c:\program
files\Android\android-sdk. Жмем кнопку "Apply" - появится список
установленных API. Закрываем окно - Eclipse и Android SDK установлены.
Рис. 3
3.3 Создание проекта
Для создания нового Android проекта
необходимо выбрать File\New\Project\Android\AndroidProject
Рис. 4
Далее идет настройка проекта:
Рис. 5
На первых порах настройки не так важны, достаточно назвать проект и
выбрать версию API, остальное можно оставить по-умолчанию.
4. Структура проекта
Рис. 6
На рисунке показана структура
Androidпроекта, в которой большая часть файлов - автогенерируемые. Программист
работает лишь с папкой res, в которой хранятся ресурсы, которые используются в
проекте и src - папку, содержащую исходный код классов.
5. Android Manifest
В структуре Android проекта одним из важнейших файлов является Android
Manifest.xml.
<manifestxmlns:android="#"576741.files/image008.gif">
Рис. 7
<manifest>- Корневой раздел файла. По умолчанию создается с 4
атрибутами::android- Определяет пространство имен Android. Строка одинакова для
любого проекта.- определяет имя пакета приложения.:versionCode-Указывает внутренний
номер версии.:versionName - указывает номер пользовательской версии.
<Permission>объявляет разрешение, которое используется для
ограничения доступа к определенным компонентам или функциональности данного
приложения. В этой секции описываются права, которые должны запросить другие
приложения для получения доступа к вашему приложению.
<uses-permission>Запрашивает разрешения, которые должны быть
предоставлены приложению для его полного функционирования.
<Permission-group> - Элемент, определяющий имя для набора логически
связанных разрешений. Этот элемент не объявляет разрешение непосредственно,
только категорию, в которую могут быть помещены разрешения.
<instrumenantion>- Элемент объявляет объект Instrumentation,
который дает возможность контроллировать взаимодействие приложений с системой.
Обычно используется только при отладке и тестировании прилоения.
<uses-sdk>позволяет объявлять совместимость приложения с указанной
версией платформы Android.
<Uses-configuration> - указывает требуемую для приложения аппаратную
и программную конфигурацию мобильного устройства.
<uses-feature>- Элемент, определяющий соответствие требований
приложения к функционалу устройства.
<support-screens> определяет разрешение экрана, требуемое для
функционирования устройства.
<application> - Важный элемент манифеста, содержащий описание
компонентов приложения, доступных в пакете.
6. Компоненты Android приложения
.1 Деятельность(Activity)
Деятельность представляет собой визуальный пользовательский интерфейс -
окно. Обычно она занимает полностью весь экран мобильного устройства.
Деятельность может использовать дополнительные всплывающие окна.
Приложение может иметь несколько активностей, при переходе на другую
активность - предыдущая замораживается, а сама она вносится и сохраняется в
стек деятельностей.
.2 Службы
Служба не имеет пользовательского интерфейса и выполняется в фоновом
режиме в течение неопределенное периода времени. Служба будет выполняться в
системе до тех пор, пока не выполнит свою работу.
Приложения могут подключаться к службе и с помощью интерфейса управлять
ею.
.3 Приемники широковещательных сообщений
Приемник широковещательных сообщений - компонент, позволяющий принимать
данные от внешних событий и реагировать на них. Инициализировать передачи могут
другие приложения и службы.
Приемники широковещательных сообщений не имеют пользовательского
интерфейса. Однако они могут запустить деятельность в ответ на полученное
событие.
6.4 Контент-провайдеры
Контент-провайдер предоставляет определенный набор данных доступным для
приложения. Данные могут быть сохранены в файловой системе, в базе данных или
любым другим способом.
7. Ресурсы проекта
res/drawable - Каталог, который содержит изображения/anim - Каталог,
содержащий XML-файлы, в которых описывается анимация (скомпилированные
анимационные файлы)/menu - Каталог, содержащий ХМL-файлы, в которых описываются
меню/values - Каталог, содержащий другие ресурсы (строки, стили, цвета) в виде
XML-файлов/xml - Каталог с дополнительными XML-файлами (скомпилированные
произвольные ХМL-файлы)/raw - Каталог, содержащие различные данные не в формате
XML (нескомпилированные необработанные (raw) файлы)
8. Разметка
Разметка - это совокупность элементов пользовательского интерфейса и их
расположения для конкретного окна(деятельности). Разметку можно объявлять двумя
способами:
· Объявить элементы пользовательского интерфейса в XML коде.
· Создать разметку окна в коде программы во время выполнения.
Eclipse позволяет редактировать XML файлы, содержащиеся в каталоге
/res/layout, с помощью графического редактора LayoutEditor, позволяющий
увидеть, как будут расположены все объекты, объявленные в XML.
.1 Объявление в XML
Каждый файл разметки должен содержать только один корневой элемент,
который должен быть элементом представления Viewили ViewGroup(это
классы-наследники Layout, используемые для создания внутри них каких-либо
объектов или других View, в определенном контексте их можно назвать «контейнарами»).
Можно дополнять корневой элемент дополнительными, которые постепенно
позволят создать иерархию элементов, которую определяет разметка.
Объявление элемента в XML коде разметки на примере TextView(самого
простейшего контейнера, отображающего текст):
<?xmlversion=”1.0”encoding=”utf-8”?>//Стандартная строка,
обозначающая кодировку и версию XML.
<LinearLayoutxmlns:android=”#"576741.files/image009.gif">
Рис.8. Иерархия классов разметок.
layout
Это самый простой тип разметки, на нем можно обычно размещают один
дочерний элемент с параметрами fill_parrent и для ширины и для высоты.
Объясняется это тем, что все последующие дочерние элементы накладываются друг
на друга. Пример с двумя дочерними элементами:
<FrameLayoutxmlns:android="#"576741.files/image010.gif">
Layout
Данная разметка выравнивает все дочерние объекты в одном направлении.Все
дочерние элементы помещаются на разметку один за другим.
<LinearLayoutxmlns:android="#"576741.files/image011.gif">
Table Layout
Разметка позиционирует свои дочерние элементы в строки и столбцы. При
формировании таблицы можно оставлять некоторые ячейки пустыми.
При создании разметки для строк используются объекты TableRow. Строка может
не иметь ячеек, или иметь одну и более. Каждая ячейка может быть контейнером
для View или ViewGroup. Допускается вложить другой Tableили Linearlayoutв
ячейку.
Layout
Такая разметка позволяет располагать дочерние элементы относительно
родительского или соседнего дочернего(по идентификатору элемента).
В относительной разметке дочерние элементы расположены так, что если
первый находится в центре экрана, то другие будут расположены относительно
центра. Соседние элементы обращаются к такому элементу по идентификатору =>
он должен быть создан первым.
<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="#"576741.files/image014.gif">