- Лекции Технотрека. Разработка под Android (осень 2017)
- Лекция 1. Введение
- Лекция 2. Основные компоненты приложений
- Лекция 3. Многопоточность в приложениях
- Лекция 4. Сеть
- Лекция 5. Adapter Views. Службы (Services)
- Лекция 6. Работа с данными и файлами
- Лекция 7. Локализация и работа с ресурсами
- Лекция 8. Современный дизайн приложений
- Лекция 9. Custom View. Архитектура приложений
- Лекция 10. Нотификации и Broadcast Receivers
- Введение в разработку Android-приложений
- 1.1. Введение. История Android
- 1.2. Инструментарий разработчика
- 1.3. Архитектура Android
- Введение в разработку мобильных приложений
- 1.3 Обзор сред программирования
Лекции Технотрека. Разработка под Android (осень 2017)
Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы разработки под Android. Вы научитесь эффективно использовать среду разработки Android Studio для создания пользовательского интерфейса, написания и отладки кода, профилирования приложений, поиска и решения проблем в коде. Узнаете о возможностях стандартной библиотеки и платформы Android, научитесь эффективно их использовать. Освоите проектирование кода, обладающего качествами модульности, расширяемости, простоты поддержки. Научитесь использовать средства автоматизированного тестирования.
Курс ведут Юрий Береза, старший программист студии IT Territory, и Кирилл Филимонов, руководитель команды разработки BeepCar Android.
- Введение.
- Основные компоненты приложений.
- Многопоточность в приложениях.
- Сеть.
- Adapter Views. Службы (Services).
- Работа с данными и файлами.
- Локализация и работа с ресурсами.
- Современный дизайн приложений.
- Custom View. Архитектура приложений.
- Нотификации и Broadcast Receivers.
Лекция 1. Введение
Вводная часть о жизненном цикле и истории развития компьютерных приложений. Основы заботы о пользователях. Преимущества и недостатки разработки под Android. Краткий обзор инструментов, которые будут использоваться в рамках курса. Процесс загрузки и запуск приложения в Android. Устройство файла приложения. Компоненты и манифест. Процедура создания и настроек проекта. Настройка окружения в Linux и Windows.
Лекция 2. Основные компоненты приложений
Activity и его жизненный цикл. Task и Back stack. Implicit intent и explicit intent. Фрагменты и их жизненный цикл. Библиотека поддержки (Support Library). GUI-элементы. Макеты (Layouts). Gravity.
Лекция 3. Многопоточность в приложениях
Потоки и процессы. Инструменты. Android-разрешения.
Лекция 4. Сеть
Работа с сетью. Компонент WebView. JSON и GSON. Библиотека OkHttp. Типобезопасный HTTP-клиент Retrofit.
Лекция 5. Adapter Views. Службы (Services)
Adapter Views (контейнеры). RecyclerView. Сервисы. Диспетчер задач (Job Scheduler).
Лекция 6. Работа с данными и файлами
Работа с файлами. Кэш LRU. Общие настройки (Shared Preferences). SQLite. Поставщики содержимого (Content Providers).
Лекция 7. Локализация и работа с ресурсами
Работа с ресурсами. Размеры экранов. Поддержка разных экранов. Темы и стили. Автоматическое тестирование.
Лекция 8. Современный дизайн приложений
Material Design. Экран запуска. Карточки. Виджет SnackBar. Панель действий (ActionBar). Плавающая кнопка действий (Floating Action Button). CoordinatorLayout. Вкладки. Нижняя навигационная панель. Шаблон Navigation Drawer.
Лекция 9. Custom View. Архитектура приложений
Custom View. Анимация.
Лекция 10. Нотификации и Broadcast Receivers
Нотификации. Получатели широковещательных сообщений (BroadcastReceivers). Android-виджеты. Подготовка приложения к публикации.
Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.
Источник
Введение в разработку Android-приложений
Презентацию к лекции Вы можете скачать здесь.
1.1. Введение. История Android
Android – открытая операционная система для мобильных телефонов, смартфонов, коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов, нетбуков и смартбуков, основанная на ядре Linux и поддерживающая различные аппаратные платформы, такие как ARM , MIPS , POWER , x86 .
Изначально разрабатывалась компанией Android Inc., которую затем (июль, 2005) купила Google. Впоследствии (ноябрь, 2007) Google инициировала создание бизнес-альянса Open Handset Alliance (в его состав вошли Google, HTC, Intel, Motorola, Nvidia и другие компании), который и занимается сейчас поддержкой и дальнейшим развитием платформы.
С момента выхода первой версии (сентябрь, 2008) произошло несколько обновлений системы. Эти обновления, как правило, касаются исправления обнаруженных ошибок и добавления нового функционала в систему. Каждая версия системы получает собственное кодовое имя на тему десерта.
1.2. Инструментарий разработчика
Перед тем, как приступить к созданию Android -приложений, необходимо выбрать подходящий инструментарий разработки.
Как правило, разработка Android -приложений осуществляется на языке Java . Поэтому, в первую очередь , необходимо установить Java Development Kit ( JDK ). Но для начала следует разобраться, что представляет из себя Java .
Java – это объектно-ориентированный язык программирования . Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java , которая обрабатывает байтовый код и передает инструкции оборудованию как интерпретатор . Достоинство подобного способа выполнения программ заключается в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java -приложения на любом устройстве, для которого существует соответствующая виртуальная машина . Другой важной особенностью Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции , которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание . Следует заметить, что фактически, большинство архитектурных решений, принятых при создании Java , было продиктовано желанием предоставить синтаксис , схожий с С/C++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров и операторов. Поэтому те, кто уже имеет опыт программирования на C/C++, смогут быстро освоиться и начать писать Java -приложения.
JDK – это бесплатно распространяемый комплект разработчика приложений на языке Java , включающий в себя компилятор Java , стандартные библиотеки классов Java , примеры, документацию, различные утилиты и исполнительную систему Java Runtime Environment ( JRE ). В состав JDK не входит интегрированная среда разработки (Integrated Development Environment ). Поэтому после того, как будет установлен JDK , следует установить IDE .
Существует несколько популярных сред разработки, но в данном курсе мы остановим свой выбор на Eclipse IDE и соответствующем для нее плагине Android Development Tools ( ADT ).
Android Software Development Kit ( SDK ) содержит множество инструментов и утилит для создания и тестирования приложений. Например, с помощью SDK Manager можно установить Android API любой версии (Рис. 1.1), а также проверить репозиторий на наличие доступных, но еще не установленных пакетов и архивов.
Android Native Development Kit (NDK) позволяет осуществлять разработку Android -приложений на языке C/C++. Зачем это может потребоваться? Есть несколько причин. Например, необходимость использовать код, который уже написан для нативной платформы, или ускорение выполнения критических кусков кода.
1.3. Архитектура Android
Рассмотрим основные компоненты операционной системы Android (Рис. 1.2).
Applications. Android поставляется с набором основных приложений, включающим календарь, карты, браузер , менеджер контактов и другие. Все перечисленные приложения написаны на Java .
Application Framework. Предоставляя открытую платформу разработки, Android дает разработчикам возможность создавать гибкие и инновационные приложения. Разработчики могут использовать аппаратные возможности устройства, получать информацию о местоположении, выполнять задачи в фоновом режиме, устанавливать оповещения и многое другое. Разработчики имеют полный доступ к тем же API , что используются в основных приложениях.
Архитектура приложений разработана с целью упрощения повторного использования компонентов; любое приложение может «публиковать» свои возможности и любое другое приложение может затем использовать эти возможности (с учетом ограничений безопасности). Этот же механизм позволяет заменять стандартные компоненты на пользовательские.
Libraries. Android включает в себя набор C/C++ библиотек, используемых различными компонентами системы. Эти возможности доступны разработчикам в контексте применения Android Aplication Framework. Некоторые основные библиотеки, перечислены ниже:
- Mедиа библиотеки – эти библиотеки предоставляют поддержку воспроизведения и записи многих популярных аудио, видео форматов и форматов изображений, в том числе MPEG4, MP3, AAC, AMR, JPG, PNG и других;
- Surface Manager – управляет доступом к подсистеме отображения 2D и 3D графических слоев;
- LibWebCore – современный веб-движок, на котором построен браузер Android;
- SGL – основной графический движок 2D;
- 3D библиотеки – реализованы на основе OpenGL; библиотеки используют либо аппаратное 3D-ускорение (при его наличии), либо включены программно;
- FreeType – поддержка растровых и векторных шрифтов
- SQLite – механизм базы данных, доступной для всех приложений.
Android Runtime. Android включает в себя набор основных библиотек, которые обеспечивают большинство функций, доступных в библиотеках Java . Каждое приложение Android работает в своем собственном процессе, со своим собственным экземпляром виртуальной машины Dalvik. Dalvik была написана так, что устройство может работать эффективно с несколькими виртуальными машинами одновременно.
Dalvik проектировалась специально под платформу Android . Виртуальная машина оптимизирована для низкого потребления памяти и работы на мобильном аппаратном обеспечении. Dalvik использует собственный байт-код. Android -приложения переводятся компилятором в специальный машинно-независимый низкоуровневый код. И именно Dalvik интерпретирует и выполняет такую программу при выполнении на платформе. Кроме того, с помощью специальной утилиты, входящей в состав Android SDK , Dalvik способна переводить байт-коды Java в коды собственного формата и также исполнять их в своей виртуальной среде.
Linux Kernel. Android основан на Linux версии 2.6 с основными системными службами – безопасность , управление памятью , управление процессами и модель драйверов. Разработчики Android модифицировали ядро Linux, добавив поддержку аппаратного обеспечения, используемого в мобильных устройствах и, чаще всего, недоступного на компьютерах.
Источник
Введение в разработку мобильных приложений
1.3 Обзор сред программирования
Прежде чем начать разрабатывать приложения под Android, рассмотрим существующие инструменты, подходящие для этих целей. Можно выделить необходимые инструменты, без которых разработка мобильных приложений под Android просто невозможна. С другой стороны, существует большое количество вспомогательных систем, в какой-то мере упрощающих процесс разработки.
К обязательным инструментам относится Android SDK — набор средств программирования, который содержит инструменты, необходимые для создания, компиляции и сборки мобильного приложения.
Рассмотрим кратко наиболее важные инструменты, входящие в состав Android SDK:
SDK Manager — инструмент, позволяющий загрузить компоненты Android SDK. Показывает пакеты Android SDK и их статус: установлен (Installed), не установлен (Not Installed), доступны обновления (Update available).
Android Emulator (emulator) — виртуальное мобильное устройство, которое создается и работает на компьютере разработчика, используется для разработки и тестирования мобильных приложений без привлечения реальных устройств.
(В ЛР№1 подробно рассматривается создание и использование виртуального устройства).
Мы рассмотрели основные инструменты, входящие в состав Android SDK, разумеется, не все и недостаточно подробно. Для более серьезного изучения инструментов имеет смысл обратиться к сайту разработчиков (http://developer.android.com/tools/help/index.html). Для разработки мобильных приложений под Android уверенного владения инструментами из SDK вполне достаточно. Если же возникают какие-то вопросы, дополнительные инструкции по созданию проектов, компиляции, запуску из командной строки содержатся в руководстве от Google (http://developer.android.com/training/basics/firstapp/index.html).
В современных условиях разработка ПО в большинстве случаев ведется с использованием интегрированных сред разработки (IDE). IDE имеют несомненные достоинства: процесс компиляции, сборки и запуска приложения обычно автоматизирован, в связи с чем для начинающего разработчика создать свое первое приложение труда не составляет. Но чтобы заниматься разработкой всерьез, необходимо потратить силы и время на изучение возможностей самой среды. Рассмотрим IDE, пригодные для разработки под Android 1 Разумеется, обзор не претендует на полноту и скорей всего найдутся не охваченные им инструменты (а то и появятся новые), но самые популярные на конец 2013 года будут рассмотрены. .
Для начала поговорим о двух средах разработки, которые рекомендует Google: Android IDE (ADT) и Android Studio.
Android IDE — среда разработки под Android, основанная на Eclipse. Предоставляет интегрированные инструменты для разработки, сборки и отладки мобильных приложений. В данном курсе Android IDE выбрана в качестве основной среды разработки. Возможности этой среды более подробно рассмотрены в первой лабораторной работе. Также там даны рекомендации по установке и настройке среды, созданию и запуску первого приложения как на эмуляторе, так и на реальном устройстве.
Android Studio — среда разработки под Android, основанная на IntelliJ IDEA. Подобно Android IDE, она предоставляет интегрированные инструменты для разработки и отладки. Дополнительно ко всем возможностям, ожидаемым от IntelliJ, в Android Studio реализованы:
- поддержка сборки приложения, основанной на Gradle;
- специфичный для Android рефакторинг и быстрое исправление дефектов;
- lint инструменты для поиска проблем с производительностью, с юзабилити, с совместимостью версий и других;
- возможности ProGuard (утилита для сокращения, оптимизации и обфускации кода) и подписи приложений;
- основанные на шаблонах мастера для создания общих Android конструкций и компонентов;
- WYSIWYG редактор, работающий на многих размерах экранов и разрешений, окно предварительного просмотра, показывающее запущенное приложение сразу на нескольких устройствах и в реальном времени;
- встроенная поддержка облачной платформы Google.
Загрузить последнюю версию Android Studio, а также получить рекомендации по установке, настройке и началу работы можно тут: http://developer.android.com/sdk/installing/studio.html.
Перейдем к рассмотрению других инструментов, пригодных для разработки мобильных приложений под Android. Начнем с инструментов от Intel — Intel XDK и Intel Beacon Mountain.
Intel XDK позволяет легко разрабатывать кроссплатформенные мобильные приложения; включает в себя инструменты для создания, отладки и сборки ПО, а также эмулятор устройств; поддерживает разработку для Android, Apple iOS, Microsoft Windows 8, Tizen; поддерживает языки разработки: HTML5 и JavaScript.
Последняя тема данного курса полностью посвящена изучению нового поколения инструментальных средств разработки мобильных HTML5-приложений и Intel XDK, предполагается разработка мобильного приложения с использованием этих инструментов.
Intel Beacon Mountain — среда разработки, позволяющая создавать приложения для устройств, работающих под управлением ОС Android. Предоставляет инструменты необходимые для проектирования, разработки, отладки и оптимизации приложений под Android. Освобождает разработчика от необходимости поддерживать систему разработки в актуальном состоянии, следит за обновлениями и добавляет их в среду разработки по мере появления. Поддерживает разработку для целевых платформ на основе процессоров Intel Atom и ARM.
Beacon Mountain построена на основе Android IDE (Eclipse, Android ADT, Android SDK), для более серьезной разработки и оптимизации добавлены следующие инструменты Intel:
- Intel* Hardware Accelerated Execution Manager (Intel* HAXM) — аппаратно поддерживаемый процессор виртуализации, использующий технологию виртуализации Intel* (Intel* VT) для ускорения работы эмулятора в среде разработки.
- Intel* Graphics Performance Analyzers (Intel* GPA) System Analyzer поддерживает мобильные устройства с процессором Intel Atom под управлением ОС Android. Позволяет разработчикам оптимизировать загруженность системы при использовании процедур OpenGL, предоставляя возможность получать множество системных метрик в реальном времени, отображающих загруженность CPU, GPU и OpenGL ES API. Разработчик может запустить несколько графических экспериментов для выявления узких мест в обработке графики.
- Intel* Integrated Performance Primitives (Intel* IPP) Preview — библиотека оптимизированной обработки данных и изображений, поддерживающая мобильные устройства с платформой Intel под управлением ОС Android. Preview версия является частью полной версии Intel IPP, которая тоже поддерживает ОС Android.
- Intel* Threading Building Blocks (Intel* TBB) — широко используемая, признанная библиотека шаблонов С++ для создания масштабируемых приложений и увеличения производительности. Поддерживает мобильные устройства с платформой Intel под управлением Android. Проверенные алгоритмы позволяют разработчикам эффективно распараллелить С++ мобильные приложения, что повышает производительность при снижении энергетических затрат.
Нельзя обойти вниманием инструментарий Marmalade SDK.
Marmalade SDK — кроссплатформенное SDK от Ideaworks3D Limited. Представляет собой набор библиотек, образцов, инструментов и документации, необходимых для разработки, тестирования и развертывания приложений для мобильных устройств. Используется, в основном, для разработки игр. Многие получившие признание игры, такие как Cut the Rope и Plants vs. Zombies, были разработаны с использованием этого программного средства. К сожалению, Marmalade SDK представляет собой проприетарное программное обеспечение (самая дешевая лицензия $15 в месяц) и не может быть рекомендована в данном учебном курсе, но читатель может самостоятельно попробовать бесплатную 30-дневную версию, доступную по ссылке https://www.madewithmarmalade.com/free-trial.
Нельзя не сказать об отечественных разработках. Например, компания 1С идет в ногу со временем, версия платформы 1С 8.3 позволяет разрабатывать мобильные приложения. Программный продукт «1С:Предприятие 8. Расширение для карманных компьютеров» обеспечивает возможность работы с данными информационных баз 1С:Предприятия 8 на мобильных устройствах (карманных компьютерах, коммуникаторах, терминалах сбора данных), а также на персональных компьютерах (в том числе ноутбуках), не имеющих прямого доступа к информационным базам 1С:Предприятия 8.
Источник