Принципы работы операционной системы 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нужно перейти на сайт #"justify">3.2 Настройка программ


Устанавливаем Android SDK

Начнем с установки Android SDK. Первое что требуется - установить JDK.

Далее - запустить программу установки последней версии Android SDK.

После завершения установки запускаем SDK Manager. Выбираем packages, которые нужно установить. SDK Manager скачивает и устанавливает все выбранные пакеты, а затем перезапускается.


Рис. 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 указываем http://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="#"justify">package="com.example.hello":versionCode="1":versionName="1.0">


<uses-sdk:minSdkVersion="8":targetSdkVersion="15"/>


<application:icon="@drawable/ic_launcher":label="@string/app_name":theme="@style/AppTheme">

<activity:name=".MainActivity":label="@string/title_activity_main">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>


<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>


</manifest>


Файл манифеста выполняет следующие функции:

·Объявляет имя Java-пакета данного приложения.

·Описывает компоненты приложения - деятельности, службы, приемники, широковещательных намерений и контент провайдеры, из которых приложение состоит.

·Объявляет, какие разрешения должно иметь приложения для обращения к защищенным частям API и взаимодействия с другими приложениями.

·Объявляет разрешения, которые сторонние приложения обязаны иметь, чтобы взаимодействовать с компонентами данного приложения.

·Объявляет минимальный уровень APIAndroid, которого требует приложение.

·Перечисляет библиотеки, с которыми приложение должно быть связано.

Редактировать файл манифеста можно вручную, записывая XML-код непосредственно в файл, или через визуальный редактор ManifestEditor, что является наиболее удобным способом для новичков.

Общая структура манифеста


Рис. 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 и делятся на подкатегории:

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.0encoding=utf-8?>//Стандартная строка, обозначающая кодировку и версию XML.

<LinearLayoutxmlns:android=#"justify">//Данная ссылка обязательна для любого приложения Android.


Android:orientation=vertical//Задание ориентации экрана на данной разметке.Android:layout_width=fill_parent//Задание ширины относительно экрана:layout_height=fill_parent>//Задание высоты разметки относительно экрана


<TextView// Объявление элемента TextView:id=@+id/TextView01//Указание ID объекта

Android:layout_width=fill_parent//Ширины

Android:layout_heigth=wrap_content//Высоты:text=@String/hello//Вставка текста из строковой константы

</TextView>

</LinearLayout>?>


8.2 Инициализация представлений (Layout)


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

Чтобы это сделать необходимо в методе onCreate() вызвать метод setContentView()передав ему в качестве параметра ссылку на ресурс разметки в виде:


setContentView(R.layout.layout_file_name)

Пример загрузки разметки в коде программы:


publicvoidonCreate(BundlesavedInstanceState) {.onCreate(savedInstanceState);(R.layout.activity_main);

}

Прорисовка начнется с корневого элемента и продолжится подгрузкой дочерних.


.3 Стандартные разметки


Существуют следующие стандартные виды разметок:

·FrameLayout

·LinearLayout

·TableLayout

·RelativeLayout


Рис.8. Иерархия классов разметок.

layout

Это самый простой тип разметки, на нем можно обычно размещают один дочерний элемент с параметрами fill_parrent и для ширины и для высоты. Объясняется это тем, что все последующие дочерние элементы накладываются друг на друга. Пример с двумя дочерними элементами:


<FrameLayoutxmlns:android="#"justify">xmlns:tools="#"justify">android:id="@+id/FrameLayout1"

android:layout_width="match_parent"

android:layout_height="fill_parent":layout_gravity="center">


<Button:layout_width="fill_parent":layout_height="fill_parent":text="@string/HelloButton":id="@+id/Button01"

/>

<Button:layout_width="wrap_content":layout_height="wrap_content":text="@+id/Button02":id="@+id/Button02"

/>

</FrameLayout>


Выглядит на экране мобильного это так:

Layout

Данная разметка выравнивает все дочерние объекты в одном направлении.Все дочерние элементы помещаются на разметку один за другим.


<LinearLayoutxmlns:android="#"justify">xmlns:tools="#"justify">android:id="@+id/LinearLayout2"

android:layout_width="match_parent"

android:layout_height="fill_parent":layout_gravity="top":orientation="vertical">


<Button:id="@+id/Button01":layout_width="wrap_content":layout_height="wrap_content"

android:text="Button01"/>




<Button:id="@+id/Button02":layout_width="wrap_content":layout_height="wrap_content"

android:text="Button02"/>




<Button:id="@+id/Button03":layout_width="wrap_content":layout_height="wrap_content"

android:text="Button03"/>

<Button:id="@+id/Button04":layout_width="wrap_content":layout_height="wrap_content"

android:text="Button04"/>

<TextView:id="@+id/TextView01":layout_width="wrap_content":layout_height="wrap_content":text="@string/HelloButton"/>

</LinearLayout>



Table Layout

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

При создании разметки для строк используются объекты TableRow. Строка может не иметь ячеек, или иметь одну и более. Каждая ячейка может быть контейнером для View или ViewGroup. Допускается вложить другой Tableили Linearlayoutв ячейку.


Layout

Такая разметка позволяет располагать дочерние элементы относительно родительского или соседнего дочернего(по идентификатору элемента).

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


<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="#"justify">android:id="@+id/RelativeLayout1"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<Button:id="@+id/button_center":layout_width="wrap_content":layout_height="wrap_content":height="20pt":longClickable="true"

android:text="1":width="20pt":layout_centerVertical="true":layout_centerInParent="true"/>


<Button:id="@+id/button2":layout_width="wrap_content":layout_height="wrap_content":layout_alignParentBottom="true":layout_alignParentLeft="false":layout_alignParentRight="false":height="20pt":longClickable="true"

android:text="2":width="20pt"/>


<Button:id="@+id/button3":layout_width="wrap_content":layout_height="wrap_content":layout_alignParentBottom="true":layout_alignParentRight="true":height="20pt":longClickable="true"

android:text="3":width="20pt"/>


<Button:id="@+id/button4":layout_width="wrap_content":layout_height="wrap_content":layout_alignParentRight="true":layout_alignParentTop="true":height="20pt":longClickable="true"

android:text="4":width="20pt"/>


<Button:id="@+id/button5":layout_width="wrap_content":layout_height="wrap_content":layout_centerVertical="true":layout_marginLeft="30sp":height="20pt":longClickable="true"

android:text="5":width="20pt"/>


<Button:id="@+id/button6":layout_width="wrap_content":layout_height="wrap_content":height="20pt":longClickable="true"

android:text="6":width="20pt"/>


<Button:id="@+id/button1":layout_width="wrap_content":layout_height="wrap_content":layout_alignBaseline="@+id/button_center":layout_alignBottom="@+id/button_center":layout_alignParentRight="true":layout_alignWithParentIfMissing="false":layout_centerHorizontal="false":layout_centerInParent="true":layout_marginRight="30sp"

android:text="7"/>

</RelativeLayout>



Введение Развитие мобильных устройств не стоит на месте, они завоевывают всё большую популярность среди пользователей. А доминирующей на рынке мобильной

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ