Слайд 1Android Development
Александр Загоруйко © 2017
Слайд 2Преподаватель
Александр Загоруйко
zagorujko@itstep.org
Слайд 3План презентации
О разработке приложений под Android
Литература и полезные сайты
Подключение устройства
Запуск Android
Studio, создание проекта
Версии операционной системы Android
Типы Android-приложений
Запуск HelloWorld-приложения
Практика
Слайд 4Что такое Android?
Android — свободная операционная система для мобильных телефонов, планшетов, смарт-часов и телевизоров, использующая ядро Linux, и
принадлежащая Google. С момента выхода первой версии в сентябре 2008 года произошло более 45 обновлений системы. Эти обновления касаются исправления обнаруженных ошибок и добавления новой функциональности в систему.
Слайд 5Кто такой Android-разработчик?
Это программист, который создаёт приложения под Android — операционную
систему для смартфонов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов, игровых приставок, нетбуков, смартбуков, очков Google, телевизоров, автомобилей и даже бытовых роботов.
Слайд 6Чем он занимается?
Основные должностные обязанности разработчика Android-приложений:
Разработка приложений под Android
Тестирование приложений
Поддержка
приложений
Размещение приложений в Google Play, Samsung Apps Store, Amazon Appstore, Opera Mobile Store, Yandex.Store и прочих магазинах приложений
Разработка инструкций по работе с готовым продуктом
Оформление необходимой документации
Слайд 7Отличный повод учить Android
В 2016 году было продано более 1 млрд
Android-устройств. В первом квартале 2017 года более 82% проданных смартфонов работают на Android. Программирование и под Android, и под iOS в целом происходит примерно одинаково.
http://www.gartner.com/newsroom/id/3609817
Слайд 8Что нужно знать и уметь?
Основные навыки:
Высшее / неполное высшее образование (техническое
/ IT)
Знание HTML, HTTP, XML, принципов объектно-ориентированного программирования, СУБД
Опыт программирования на языке Java от 1 года
Знание дополнительного языка программирования (C++, Python, Perl, Ruby) будет плюсом
Представление об Android SDK (комплекте средств разработки, который позволяет программистам создавать приложения для ОС Android)
Слайд 9Что нужно знать и уметь?
Основные навыки:
Понимание взаимодействия приложения по модели клиент-сервер
Приветствуется
наличие опыта разработки приложений, веб-интерфейсов
Знание правил и требований к релизам приложений в Google Play, Amazon Appstore, Opera Mobile Store, Yandex.Store и тд.
Умение разбираться в чужом коде, оптимизировать и тестировать его
Владение техническим английским языком
Слайд 11Вакансии для андроидщиков
https://jobs.dou.ua/vacancies/?category=Android
Слайд 12Как стать разработчиком?
Если вы вообще новичок в программировании, для начала нужно
будет разобраться с языком Java, так как приложения под Android написаны в основном на этом языке. Для этого пригодится список обучающих ресурсов по Java для новичков.
Слайд 13Как стать разработчиком?
Если вы уже хорошо разобрались с Java и XML,
но являетесь новичком в Android, то специально для вас компания Google сделала хорошее введение в AndroidЕсли вы уже хорошо разобрались с Java и XML, но являетесь новичком в Android, то специально для вас компания Google сделала хорошее введение в Android на своём сайте. Также есть замечательный гид по AndroidЕсли вы уже хорошо разобрались с Java и XML, но являетесь новичком в Android, то специально для вас компания Google сделала хорошее введение в Android на своём сайте. Также есть замечательный гид по Android. Если возникают вопросы в процессе написания приложения, то в первую очередь следует проверить StackOverflowЕсли вы уже хорошо разобрались с Java и XML, но являетесь новичком в Android, то специально для вас компания Google сделала хорошее введение в Android на своём сайте. Также есть замечательный гид по Android. Если возникают вопросы в процессе написания приложения, то в первую очередь следует проверить StackOverflow – сайт, который создан для ответов на технические вопросы и даже является официальной платформой Q&A для Android.
Слайд 14Программа курса (184 пары)
Процедурное программирование на языке Java – 40 пар
Объектно-ориентированное
программирование на языке Java – 34 пары
XML – 4 пары
SQL (базы данных) – 18 пар
Android – 88 пар
Слайд 15Программа Java SE (ПП и ООП)
Введение в программирование, алгоритмы
Переменные, типы данных,
операции
Условные операторы, циклы, псевдографика
Массивы, строки, регулярные выражения
Методы, перечисления, аннотации, обзор JavaFX
ООП, инкапсуляция, структуры данных, JCF
Агрегирование, наследование, полиморфизм
Сбор мусора, исключения, обобщения
Streams, threads, синхронизация потоков
Теоретический экзамен в формате собеседования
Слайд 16Программа Android
Элементы управления (кнопки, текстовые поля, списки и тд.), диалоговые окна,
работа с меню
События, жизненный цикл приложения, макетирование и навигация, Google-карты
Жесты, сенсоры, рисование, работа с камерой
Паттерны проектирования, клиент-сервер
Работа с SQL и NoSQL базами данных
Регистрация в Google Play, публикация приложений, интеграция рекламных баннеров
Подготовка к защите дипломного проекта
Слайд 17Ресурсы по Android
https://tproger.ru/translations/how-to-start-android/
Слайд 18Литература по Android
Head First. Программирование для Android
Android. Программирование для профессионалов
Android для
разработчиков
Книги доступны по ссылке:
https://drive.google.com/open?id=0B0ZTynoOO8QPUUx1RXdPbFRsSm8
Слайд 19Сайты про Android
https://developer.android.com/index.html
http://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
http://developer.alexanderklimov.ru/android/
http://www.vogella.com/tutorials/android.html
http://4pda.ru/forum/index.php?showforum=281
http://www.fandroid.info/
http://geekinformer.net/
http://droider.ru/
http://androidinsider.ru/
http://top-android.org/
http://mob-core.com/programmy-dlja-android/
Слайд 20Подключение устройства
Не подключая устройство к компьютеру, заходим в пункт меню настроек
«специальные возможности > для разработчиков», в нём включаем отладку по USB
Подключаем устройство к компьютеру
Слайд 21Пункт «для разработчиков»
Как показывает практика, иногда найти пункт меню настроек «для
разработчиков» не так-то и просто.
Как вариант, в этот раздел поможет зайти многократное быстрое нажатие (от 5 до 20 раз) по номеру версии системы Android.
Слайд 22Подключение устройства
В разделе настроек О телефоне > Память > Подключить как
необходимо выбрать режим Медиа-устройство (MTP).
Слайд 23Поиск и установка драйвера
Для Google-устройств линейки Nexus и Pixel драйвера будут
доступны в SDK менеджере Android Studio https://developer.android.com/studio/run/win-usb.html
Для других устройств драйвера можно найти на сайте производителя, либо воспользоваться универсальным драйвером ADB Driver, либо в помощь сайт http://4pda.ru/ или гугл ☺
Слайд 24ADB Driver
Заходим на сайт http://adbdriver.com/downloads/
Качаем архив, распаковываем. Будут тонкости при установке
на Windows 8 или 10 (x64) !!!
http://adbdriver.com/documentation/how-to-install-adb-driver-on-windows-8-10-x64.html
http://www.howtogeek.com/126016/three-ways-to-access-the-windows-8-boot-options-menu/
Запускаем ADBDriverInstaller.exe
Нажимаем Install, перезагружаемся
Слайд 25Если Windows 8 x64
Как зайти в TroubleShoot:
Слайд 26Если Windows 8 x64
Нажимаем кнопку «Перезагрузить сейчас»
Слайд 27Если Windows 8 x64
После успешного включения режима Disable driver signature enforcement
и перезагрузки, устанавливаем драйвер, и на всякий случай ещё раз перезагружаемся
Как тестировать Android-приложения на реальном устройстве:
https://www.youtube.com/watch?v=Cm7GeUtjKDc
Слайд 28Понятие SDK
SDK (от англ. software development kit) — комплект средств разработки, который позволяет
специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ. SDK включает в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE).
Слайд 29Понятие IDE
Все современные интегрированные среды разработки приложений на Java, такие как
NetBeans IDE, Android Studio, IntelliJ IDEA, Eclipse - опираются на сервисы, предоставляемые SDK. Большинство из них для компиляции Java-программ используют компилятор из комплекта SDK. Скачать SDK можно (и нужно будет) по этой ссылке: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Слайд 30ПО для работы с Android
https://developer.android.com/studio/index.html
Слайд 31Обзор Android-эмуляторов
Что делать, если под рукой нет Android-устройства?
https://habrahabr.ru/post/218739/
Слайд 32Если нет устройства
Одним из простых вариантов настройки эмулятора является использование программы
BlueStacks:
Слайд 34Установка SDK
Установка необходимых компонентов SDK может занять от 2 до 10
минут, поэтому, самое время поговорить про Android, версии этой операционной системы и виды приложений.
Слайд 35Названия версий системы
Изначально Google рассчитывала давать версиям Android имена известных роботов, но отказалась из-за
проблем с авторскими правами. Каждая версия системы, начиная с версии 1.5, получает собственное кодовое имя на тему сладостей. Кодовые имена присваиваются в алфавитном порядке латинского алфавита.
Слайд 36Обновления версий Android
Android 1.0 «Apple Pie» (раннее название «Astroboy») - первая
стабильная версия системы, появился магазин приложений Android Market (23.09.2008)
Android 1.1 «Banana Bread» (раннее название «Bender») – специфическая версия, выпущенная специально для HTC Dream (09.02.2009)
Слайд 38Свежие версии Android
Дата выхода Marshmallow:
28 мая 2015 года
Дата выхода Nougat:
22 августа 2016
года
Слайд 39Android O (…O for Oreo ???)
https://developer.android.com/preview/index.html
Слайд 40Доли версий (на 30.05.2017)
https://developer.android.com/about/dashboards/index.html
Слайд 47Внешний вид нового проекта
После создания первого проекта ещё от 1 до
10 минут времени может уйти на индексирование библиотек SDK…
Слайд 48Виды Android-приложений
Приступая к разработке мобильных приложений хорошо иметь представление о том, какие
виды приложений существуют. Дело в том, что если удастся определить к какому типу относится приложение, то становится понятнее, на какие моменты в процессе его разработки необходимо обращать основное внимание.
Слайд 49Виды Android-приложений
Приложения переднего плана выполняют свои функции только, когда видимы на экране,
в противном же случае их выполнение приостанавливается. Такими приложениями являются, например, игры, текстовые редакторы, видеопроигрыватели. При разработке таких приложений необходимо очень внимательно изучить жизненный цикл активности, чтобы переключения в фоновый режим и обратно проходили гладко (бесшовно), т.е. при возвращении приложения на передний план было незаметно, что оно вообще куда-то пропадало. Для достижения этой гладкости необходимо следить за тем, чтобы при входе в фоновый режим приложение сохраняло своё состояние, а при выходе на передний план восстанавливало его.
Слайд 50Виды Android-приложений
Фоновые приложения после настройки не предполагают взаимодействия с пользователем, большую часть
времени находятся и работают в скрытом состоянии. Примерами таких приложений могут служить, службы экранирования звонков, SMS-автоответчики. В большинстве своем фоновые приложения нацелены на отслеживание событий, порождаемых аппаратным обеспечением, системой или другими приложениями, работают незаметно. Минимум действий, которые необходимо позволить пользователю: санкционирование запуска сервиса, настройка, приостановка и прерывание его работы при необходимости.
Слайд 51Виды Android-приложений
Смешанные приложения большую часть времени работают в фоновом режиме, однако допускают
взаимодействие с пользователем и после настройки. Обычно взаимодействие с пользователем сводится к уведомлению о каких-либо событиях. Примерами таких приложений могут служить мультимедиа-проигрыватели, программы для обмена текстовыми сообщениями (чаты), почтовые клиенты. Возможность реагировать на пользовательский ввод и при этом не терять работоспособности в фоновом режиме является характерной особенностью смешанных приложений. Такие приложения обычно содержат как видимые активности, так и скрытые (фоновые) сервисы, и при взаимодействии с пользователем должны учитывать свое текущее состояние. Возможно потребуется обновлять графический интерфейс, если приложение находится на переднем плане, или же посылать пользователю уведомления из фонового режима, чтобы держать его в курсе происходящего.
Слайд 52Виды Android-приложений
Виджеты - небольшие приложения, отображаемые в виде графического объекта на рабочем
столе. Примерами могут служить приложения для отображения динамической информации, такой как заряд батареи, прогноз погоды, дата и время.
Разумеется, ваши будущие сложные приложения смогут содержать элементы каждого из рассмотренных видов. Планируя разработку приложения, необходимо определить способ его использования, и только после этого приступать к проектированию и непосредственно разработке.
Слайд 53Что появится при запуске
На устройстве в диалоге нужно разрешить компьютеру отладку!
Тогда
в списке устройств появится нормальное название телефона.
Слайд 54Если устройство «не видится»
http://www.4tablet-pc.net/hints-and-tips/4322-android-hints-and-tips-unautorized-adb-message.html
Слайд 55Результаты
http://startandroid.ru/ru/uroki/vse-uroki-spiskom/12-urok-3-sozdanie-avd-pervoe-prilozhenie-struktura-android-proekta.html
Слайд 56Структура проекта
MainActivity – это Java-класс главного экрана приложения, который находится в
самом обычном текстовом файле с расширением .java.
Activity (деятельность, активность) – это компонент приложения, который предоставляет пользователю экран для того, чтобы сделать что-либо, например, набрать чей-то номер, сделать фото, отправить письмо и тд.
Слайд 57Практика – Drawer Project
Добавляем в проект файл для нового класса, отвечающего
за рисование:
Слайд 58Практика – Drawer Project
Называем этот класс MyDrawer:
Слайд 59Практика – Drawer Project
Добавляем в проект файл картинки:
Слайд 60Где находится картинка?
\\fs \ Преподаватели
\ Загоруйко А \ Public
Слайд 61Практика – Drawer Project
MainActivity.java:
https://git.io/vHG52
MyDrawer.java:
https://git.io/vHG5d
Слайд 62Практика – Drawer Project
Результат:
Слайд 63Практика
Используя методы работы с графикой, отобразить на экране Донателло:
Слайд 65Домашнее задание
Подключить устройство на домашнем компьютере
Установить драйвера для устройства
Скачать и установить
Java SDK
Скачать и установить Android Studio
Создать HelloWorld-проект
Слайд 66Домашнее задание
Ознакомиться с материалами презентации, пройти по всем ссылкам
Прочитать 1 и
2 главу книги «Программирование для Android»
Слайд 67Где забрать презентацию?
\\fs \ Преподаватели
\ Загоруйко А \ Public