Современный этап развития цивилизации можно охарактеризовать переходом от индустриального общества к информационному. Одним из наиболее актуальных на данный момент является, процесс возникновения и развития приложений для мобильных устройств. В данной работе рассматриваются теоретические основы программирования под Android, архитектура системы, классификация и разновидности средств разработки. Android - операционная система для мобильных устройств с открытым кодом основанная на ядре Linux.
Постановка задачи.
Основной целью данной исследовательской работы является анализ основ программирования под Android OS.
В процессе исследования необходимо решить следующие задачи:
- проанализировать особенности Android OS;
- раскрытие особенностей Android OS;
- Краткая классификация средств разработки под Android OS;
Развитие Android OS
По данным 2014года, в 68% проданных смартфонов использовалась Android OS. Всего несколько лет понадобилось этой инновационной мобильной платформе для того, чтобы занять место лидера на рынке смартфонов и планшетов.
Изначально, в 2005 году компания Android Inc. являлась обычным стартап-проектом и занималась разработкой программного обеспечения для мобильных телефонов. Известный уже в то время гигант компания Google, уже в июле того же года решила купить данный проект, заприметив в нем большие возможности и, в частности, возможность создать инновационную мобильную платформу. Так, стартап-проект попал под крыло компании Google и началась работа над созданием новой мобильной ОС.
Задача состояла в следующем: Создание мобильной операционной системы с открытым исходным кодом, а это в свою очередь очень важный фактор для успешной конкуренции. Система создавалась на базе ядра Linux. В ноябре 2007 года, аккурат после появление первого iPhone, новая мобильная платформа была представлена на суд общественности. Название Android осталось от имени стартапа. Уже через несколько дней на серверах появилась бета-версия Android SDK, которая позволяла сторонним разработчикам создавать свой софт. Для стимуляции этого процесса был даже объявлен конкурс среди разработчиков с призовым фондом в 5 млн. долларов.
Параллельно с этим шла работа по привлечению крупных телекоммуникационных компаний - операторов связи и производителей мобильных устройств. В ходе этого был создан целый альянс, который насчитывал 34 компании, задачей которого было улучшение мобильной платформы и создание устройств, которые будут работать на ее базе.
Основными партнерами стали такие компании, как Samsung, HTC, Intel, Motorola, LG, Nvidia и другими. Во главе альянса находилась компания Google и конечно, маркетинг этой компании является главным фактором, который позволил за довольно короткий промежуток времени сделать несколько важных шагов в развитие платформы. Однако, стоит упомянуть и удобство самой ОС Android: многозадачность, поддержка multi-touch, объемной графики, свой удобный браузер и полная открытость для любых манипуляций, позволяющая "собирать" систему на подобии конструктора, изменяя даже стандартные приложения. Все это позволило отлично конкурировать с главным соперником в лице Apple, где пользователь сильно ограничивался в своих возможностях.
Особенности ОС Андроид
Android динамично развивающаяся платформа. Именно Android поддерживает огромный интерес разработчиков к Java. Мотивируя начинающих программистов к изучению языка.
Ниже будут представлены основные особенности рассматриваемой ОС:
-Открытый исходный код;
- Сервисы Google и синхронизация;
-Android API практически совпадает с Java API. Но, Android поддерживает не все классы, которые доступны в J2SE SDK. Он поддерживает только те, которые являются критичными.
-Android не использует виртуальную машину Java для исполнения файлов классов. Android использует виртуальную машину Dalvik, которая не является JVM и не оперирует байт-кодом Java.
- Dalvik - файлы классов компилируются в формат Dalvik Executable (DEX). После преобразования в DEX-формат, файлы классов вместе с остальными ресурсами обьединяются в Android Package (APK) для установки на различные гаджеты.
Арихтектура операционной системы Android OS При представлении компонентной модели Android в виде иерархии, в самом низу, будет располагаться ядро операционной системы. Известно, Android OS основан на ядре ОС Linux. Именно оно обеспечивает работу системы и отвечает за безопасность, управление памятью, энергосистемой и процессами, а также предоставляет сетевой стек и модель драйверов. Ядро обеспечивает взаимодействие между аппаратным обеспечением и программной частью. Уровнем выше , расположен набор библиотек, предназначенный для обеспечения важнейшего базового функционала для приложений. Данный уровень отвечает за реализацию алгоритмов для вышележащих уровней, поддержку файловых форматов, осуществление кодирования и декодирования информации , прорисовку графики и многое другое. Библиотеки реализованы на C/C++ и скомпилированы под конкретное аппаратное обеспечение.
Вот некоторые из них:
Surface Manager - в Android используется композитный менеджер окон, наподобие Compiz, но более упрощенный. Вместо того чтобы производить прорисовку графики напрямую, система посылает поступающие команды прорисовки в закадровый буфер, где они сумируются вместе с другими, составляя готовую композицию, а потом выводятся на экран. Это позволяет системе создавать бесшовные эффекты, плавные переходы, прозрачность окон и другие визуальные эффекты.
Media Framework - библиотеки, реализованные на базе PacketVideo OpenCORE. С их помощью система поддерживает вывод статических изображений и может осуществляет запись, воспроизведение аудио и видео данных. Поддерживаются многие популярные форматы, такие как : MPEG4, H.264, MP3, AAC, AMR, JPG и PNG.
SQLite - производительная и легкая реляционная СУБД, используемая в Android в качестве основного движка для работы с БД, используемыми приложениями для хранения информации.
3D библиотеки - используются для высокооптимизированной отрисовки 3D-графики, при возможности используют аппаратное ускорение. Их реализации строятся на основе API OpenGL ES 1.0.
FreeType - библиотека для работы с битовыми картами, а также для растеризации шрифтов и осуществления операций над ними. Это высококачественный движок для шрифтов и отображения текста.
LibWebCore - библиотеки известного шустрого браузерного движка WebKit, используемого также в десктопных браузерах Google Chrome и Apple Safari.
SGL (Skia Graphics Engine) - открытый движок для работы с 2D-графикой. Графическая библиотека является продуктом Google и часто используется в других их программах.
SSL - библиотеки для поддержки одноименного криптографического протокола.
Libc - стандартная библиотека языка C, а именно её BSD реализация, настроенная для работы на устройствах на базе Linux. Носит название Bionic.
На этом же уровне располагается Android Runtime - среда выполнения. Ключевыми её составляющими являются набор библиотек ядра и виртуальная машина Dalvik. Библиотеки обеспечивают большую часть низкоуровневой функциональности, доступной библиотекам ядра языка Java. Каждое приложение в ОС Android запускается в собственном экземпляре виртуальной машины Dalvik. Таким образом, все работающие процессы изолированы от операционной системы и друг от друга. И вообще, архитектура Android Runtime такова, что работа программ осуществляется строго в рамках окружения виртуальной машины. Благодаря этому осуществляется защита ядра операционной системы от возможного вреда со стороны других её составляющих. Поэтому код с ошибками или вредоносное ПО не смогут испортить Android и устройство на его базе, когда сработают. Такая защитная функция, наряду с выполнением программного кода, является одной из ключевых для надстройки Android Runtime.
Краткая классификация средств разработки Android OS
Android Studio - полностью интегрированная среда разработки приложений, выпущенная компанией Google , для разработки под ОС Android. Продукт оснащает разработчиков новыми инструментами для создания приложений, а также предоставить альтернативу Eclipse, являющейся в настоящее время наиболее популярной средой разработки.
Android Development Tools(ADT) - плагин для Eclipse IDE, позволяющий разрабатывать приложения под ОС Android.
Android SDK содержит множество инструментов и утилит для создания и тестирования приложений. Большинство из них доступно прямо внутри среды разработки Eclipse из панели DDMS.
DDMS (Dalvik Debug Monitoring Service)
DDMS- служба отслеживания процессов и отладки в Dalvik. Позволяет отслеживать и контролировать виртуальные машины Dalvik. Является мощным отладочным инструментом, позволяет мониторить активные процессы, останавливать рабочие потоки, изучать файловую систему подключенного устройства.
AAPT (Android Asset Packaging Tool)
AAPT - инструмент для создания пакетов. Создает файлы пакетов для Android OS.
ADB (Android Debug Bridge)
Приложение по типу клиент-сервер, предоставляет доступ к работающему эмулятору или устройству. С его помощью можно копировать файлы, устанавливать скомпилированные программные пакеты и запускать консольные команды.
Draw 9-patch
Утилита работает с png-файлами и сохраняет в формате .9.png
Hierarchy Viewer
Программа для отладки и оптимизации пользовательского интерфейса. Программа отображает иерархию в виде древовидной структуры. При загрузке шаблона появляется возможность проверить возможные недоработки и оптимизировать, сведя к минимуму количество содержащихся в нём видов.
TraceView
Инструмент для графического анализа. С его помощью можно просматривать трассировочные записи, принадлежащие вашему приложению.
MkSDCard
Утилита командной строки создает образ диска для SD-карты (FAT32). Может использоваться эмулятором для имитации флеш-накопителя. После создания образа карточки ее нужно указать в настройках эмулятора, чтобы у вас была возможность работать с ней.
Заключение.
На основании работы можно сказать что, поставленная задача выполнена. Автор, рассмотрел ключевые особенности Android OS. Архитектуру операционной системы и рассмотрел краткую классификацию средств разработки для данной ОС. Проанализировав ключевые особенности системы, становиться ясно что, Андроид на данный момент является наиболее перспективной средой разработки с удобным инструментарием разработчика. Темпы развития операционной системы превосходят все возможные прогнозы.