Содержание

Android для чайников

Оглавление
Об авторе 15
О соавторе 15
Введение 16
Предназначение книги 16
Соглашения, используемые в книге 17
Основные предположения 18
Структура книги 18
Часть I. Гайки и винтики Android 18
Часть II. Создание и публикация приложения Android 18
Часть III. Создание мощных приложений 19
Часть IV. Великолепные десятки 19
Пиктограммы, используемые в книге 19
Что дальше 19
Ждем ваших отзывов! 20

Часть I. Начальные сведения об Android 21

Глава 1. Краткий обзор платформы Android 23
Зачем разрабатывать приложения для Android 23
Сегмент рынка 23
Время продавать 24
Открытая платформа 24
Совместимость с оборудованием 25
Мэшапы 25
Основы программирования для Android 26
Java в приложениях Android 27
Деятельности 27
Намерения 28
Безуказательные элементы управления 29
Видовые окна и виджеты 29
Асинхронные вызовы 30

Фоновые службы 31
Инструменты для работы с оборудованием 31
Сенсорный экран 33
GPS 33
Акселерометр 33
Карты памяти SD 34
Программные инструменты и ресурсы 34
Интернет 34
Поддержка звука и видео 35
Содержание 7
Список контактов 35
Безопасность 35
Библиотеки Google API 35

Глава 2. Подготовка инструментов разработки под Android 38
Как стать разработчиком приложений Android 38
Что понадобится 39
Исходные коды Android 39
Ядро Linux 2.6 39
Инфраструктура Android 40
Инфраструктура приложения 41
Библиотеки OHA 42
Язык Java 43
Настройка системы 44
Операционная система 44
Компьютер 44
Инсталляция и конфигурирование инструментов разработки 45

Установка JDK 46
Загрузка JDK 46
Инсталляция JDK 47
Установка Android SDK 48
Загрузка Android SDK 48
Конфигурирование расположения инструментов 50
Установка Eclipse 53
Выбор версии Eclipse 53
Инсталляция Eclipse 54
Конфигурирование Eclipse 56
Знакомство с инструментами разработки Android 59
Пакет Android SDK 60
Платформы Android 60
Использование инструментов SDK 61

Часть II. Создание и публикация приложения Android 65

Глава 3. Ваш первый проект Android 67
Создание проекта в Eclipse 67
Структура проекта 73
Сообщения об ошибках 73
Параметры Build Targetи Min SDK Version 74

Эмулятор 76
Конфигурирование параметров запуска приложения 79
Создание конфигурации отладки 79
Создание конфигурации выполнения 79
Содержание 8
Дублирование конфигураций запуска 82
Выполнение приложения 83
Выполнение приложения в эмуляторе 83
Информация о статусе развертывания 88
Папка проекта 89
Папки приложения 89
Файл манифеста приложения 97
Файл default.properties 99

Глава 4. Разработка пользовательского интерфейса для Android 101
Создание проекта Silent Mode Toggle 102
Компоновка приложения 103
Использование файла компоновки XML 105
Типы компоновок 107
Визуальная среда разработки 108

Открытие окна конструктора 108
Разработка пользовательского интерфейса 110
Атрибуты дескриптора компоновки 111
Размещение представлений в контейнере 111
Добавление изображения в приложение 112
Размещение изображения на экране 112
Добавление изображения в разметку XML 114
Создание значка запуска приложения 117
Создание пользовательского значка приложения 117
Добавление значка приложения в проект 118
Добавление кнопки 119
Приложение в режиме конструктора 120
Изменение цвета фона 121

Глава 5. Кодирование приложения 123
Что такое деятельность 123
Методы, стеки и состояния 124
Жизненный цикл деятельности 125
Создание деятельности 128

Начнем с метода onCreate 129
Объект Bundle 129
Отображение пользовательского интерфейса 129
Обработка действий пользователя 130
Создание обработчика события 131
Работа с базовыми классами Android 133
Программное управление звонком 134
Переключение режима звонка с помощью объекта AudioManager 135
Установка приложения 139
Возвращаемся к эмулятору 139
Установка приложения на физическое устройство Android 141
Переустановка приложения 143
Состояние эмулятора 143
Процесс переустановки 143
Отладка 144
Инструмент DDMS 144
Использование отладчика Eclipse 148
Выход за границы приложения 156
Взаимодействие с приложением 157
Тестирование приложения 157

Глава 6. Ресурсы Android 160
Типы ресурсов 160
Размеры 160
Стили 161
Темы 162
Значения 162
Меню 162
Цвета 162
Работа с ресурсами 163
Перенос строк в ресурсы 163
Оптимизация изображений 164
Локализация приложения с помощью ресурсов 165

Глава 7. Размещение виджетов на главном экране 168
Виджеты приложения в Android 169
Дистанционные представления 170
Использование класса AppWidgetProvider 171
Отложенные намерения 172
Система намерений Android 172
Данные намерений 173
Обработка намерений 174
Использование отложенных намерений 175
Создание виджета приложения на главном экране 176
Реализация объекта AppWidgetProvider 176

Взаимодействие с виджетом приложения 178
Компоновка виджета приложения 179
Выполнение нужных операций в объекте AppWidgetProvider 180
Метаданные виджета приложения 185
Регистрация новых компонентов в манифесте приложения 186
Добавление виджета на главный экран 188
Содержание 10

Глава 8. Публикация приложения на сайте Android Market 190
Создание распространяемого файла 190
Файл манифеста 191
Выбор наилучшего набора инструментов 192
Цифровая подпись приложения 192
Создание файла APK 193
Создание учетной записи Android Market 196
Выбор правильной цены приложения 202
Преимущества платной модели 203

Преимущества бесплатной модели 203
Создание снимков экрана с вашим приложением 203
Выгрузка приложения в Android Market 205
Наблюдаем за количеством установленных экземпляров 209

Часть III. Создание мощных приложений Android 211

Глава 9. Разработка приложения, напоминающего о задачах 213
Базовые требования к приложению 213
Боевая тревога по расписанию 214
Хранение данных 214
Деликатное напоминание 214
Создание экранов приложения 215
Создание нового проекта 215
Создание списка задач 216
Создание и редактирование деятельностей задач 217
Создание формы добавления и редактирования задач 218

Создание деятельности со списком 222
Создание фиктивных данных 223
Обработка событий щелчков 223
Идентификация намерения 226
Запуск новой деятельности с помощью намерения 226
Извлечение значений из предыдущих деятельностей 227
Создание окна выбора 228

Глава 10. Создание меню 230
Полезность меню 231
Создание меню выбора 231
Создание файла XML 231
Обработка действий пользователя 232
Создание задачи 234
Завершение деятельности 234
Создание контекстного меню 235
Создание файла XML контекстного меню 235
Содержание 11
Загрузка меню 236
Обработка выбора пользователя 236

Глава 11. Обработка вводимых данных

238
Создание интерфейса ввода 238
Создание виджета EditText 238
Отображение экранной клавиатуры 240
Выбор даты и времени 240
Создание кнопок выбора даты и времени 240
Подключение класса выбора даты 241
Подключение класса выбора времени 246
Создание окна предупреждения 248
Зачем нужны диалоговые окна 249
Выбор диалогового окна для фоновой задачи 250
Создание окна предупреждения 251
Проверка вводимых данных 253
Уведомления 254
Другие способы проверки данных 255

Глава 12. Хранение данных 256
Где лучше хранить данные 256
Варианты хранения 256
Выбор способа хранения 258
Получение разрешения от пользователя 258
Влияние разрешений на полезность приложения 259

Установка требуемых разрешений в файле манифеста 259
Создание базы данных SQLite 260
Как работает база данных SQLite 260
Создание файла Java с кодом базы данных 261
Определение ключевых элементов 261
Визуализация таблицы SQLite 262
Создание таблицы 263
Закрытие базы данных 265
Создание и редактирование задач с помощью SQLite 265
Вставка записи о задаче 266
Полная реализация класса RemindersDbAdapter 268
Возврат всех задач с помощью курсора 274
Класс SimpleCursorAdapter 277
Удаление задачи 277
Обновление задачи 278

Глава 13. Класс менеджера сигналов 283
Зачем нужен класс AlarmManager 283
Запуск процесса с помощью объекта AlarmManager 284

Создание класса ReminderManager 285
Создание класса OnAlarmReceiver 286
Создание класса WakeReminderIntentService 287
Создание класса ReminderService 290
Перезагрузка устройства 291
Создание приемника загрузки 291
Проверка приемника загрузки 293

Глава 14. Обновление строки состояния 294
Структура строки состояния 294
Значки строки состояния 294
Использование строки состояния для уведомления пользователя 294
Использование менеджера уведомлений 296
Создание уведомления 297
Последовательность этапов уведомления 299
Добавление строковых ресурсов 299
Изменение уведомления 300
Удаление уведомлений 300

Глава 15. Пользовательские настройки 301
Концепция настроек 301
Отображение списка настроек 302
Хранение настроек 302
Компоновка настроек 303
Создание экрана настроек 304
Создание файла настроек 304
Добавление строковых ресурсов 306
Класс PreferenceActivity 307
Активизация класса PreferenceActivity 309
Обработка выбора пункта меню 309
Работа с настройками во время выполнения 310
Извлечение настроек 310
Программная установка настроек 313

Часть IV. Великолепные десятки 315

Глава 16. Десять бесплатных приложений и средств разработки 317
Foursquare 318
LOLCat 318
Amazed 318
Примеры использования API-функций 319
Пример MultiResolution 319
Содержание 13
Пакет Last.fm 319
Hubroid 319
Facebook SDK для Android 320
Replica Island 320
Учебник по SQLite 320

Глава 17. Десять инструментов, которые облегчат вашу жизнь 321
droid-fu 321
RoboGuice 321
DroidDraw 321
Draw 9-patch 322
Hierarchy Viewer 322
Application Exerciser Monkey 322
zipalign 322
layoutopt 323
Git 323
Paint.NET и GIMP 323
Предметный указатель 325

www.htbook.ru

Android. Разработка приложений для чайников (Донн Фелкер, Джошуа Доббс)

В наше время миллиарды пользователей носят в кармане портативные устройства, и в половине из них установлена операционная система Android. Даже если вы никогда не разрабатывали приложения для мобильных устройств, прочитав эту книгу, вы сможете воплотить свои невероятные идеи в современные приложения для платформы Android. Здесь вы найдете подробные инструкции по загрузке и установке среды разработки и созданию приложений для Android. Прочитайте книгу и станьте настоящим профессионалом!

Добро пожаловать в Android! Научитесь создавать современные приложения для Android, использовать инструменты разработки, работать с экранами мобильных устройств и организовывать процесс разработки. Ваше приложение должно понравиться пользователям. Научитесь делать графический интерфейс приложения эстетически привлекательным и удобным для использования. Научитесь программировать приложения. Ознакомьтесь с жизненным циклом приложения и стандартными библиотечными классами Android. Научитесь пользоваться отладчиком Eclipse и эмулятором портативных устройств. Важны не только основы. Узнайте, как создавать приложения, взаимодействующие с базами данных SQLite и отображающие информацию на многих экранах. Назначьте цену и продайте свою разработку. Научитесь определять правильную цену собственным приложений и публиковать их в онлайн-магазине Android Market для продажи миллионам пользователей.

Скачать / Смотреть Google Drive

 

bunkerbook.ru

Урок 3. Создание AVD. Первое приложение. Структура Android-проекта.

Для того, чтобы тестировать приложения, нам понадобится Android Virtual Device (AVD). Это эмулятор Android-смартфона, на который мы сможем устанавливать созданные нами приложения, и запускать их там. Давайте его создадим.

 

Урок обновлен 04.06.2017

На прошлом уроке мы установили среду разработки и Android SDK.

Теперь наконец-то мы можем создать наше первое приложение и посмотреть, как оно работает.

Чтобы создать приложение, нам нужно в Android Studio создать проект. При создании проекта, в нем создается модуль. В этом модуле мы рисуем экраны приложения и пишем код. И при запуске этого модуля мы получаем готовое приложение. Поэтому модуль по сути и является приложением. А проект — контейнер для модуля.

Т.е. в самом простом случае структура проекта такова:

Есть проект, и в нем есть модуль. При запуске проекта запускается модуль и мы получаем Android-приложение, которое создано в этом модуле.

В этом случае: один проект = одно Android-приложение (один модуль).

 

Но в одном проекте может быть несколько модулей. Да и проектов можно создать несколько.

Здесь в первом проекте созданы два модуля, а во втором проекте – три модуля.

При запуске какого-либо проекта необходимо будет указать, какой именно модуль вы хотите запустить. И каждый модуль является отдельным Android-приложением.

Т.е. в этом случае: один проект = несколько Android-приложений (несколько модулей).

 

Пока не будем вдаваться в детали, какая из предложенных схем лучше и удобнее. Для прохождения уроков можно создать один проект, и в нем создавать модули для каждого урока. Либо можно создавать отдельный проект, например, на каждые 10 уроков. Можно вообще создавать отдельный проект на каждый урок.

Я думаю, что мы начнем с варианта: один проект под все уроки. А со временем, как освоитесь, сами решите, какой вариант вам удобнее.

 

Давайте создадим проект. Открываем Android Studio. Ярлык для запуска должен быть в меню пуск. Либо вы можете открыть папку, куда устанавливали Android Studio на прошлом уроке. В подпапке bin должен быть EXE-файл.

 

Открылась среда разработки. Жмем Start a new Android Studio project.

 

Появилось окно создания проекта. Давайте заполнять.

 

Application name – имя проекта. Оно будет отображаться в списке проектов при открытии Android Studio. Напишем здесь Android lessons (т.е. Android уроки).

Company Domain – имя сайта, пишем startandroid.ru.

Package name – это понятие из Java, подробно можно посмотреть здесь. Вкратце – это префикс для имени классов нашего приложения. Как видите, пакет автоматически составился из имени сайта и имени проекта. Его всегда можно отредактировать вручную нажав на ссылку edit справа.

Project location – папка на компе, где будут находиться все файлы проекта. Мы на прошлом уроке создавали папку android, куда установили Android Studio и SDK. Там же создайте папку AndroidStudioProjects – в этой папке будем хранить все проекты Android Studio. И в ней создайте папку Androidlessons для нашего текущего проекта.

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

Жмем Next

 

Визард спрашивает под какую платформу будем кодить и Minimum SDK (минимальная версия Android, на которой можно будет запустить приложение). Оставляем все как есть.

Жмем Next

 

Визард может подгрузить необходимые ему компоненты.

Жмем Next

 

 

Далее выберите Empty Activity.

Жмем Next

 

Здесь ничего не меняем. Пока что нам нет необходимости знать, зачем все это нужно.

Жмем Finish.

 

Проект создается

 

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

Если они вам не нужны, выключайте чекбокс. 

Жмем Close

 

Студия открылась

Но снизу виден прогресс бар. Это означает, что еще выполняются какие то действия, и надо подождать.

 

И в итоге проект открывается

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

 

В левой части мы видим слово app – это модуль. По умолчанию при создании проекта создается модуль app. Нам он не интересен, т.к. мы будем создавать свои модули. Но пусть он остается, удалять его я вам не советую. Тот визард, который мы только что прошли при создании проекта, в основном касался как раз этого модуля.

 

Итак, проект создан. Теперь создадим в проекте свой модуль. Повторюсь, что почти для каждого урока мы будем создавать модуль в этом проекте. Сейчас создадим модуль (приложение) для этого текущего урока. Эта процедура будет частично похожа на создание проекта, но с небольшими отличиями.

Чтобы создать модуль – в меню выбираем File -> New -> New module

Тип модуля выбираем Phone and Tablet Application

Жмем Next

 

Заполняем поля

Application/Library name – непосредственно имя приложения, которое будет отображаться в списке приложений в смартфоне. Пишем тут FirstProject.

Module name – это название модуля. Т.е. это название будет отображаться слева в списке модулей, там, где сейчас есть app. Давайте придумаем шаблон для названия модулей.

Например: p<номер урока(000)><номер проекта в уроке(0)>.

На номер урока выделим три цифры, на номер проекта – одну. Также, будем добавлять название приложения — FirstProject. И все это напишем маленькими буквами и без пробелов. Получится такое имя модуля: p0031firstproject.

Package name – имя пакета отредактируем вручную, нажав edit справа. Оставим там ru.startandroid и добавим точку и имя модуля.

Minimum SDK оставляйте без изменений.

Жмем Next

 

Далее выберите Empty Activity.

 Жмем Next

 

Здесь ничего не меняем

 Жмем Finish и ждем.

 

Через какое-то время модуль будет создан и мы увидим его в списке слева. Это p0031firstproject — значение, которое мы указали в поле Module name.

Можно раскрыть этот модуль и посмотреть его содержимое.

Вкратце пройдемся по интересующим нас элементам

Файл AndroidManifest.xml – манифест или конфиг-файл приложения

В папке java и ее подпапках будет весь, написанный нами, код приложения

Папка res используется для файлов-ресурсов различного типа.

 

Все это мы будем в дальнейшем использовать, и станет понятнее, что и зачем нужно.

 

Давайте наконец-то запустим наше первое приложение! Для этого надо выбрать соответствующий ему модуль в выпадающем списке сверху

И жмем (чуть правее списка) кнопку с зеленым треугольником (либо комбинацию Shift+F10).

 

Чтобы запустить приложение, нужно какое-нить реальное Android-устройство или эмулятор.

У нас пока не на чем запускать приложение. Можете подключить шнуром реальное устройство, и оно здесь появится (если не возникнет проблем с драйверами или настройками устройства).

Либо можно создать эмулятор. Жмем Create New Virtual Device

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

Жмем Next

 

Далее переходите на вкладку x86 Images и там должен быть образ, в названии которого нет слова Download. Т.е. он уже загружен и мы можем его использовать.

В данном случае на эмулятор будет установлен Android версии 7.1.1. Если вам нужна другая версия, то загружайте ее и используйте.

Жмем Next

 

Далее нам предлагают указать название эмулятора и поменять его настройки. Оставляем все как есть 

 Жмем Finish

 

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

Жмем Ok

 

Через какое-то время (вплоть до нескольких минут) появится эмулятор

 

 

И в нем начнет запускаться Android

 

И в итоге запустится наше приложение

Название в заголовке — FirstProject. Именно его мы указывали при создании приложения.

Т.е. вы создали и запустили ваше первое приложение, с чем вас и поздравляю) Впереди сотни таких приложений и запусков.

 

Если эмулятор не показал ваше приложение, то убедитесь, что Android Studio «видит» этот эмулятор. Для этого снизу слева нажмите вкладку Android Monitor

И в списке устройств чуть выше должен быть виден эмулятор Nexus_5X_API_25

Если эмулятор есть в списке, а приложение не отобразилось, то попробуйте снова запустить приложение, нажав зеленый треугольник (Shift+F10).

Если эмулятора в списке нет, то закройте эмулятор и попробуйте снова запустить приложение.

 

 

Этот урок был обновлен в июне 2017. А многие последующие уроки были написаны аж в 2011-2012. Поэтому скриншоты в них могут отличаться от ваших. Это нормально.

Также, должен предупредить, что я делал и тестировал первые уроки под Android версии 2.3.3. Это указано в начале уроков. Но это вовсе не означает, что уроки уже безнадежно устарели и читать их смысла нет никакого. Код под 2.3.3 и 7.1.1 в подавляющем большинстве случаев абсолютно один и тот же. В новых версиях Android добавляются новые компоненты, а прошлые обычно остаются без изменений и достаточно редко меняются или объявляются устаревшими.

 

P.S.

Если у вас открыт проект и вы хотите снова увидеть стартовое окно Android Studio, в меню выберите File > Close Project.

Вы увидите стартовое окно, слева будет список ваших проектов.

 

P.S.S.

Если у вас имя пользователя русскими буквами, то могут возникнуть проблемы. Как их решить, можно прочесть на форуме в ветке этого урока.

Если строка выше не помогла, то попробуйте еще такое решение.

 

На следующем уроке будем добавлять в наше приложение различные элементы и менять их свойства.


Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование 

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме 



startandroid.ru

Курс для начинающих разработчиков Android приложений. Часть 1. Приступаем к работе. — Fandroid.info

Добро пожаловать на Курсы для разработчиков Android. Здесь вы найдете наборы уроков в рамках курсов, которые описывают, как выполнить определенную задачу с примерами кода, которые вы можете повторно использовать в вашем приложении.

Если данные курсы покажутся вам сложными или непонятными, смотрите более наглядные Видеоуроки по разработке android-приложений с нуля

Если вы не владеете начальными знаниями языка программирования java, добро пожаловать на Курс java для начинающих android-разработчиков

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

  1. Установить среду разработки Android Studio или Eclipse с Android SDK Tools
  2. Создать и запустить первое приложение на Android
  3. Добавить в android-приложение  поддержку различных Android устройств
  4. Узнать, что такое жизненный цикл Activity и как ним управлять
  5. Построить динамический пользовательский интерфейс используя фрагменты
  6. Реализовать сохранение данных в android-приложении
  7. Обеспечить взаимодействие с другими android-приложениями

 


1. Установка среды разработки android приложений

Чтобы создавать приложения для android, нужно установить необходимые компоненты, представляющие собой среду разработки и инструменты разработчика. Приложения для андроид-устройств пишутся на языке программирования java, поэтому в первую очередь нужно установить и настроить набор инструментов JDK  (Java Development Kit). Затем установите среду разработки на выбор: Android Studio или Eclipse, и набор инструментов Android SDK к ним.

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

Android Studio — более молодая среда разработки, тем не менее быстро набирающая популярность как более интеллектуальная и удобная. Кроме того, Android Studio активно развивается и поддерживается компанией Google как официальная среда разработки андроид-приложений.

Выбор среды разработки остается за вами, в наших уроках мы будем демонстрировать обе.

Установка JDK  (Java Development Kit)

Установка Android Studio

Установка Eclipse (на выбор)

Добавление пакетов Android SDK Manager

 


2. Создание вашего первого приложения

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

Создание Android проекта

Запуск android-приложения

Построение простого пользовательского интерфейса

Запуск другой Activity — второго окна приложения

 


3. Поддержка различных Android устройств

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

Поддержка различных языков в Android приложении

Поддержка различных экранов Android устройств

Поддержка различных версий платформы Android

 


4. Управление жизненным циклом Activity

О методах жизненного цикла Activity, и о том, как обеспечить юзабилити, реализуя callbacks методы жизненного цикла.

Запуск Activity

Приостановка и возобновление Activity

Остановка и перезапуск Activity

Повторное создание Activity

 


5. Построение динамического пользовательского интерфейса с использованием Фрагментов

Как построить пользовательский интерфейс для вашего приложения, который является достаточно гибким, чтобы представить несколько компонентов пользовательского интерфейса на больших экранах и ограниченного набора компонентов пользовательского интерфейса на экранах меньшего размера — основы для создания единого APK для телефонов и планшетов.

Создание фрагмента

Построение гибкого пользовательского интерфейса

Связь с другими фрагментами

 


6. Сохранение данных

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

Сохранение наборов ключ-значение

Сохранение файлов

Сохранение данных в SQL базу данных


7. Взаимодействие с другими приложениями

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

Отправка пользователя в другое приложение

Получение результата от Activity

Разрешение другим приложениям запускать вашу Activity

Часть 2. Создание android приложений с возможностью обмена данными>>

Перевод с сайта developer.android.com. Если не указано иное, этот контент распространяется под лицензией Creative Commons Attribution 2.5. Для получения дополнительной информации и ограничений, см. Лицензия контента.

www.fandroid.info

Android: программирование для начинающих

XXI век. Эпоха цифровых технологий и интернета. Реальность все увереннее становится виртуальной. Сегодня чуть ли не каждый первый житель любой развитой страны не расстается со смартфоном. И если часть отдает предпочтение модным Iphone и операционной системе IOS, то большинство пользуется устройствами на Android. Ведь они дешевле и выбор приложений гораздо богаче. И чтобы создавать такие приложения, нужны специально обученные люди, называемые программистами. Что нужно знать и уметь для того, чтобы погрузиться в Android-программирование?

Инструменты для разработки

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

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

Для того чтобы тестировать творения, нужен смартфон с операционной системой Android. Версия системы должна быть как минимум предпоследней. Это важно, потому что скорость развития новых гаджетов и программного обеспечения просто сумасшедшая, каждый день выходят различные обновления, разрабатываемое приложение должно одинаково хорошо работать как на старых, так и на новых устройствах. Программирование Android-приложений требует постоянной слежки за последними новостями из области технологий.

Установка необходимого ПО

Перед началом разработки на компьютер следует установить драйверы для смартфона. Это если на компьютере установлена Windows. Остальные системы обходятся без специальных драйверов. Искать их лучше на официальном сайте производителя устройства. Если в процессе программирования будут возникать вопросы (а они будут возникать постоянно), то нужен доступ к интернету. Разработка под Android происходит в программе «Андроид Студио». Скачивается она с официального сайта. Разработана программа компанией Google.

Какие выбрать источники?

При обучении категорически не нужно читать абсолютно все источники информации, проходить все курсы и уроки из Всемирной паутины и просматривать все видео. Нужно уметь находить правильную и актуальную информацию. Android-программирование таково: то, что было новым год назад, сегодня устарело. Если обучение проходит под руководством человека, то этот учитель должен быть мастером своего дела. Плохой программист ничему не научит, после потраченного времени придется переучиваться вновь.

Какую книгу выбрать? Хорошо себя зарекомендовала книга из серии Head First «Программирование для Android». В ней в доступной для новичка форме описан весь процесс. Авторы выбрали не скучную и монотонную, а юмористическую манеру изложения материала с массой интересных заданий.

Язык программирования

Основным языком, на котором разрабатываются приложения, является Java. Поэтому нужно знать его хотя бы на начальном уровне для того, чтобы Android-программирование давалось легко. Без знаний Java ничего не выйдет. Это один из самых востребованных по всему миру языков программирования. Он в освоении намного проще, чем языки C и C++. Java строго типизирован, и это привьет хорошие манеры написания кода. Для изучения этого языка тоже есть книга от Head First. Программирование для Android осилит любой желающий. Главное, чтобы была мотивация.

Мотивация и способы изучения

Для начала можно начинать с 15 минут в день. Если будет затягивать, то постепенно добавлять по 5 минут. На первых порах нет нужды в многочасовом сидении за компьютером. Такое под силу только профессионалам. Да и желание может пропасть.

Программированием интереснее заниматься не в одиночку. Можно найти желающих среди знакомых. Если таковых нет, то всегда есть интернет. Социальные сети и форумы помогут найти единомышленников. А такая группа фанатов программирования в дальнейшем может превратиться в крупную международную корпорацию.

На первых порах можно просматривать чужой код и стараться его понять, внести какие-то свои правки. Исходники всегда можно найти в свободном доступе. Затем можно придумать приложение для друга или кого-то из родных и попытаться его реализовать. Даже полноценно работающий простой калькулятор, написанный своими руками, будет радовать новичка. Дальше можно усложнять задания. Самое главное – практиковаться ежедневно. Теория – это хорошо, но без практики программистами не становятся.

Есть один хороший прием при изучении: при прохождении новой темы надо попытаться объяснить ее другому человеку. Если он поймет, значит, цель достигнута и тема усвоена.

Может наступить момент, когда захочется бросить Android-программирование. Сложности бывают всегда, но не нужно унывать. Не надо гнаться за профессионалами, главное, чтобы занятия были регулярными, и со временем уровень обязательно улучшится, а сложности покажутся смешными. В конце концов, программирование – это очень интересно и, как дополнение, прибыльно и перспективно. Ведь сейчас даже для функционирования чайника нужно писать программу.

fb.ru

Как начать разработку приложений под Android? :: SYL.ru

В наши дни разработка приложений под Android – это одна из наиболее перспективных областей ведения бизнеса, построения карьеры. Можно работать в офисе, можно – удаленно, а можно и вовсе быть «свободным художником», получая и сдавая заказы через Интернет, здесь же получая заработную плату. Если выбрать для себя разработку приложений под Android, можно работать хоть на мальдивском пляже – мечта, да и только! Правда, к этому нужно уметь прийти, добиться этого, ведь не каждый может стать разработчиком. Возможна ли такая карьера с нуля и как ее правильно начать?

Программирование – это интересно

Чтобы создать хорошее приложение, нужно разбираться и в той платформе, для которой оно предназначается, и в ресурсах, которые необходимо реализовать в проекте. Конечно же, нужно в совершенстве обладать всеми инструментами в выбранной сфере программирования, чтобы код был качественным, чистым, без ошибок, недочетов и «букашек». Зачастую новички спрашивают: «Что нужно для разработки приложений под Android?». В первую очередь – общие представления о правилах программирования, а также особенностях выбранной операционной системы.

В настоящее время специалистов, способных создавать действительно хороший код приложений, немного, поэтому на рынке наблюдается нехватка профессионалов – ниша полупустая. А вот горе-программистов, которые вроде и могут что-то написать, да только качество готового проекта совсем не так высоко, как ожидает заказчик, – целое море. Конечно, чтобы разработка мобильных приложений под Android, iOS приносила приличный доход, нужно принадлежать ко второй категории.

Начинаем правильно

Начинается разработка приложений под Android с изучения ООП – объектно-ориентированных языков программирования. При этом владеть ими нужно не на уровне общего представления, а глубоко, чтобы разрабатывать качественный код. Этот навык необходим любому программисту, не важно, под какую платформу он собирается писать.

Высокое значение языка программирования – базовая способность для разработки приложений под Android. В совершенстве владея техническим языком, можно включиться в сложный проект, взять на себя задачи тим-лидера и (закономерно!) получать большое финансовое вознаграждение за труды. А вот человеку, только-только начинающему с ООП, рассчитывать на существенные деньги не приходится. Впрочем, и ответственность на него обычно возложена несерьезная.

Читать – не перечитать!

Чтобы освоить разработку мобильных приложений под Android, iOS, необходимо начать с освоения логики технического языка. На помощь приходят специализированные издания, созданные профессионалами специально для новичков. Обычно они называются «Разработка для чайников», «Введение в основы», «Разработка мобильных приложений под Android: уровень 1» или наподобие. Придется очень внимательно изучить выбранное издание (скорее всего, не одно), чтобы освоить самые базовые понятия, логику технического языка. Эти книги формируют у начинающего программиста представление о процессе разработки ПО в общих чертах.

Следующий шаг – это более глубокое погружение в среду. В магазинах можно найти большое разнообразие книг а-ля «Разработка мобильных приложений под Android: уровень 2», «Программирование для продолжающих» и «Как начать писать свои приложения?». Чем больше литературы удастся изучить, освоить, понять, тем эффективнее получится работать.

На чем пишем?

С чего начать разработку приложений под Android? Как говорят опытные программисты, для начала нужно понять, с каким языком программирования проще и легче работать, что больше подходит для воплощения в жизнь поставленных перед новичком задач. В настоящее время активно используются Java, C++, Visual C#. Преимущественно останавливаются на «Джаве» как оптимальном варианте для создания разнообразного софта – вплоть до довольно интересных игр. Важное преимущество этого языка – возможность реализации кроссплатформенных приложений, то есть таких, которые одновременно могут функционировать под разными ОС. Да и, как известно, зарабатывают на разработке приложений под Android больше всех те, чьи приложения на этапе публикации подходят не только для этой ОС, но и iOS, Windows Phone. С другой стороны, воплотить в жизнь такой проект будет посложнее, чем под одну платформу.

Если через книги разработку приложений под Android Eclips было решено осваивать с использованием языка программирования Visual C#, тогда можно рассчитывать на поддержку мирового сообщества программистов. Дело в том, что специалистами были созданы огромные базы данных, библиотеки, содержащие дополнительное программное обеспечение. Это означает, что программист пишет код так, как ему удобнее, а специальные алгоритмы перевода позволяют перекодировать результат в инструкции конкретной операционной системы.

С чего начать?

Три первичных условия, обладание которыми позволяет ответить на все вопросы о том, как создать разработку приложений под Android:

  • Среда разработки.
  • Эмулятор ОС.
  • Сборщик кода.

Планируя, как начать разработку приложений под Android, необходимо заранее продумать в будущем возможности улучшения, усовершенствования, развития приложения. Обычно пользователи ждут от полюбившегося, полезного приложения регулярных обновлений, меняющих не только дизайн, но и функциональные возможности. Все качественные продукты регулярно совершенствуются (между прочим, сама ОС «Андроид» тоже). В то же время обновления должны сопровождаться сохранением высокого уровня стабильности, то есть качество приложения по умолчанию поддерживается высоким.

Новейшие технологии для нового проекта

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

В то же время разработка мобильных приложений под Android – это не гонка вооружений, нет необходимости постоянно осваивать новинки мира программирования, толком не разобравшись с тем, что было выпущено, изобретено, сконструировано ранее. Новичкам лучше писать приложения, пользуясь теми новыми решениями, к которым уже есть обучающий материал, накоплен опыт решения проблем, возникающих при работе в среде программирования. Многие начинающие программисты нуждаются в подсказке и совете, и по самым передовым технологиям получить их зачастую просто неоткуда. Но и пренебрегать новыми изданиями тоже нельзя – важно отслеживать веяния в выбранной сфере, чтобы успешно прогнозировать, на что будет спрос на рынке программирования в ближайшем и отдаленном будущем. Это позволит задать для себя правильный курс совершенствования в качестве программиста приложений.

Инструментарий – первая необходимость

Невозможно представить себе плотника без молотка, строителя без мастерка и водителя без машины. Точно так же и программист не может работать без среды разработки. Есть несколько вариантов, нет универсального рецепта по выбору оптимального для себя. Чаще всего прибегают к вариантам «Эклипс» (разработка «Нетбинс») и «Визуал Студио» (авторство «Майкрософт»). Есть и пакеты помельче, имеющие свои положительные и отрицательные стороны. Чтобы понять, где работать легче, а процесс получается более продуктивным, стоит попробовать сначала два самых известных варианта, а затем – другие, более экзотические, если первые два не подходят.

Определившись со средой программирования, приступают к выбору эмулятора «Андроид». Это такое программное решение, в котором можно быстро посмотреть, что уже запрограммировано, насколько это успешно работает, какие ошибки выдает. Словом, эмулятор позволяет увидеть промежуточный результат работы. Эмулятором называют надстройку среды, в которой ведется программирование. Он предназначается для тестирования и показывает, как приложение поведет себя, если будет поставлено на реальный девайс под управлением ОС «Андроид». Основное преимущество эмулятора – защищенность устройства при крахе приложения. Если что-то запрограммировано ошибочно, система оповестит об этом, но техника не пострадает. Как говорят профессионалы в своей области, для новичков особенно важно освоить использование эмулятора, чтобы не рисковать рабочей техникой без необходимости.

А нужно ли мне это?

Уже из описанного (а это лишь верхушка айсберга под названием «Разработка мобильных приложений») у многих новичков может возникнуть впечатление, что «овчинка выделки не стоит», проще говоря, слишком много усилий нужно приложить, да и сама работа слишком сложна, поэтому не стоит даже и браться за нее. Но на самом деле все совсем не так. Действительно, начать писать хорошие приложения непросто, зато результат того стоит.

В настоящее время спрос на профессионалов в области программирования мобильных приложений растет изо дня в день. Это связано и с распространением смартфонов, и с политикой крупных компаний («Гугл», «Майкрософт»), поощряющих лучших разработчиков. Став действительно высококлассным профессионалом, можно попытаться попасть в штат даже этих всемирно известных фирм! Но для этого нужно приложить усилия и начинать нужно уже сейчас. Впрочем, если говорить о реальных перспективах, то тут лучше вспомнить о тенденции последних лет – почти каждая более-менее крупная фирма хочет иметь собственное мобильное приложение, так как считается, что это позволяет удержать клиента. Должен же кто-то разрабатывать эти приложения! А потом обновлять их, поддерживать, улучшать. Словом, работы непочатый край, если уметь делать свое дело.

Задачи специфические, требования общие

Большинство современных вакансий начинаются с требования уметь работать в команде. Несмотря на бытующий стереотип о том, что программисты – люди, оторванные от социума, для них также важно умение сотрудничать между собой. Над разработкой одного приложения обычно трудится команда, включающая в себя менеджеров, тестировщиков, проектировщиков, программистов и дизайнеров. Конечно, при создании совсем небольшого приложения все эти функции могут делегироваться к одному человеку, но фактически такой подход практикуется очень редко.

Чтобы добиться успеха в программировании, нужно задать себе четкую установку на командную работу. Ну, а чтобы стать ценным членом команды, нужно постараться получить неплохой опыт решения самых разных задач. Как показывает практика, самые важные участники команды разработчиков – те, кто могут справиться с внештатными ситуациями, комбинировать известные подходы и находить уникальные решения сложившейся ситуации самостоятельно. Новичок, вписываясь в команду к опытным разработчикам, должен не просто выполнять указания старших, но и анализировать их действия, применять полученную информацию на практике. Только в таком случае можно рассчитывать на карьерный рост.

Стабильность и развитие

Как показывают проведённые исследования, преимущественно разработчики выбирают наиболее удобную для себя среду программирования и в будущем все время работают в ней, отслеживая все новейшие тенденции, методики и инструменты, словом, не распыляются. Во многом, из-за такого подхода многие считают, будто бы слова Android и Eclipse являются синонимами, ведь чаще всего именно к «Эклипс» прибегают, когда пишут приложения для «Андроид». Студия «Нетбинс» создала уникальный программный инструмент, подходящий для совсем небольших и очень крупных, масштабных проектов. Его универсальность и спровоцировала такую популярность.

Привет, мир!

Разработка программного обеспечения для смартфонов, управляемых ОС «Андроид», – это не просто создание заглавной странички с приветствием. Это довольно большой объем работ по проектированию, оформлению, программированию, продвижению и сопровождению объекта. При этом надежный исполнитель всегда заранее оговаривает сроки, к которым работу нужно завершить, и тщательно их придерживается. Конечно, если предупредить, что фирма-заказчик имеет дело с новичком, возможно, просрочки будут прощены, но это губит репутацию.

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

Через тернии – к звездам!

Чтобы не сомневаться в своих способностях справиться даже со сложной ситуацией, необходимо регулярно уделять время специализированной литературе по выбранной для себя области деятельности. Наверняка удастся почерпнуть из нее новую информацию о решениях, подходах, методиках, о новом варианте использования логики языка. Если однажды сложится проблемная ситуация, именно такой материал может послужить источником вдохновения для решения проблемы.

Помните, что фирменное приложение для любой современной компании является элементом престижа, а значит, задания по разработке подобных проектов будут актуальны довольно долгое время. Это та область, в которую перспективно вкладывать силы, время и средства. В то же время нельзя насиловать себя. Если новичок попробовал программирование под «Андроид» и осознал, что ему эта область не интересна, совершенно непонятна и не дается, стоит попробовать поискать себя в чем-то еще. Программирование требует специфической системы мышления, и она, действительно, дана не всякому. Поэтому главное – не сдаваться и продолжать искать свое призвание.

www.syl.ru

Урок 1. Введение.

Добрый день!

Это урок-введение. Здесь мы пока ничего кодить не будем, я распишу причины, которые побудили меня создать этот сайт.

Я начал свое знакомство с разработкой под Android с примеров на официальном сайте. Половину того, чего делал — не понимал. Но какие-то знания оттуда вынес и немного почитал теории на том же ресурсе. На этом мое знакомство с Android завершилось ) Я не знал куда двигаться дальше. Про книги я почему-то не подумал, а зря …

Позже я наткнулся на статью «Five of the best Android development books». Интерес снова появился, стало понятно куда двигаться, я начал читать эти книги. Понял не все, но уже гораздо больше чем с первых примеров. Но если читать такие книги полностью с нуля, то многое будет не очевидно и непонятно.

Поэтому я хочу попытаться создать уроки по Android для начинающих, чтобы у читателя за спиной не оставалось непонятных ему тем. Я постараюсь максимально подробно все объяснять и делать различные примеры для большей наглядности. С каждым новым уроком буду вводить и использовать новые понятия и объекты, и использовать объекты из прошлых уроков для закрепления.

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

В отличие от некоторых авторов я не собираюсь научить вас программированию за «24 часа» или за «30 уроков». Мы все понимаем, что это невозможно )  Я не знаю, сколько у меня получится уроков. Думаю, что хватит около сотни, чтобы дать весь базис достаточно подробно. А потом еще сотня уйдет на различные продвинутые фишки. В общем тем, кто начинает изучать, скорее всего не придется много бегать по другим сайтам (кроме официального хелпа) за дополнительными знаниями. Здесь вы найдете много полезной, последовательной и изложенной простым языком информации.

Надо понимать, что мои уроки это не всегда руководство «как именно надо делать». Я могу чем-то пренебречь и что-то упустить, чтобы показать тему урока и не давать лишний материал. Поэтому прошу не считать все изложенное в уроках единственно правильным способом реализации. 

Если у вас возникают проблемы с Android, то у сайта есть замечательный форум, который всегда рад помочь новичкам разобраться даже в самых простых вопросах. Правда, он защищен от спамеров контрольным вопросом и ответить на него, чтобы зарегиться, вы сможете только прочитав первые пять уроков. Это вынужденная защита. Зато, с момента введения этого вопроса, на форум не проник ни один спамер!  

На данный момент уроки охватывают темы:

— создание экрана (в редакторе и программно) 
— обработчики нажатия
— логи и всплывающие сообщения
— обычное меню, контекстное меню
— анимация View-компонентов
— создание и вызов Activity (+ возврат результата)
— Activity Lifecycle (состояния Activity)
— Intent, Intent Filter
— хранение данных (Preferences, SQLite)
— список и адаптеры
— диалоги
— Parcel, Parcelable
— Preferences при хранении настроек приложения
— работа с файлами
— Tab вкладки
— парсинг XML
— асинхронность (Handler, AsyncTask)
— сервисы
— Content Provider
— обработка касаний, мультитач
— фрагменты
— Action Bar, ActionMode
— виджеты
— ключи и подпись приложения
— ViewPager
— воспроизведение звука и видео
— запись звука
— работа с камерой
— сенсоры
— GPS
— Google Maps
— рисование 


Я продолжаю читать книги и уроки будут появляться, пока я сам буду развиваться. В итоге, я думаю, мы придем к тому, что станем достаточно продвинутыми разработчиками, востребованными на рынке. В общем, как говорит один клоун из зомбоящика — «не переключайтесь» )  Будет интересно!

На следующем уроке мы установим и настроим среду разработки Android-приложений.

P.S.

Разработка ведется на Java. Также могут понадобиться знания SQL, XML и прочих смежных технологий. Считается, что вы знакомы с ними. Если нет, то что-нибудь базисное по Java надо будет прочесть. 

Гугл периодически выпускает обновления Android и для среды разработки. Поэтому вполне возможно, что содержимое урока немного устарело и реальная картинка отличается от скринов. Если это отличие кардинально или примеры не работают, пишите об этом на форуме в ветке урока. Будем актуализировать. Если же отличие только в цвете фона приложения или размере шрифта, то это, конечно, не критично и на посыл урока не влияет.  

Также замечено, что поведение кода на разных версиях системы может быть различным. Я не проверял работоспособность материалов уроков на всех возможных версиях, поэтому ваши результаты могут отличаться от моих.

 

P.P.S

Иногда звучат высказывания, что большинство уроков сделаны для Android 2.3, а сейчас уже вышел Android версии, например, 100500 и уроки устарели. Один чудик как-то вообще написал, что уроки на 90% состоят из deprecated методов. Очень я не люблю комментировать чушь, но для начинающих я выскажу свое мнение по поводу этого всего дилетантства.

Я не могу с каждым выходом новой версии андроида переделывать все уроки. Тем более что, переделывать то ничего и не надо. Подавляющее большинство уроков останется прежними и все будет отлично работать на любой версии. К тому же доля устройств на Android 2.Х еще пока достаточно велика, чтобы ею пренебречь. И вы в ваших приложениях будете минимальную версию указывать 2.2 или 2.3, чтобы не потерять целый сегмент пользователей. Так что я не понимаю, в чем смысл кипиша. 

Да, есть такое, что с выходом новых версий, некоторые уроки действительно кардинально устаревают и их надо обновлять. Это, например, коснулось Урока 52, и я сделал его обновление в отдельном уроке. Но постоянно отслеживать и обновлять целый урок из-за того, что там теперь один метод (о ужас-ужас!!!) deprecated — это тяжко. Не забывайте, что я занимаюсь сайтом в свое свободное время. И я лучше потрачу его на написание новых материалов, чем на отслеживание и фикс устаревших методов.

Гуглохелп обычно для устаревших методов дает ссылку на новый метод. Так что если видите, что Eclipse ругается на устаревший метод, то просто ищете его в хелпе и смотрите, чем его заменили.

 

P.P.P.S

По Android Studio ситуация примерно та же. Не вижу смысла переходить на AS, т.к. главное в уроках — это код, а не среда разработки. Разве что, несколько первых уроков потом продублирую для AS


Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование 

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме 



startandroid.ru