Руководство по разработке android

#Руководства

  • 18 июл 2018

  • 1

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

 vlada_maestro / shutterstock

Анатолий Ализар

Пишет про разработку в Skillbox Media. Работал главным редактором сайта «Хабрахабр», ведёт корпоративные блоги.

Язык программирования для мобильной разработки на Android очень простой — это Java. Сейчас Google активно продвигает Kotlin как язык, который сможет заменить Java. Приложения пишут и на C++.

Создание простейшего приложения состоит из нескольких этапов:

  • проект в Android Studio;
  • создание пользовательского интерфейса;
  • добавление активностей, навигации и действий;
  • тест-драйв приложения в эмуляторе.

Первым делом установите программу Android Studio. Это официальная среда разработки (IDE) для Android, она работает на Windows, macOS и Linux. Хотя при разработке программ для Android можно использовать и другие среды, кроме Android Studio.

Если на компьютере не установлены Android SDK и другие компоненты, то Android Studio автоматически скачает их. Android SDK — это среда программирования, в которую входят библиотеки, исполняемые файлы, скрипты, документация и т.д.

Android SDK компилирует код вместе с любыми данными и ресурсами в файл с расширением .apk. Он содержит всё необходимое для установки приложения на Android-устройство.

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

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

Android-приложение состоит из четырёх компонентов. Каждый компонент — это точка входа, через которую система или пользователь может получить доступ.

  • Активность (activity) — элементы интерактивного пользовательского интерфейса.
    Одна активность задействует другую и передаёт информацию о том, что намерен делать пользователь, через класс Intent (намерения). Активности подобны веб-страницам, а намерения — ссылкам между ними. Запуск приложения — это активность Main.
  • Сервис (service) — универсальная точка входа для поддержания работы приложения в фоновом режиме.
    Этот компонент выполняет длительные операции или работу для удалённых процессов без визуального интерфейса.
  • Широковещательный приемник (broadcast receiver) транслирует нескольким участникам намерения из приложения.
  • Поставщик содержимого (content provider) управляет общим набором данных приложения из файловой системы, базы данных SQLite, интернета или другого хранилища.

Теперь попробуем сделать своё приложение для Android.

Выбираем название приложения, домен компании, путь к проекту и название пакета. Указываем, включить ли поддержку опциональных языков программирования C++ и Kotlin.

Задаём одну или несколько целевых платформ для сборки. Для этого используется SDK и AVD, менеджер виртуальных устройств Android. Инструмент позволяет устанавливать в SDK пакеты, которые поддерживают несколько версий ОС Android и несколько уровней API (интерфейсов программирования приложений).


Справка

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


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

После нескольких минут сборки Android Studio открывает интерфейс IDE. Здесь три основных момента.

Если выбрать в выпадающем меню вид Android, то вы увидите файлы проекта. Например, наша основная активность называется app > java > ru.skillbox.skillboxapp > FullscreenActivity. При создании проекта мы указали вместо активности Main полноэкранную активность.

Далее можно посмотреть файл app > res > layout > activity_fullscreen.xml. Это XML-файл с макетом для UI нашей основной активности.

Наконец, третий важный файл app > manifests > AndroidManifest.xml описывает фундаментальные характеристики приложения и определяет все его компоненты.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.skillbox.skillboxapp">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Созданное нами приложение — это одна активность, которая запускается в полноэкранном режиме и не имеет графических элементов.

Запускаем на Android-устройстве или в эмуляторе.

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

Для запуска в эмуляторе нажимаем в Android Studio кнопку Run в меню Run (Shift+F10). Выбираем подходящее устройство и версию ОС, портретную или ландшафтную (альбомную) ориентацию.

Android Studio установит эмулятор и запустит его.

Пользовательский интерфейс Android-приложения создаётся через иерархию макетов (layouts, объекты ViewGroup) и виджетов (объекты View). Макеты управляют расположением дочерних виджетов на экране. Сами виджеты — это непосредственно компоненты UI: кнопки, текстовые поля на экране и т.п.

Интерфейс активностей создаётся в Android Studio в редакторе макетов (Layout Editor) и хранится по большей части в XML-файлах.

  • Открываем файл app > res > layout > activity_fullscreen.xml.
  • Добавляем на экран из палитры (Palette) виджеты перетаскиванием мышью.
  • Например, берём текстовое поле (PlainText). Это виджет EditText, куда пользователь может вводить текст.
  • Добавляем кнопки и другие нужные элементы.

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

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

  • Заходим в код app > java > FullscreenActivity.
  • Добавляем метод SendMessage() в класс FullscreenActivity, чтобы при нажатии на кнопку вызывался этот метод.
  • Создаём намерения (класс Intent) для перехода от одной активности к другой, новые активности, навигацию и всё остальное, что необходимо для приложения.

И, конечно, начинаем мечтать, как монетизировать приложение.

Научитесь: Профессия Мобильный разработчик
Узнать больше

Android – базирующаяся на ОС Linux операционная система с открытым исходным кодом, предназначенная для мобильных устройств – таких, как, например, смартфоны или планшетные компьютеры.

Это руководство предназначено для введения в основные понятия программирования под Android, так что после его изучения вы будете понимать некоторые базовые концепции программирования под эту ОС.

От вас же, в свою очередь, требуется только желание и базовое понимание программирования на языке Java. Не так много, правда? Что ж, начнём!

Среда разработки

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

  • Microsoft Windows XP или более поздняя версия
  • Mac OS X 10.5.8 или более поздняя версия с чипом Intel
  • Linux, включающая GNU C Library 2.7 или более позднюю версию

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

  • Java JDK5 или более поздняя версия
  • Android Studio

Структура приложений

Поздравляем, ваше оборудование готово к работе! Однако прежде чем приступить к вашему первому приложению, поговорим о том, что из себя представляет приложение на Android и из чего оно состоит.

Компоненты приложения являются своего рода «строительными блоками» для приложения Android. Эти компоненты связаны файлом-манифестом приложения AndroidManifest.xml, который описывает каждый компонент приложения и взаимодействие этих компонентов между собой.

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

  • Операции (Activities) представляют собой элементы пользовательского интерфейса (одна операция – один экран) и отвечают за взаимодействие пользователя с экраном мобильного устройства;
  • Службы (Services) представляют собой длительные операции, работающие в фоновом режиме и не имеющие пользовательского интерфейса (например, передача данных), вместо этого они, как правило, запускаются иными элементами, уже имеющими пользовательский интерфейс, и взаимодействуют с ними;
  • Приемники широковещательных сообщений (Broadcast receivers) представляют собой компоненты, реагирующие на объявления самой ОС, передаваемые всей системе (как хороший пример – объявление о низком уровне заряда батареи устройства). Они также не имеют пользовательского интерфейса, однако могут передавать данные другим компонентам, где они демонстрируются пользователю в виде уведомлений;
  • Поставщики контента (Content providers) представляют собой компоненты, управляющие взаимодействием приложения с его базой данных — посредством поставщика контента другие компоненты приложения могут запрашивать или изменять данные.

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

  • Фрагменты (Fragments) – части пользовательского интерфейса в Операциях (см. выше);
  • Виды (Views) – элементы пользовательского интерфейса, отображаемые на экране, например, кнопки, списки и т. д.;
  • Макеты (Layouts) – определяют элементы пользовательского интерфейса, их свойства и расположение;
  • Намерения (Intents) – соединяют вместе различные компоненты приложения или связывают друг с другом работу разных приложений;
  • Ресурсы (Resources) – внешние элементы, такие, как строки, константы или изображения;
  • Манифест (Manifest) – конфигурационный файл приложения.

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

Первое приложение

Итак, давайте приступим к созданию простого Android-приложения, которое будет выводить на экран «Hello World!».

У вас к этому времени уже должен быть установлен Android Studio последней версии. Ниже будет приведена небольшая пошаговая инструкция:

  1. Откройте Android Studio.
  2. В открывшемся окне кликните на «Start a new Android Studio project», чтобы создать новый проект.
  3. В открывшемся окне в строку «Application name» введите название вашего будущего приложения. Нажмите Next.
  4. В следующем окне вам нужно выбрать тип устройств, для которых создается приложение – в нашем случае необходимо выбрать «Phone and Tablet» (смартфоны и планшетные компьютеры), а в выпадающем списке под названием «Minimum SDK» нужно выбрать версию Android, для которой создается приложение (обычно указывается самая ранняя версия, способная запустить приложение) – в нашем конкретном случае выберем версию Android 6.0. Если в вашей версии есть возможность выбрать язык программирования (выпадающее окно Language), выберите пункт “Java”. Остальные опции можно оставить без изменений. Нажмите Next.
  5. На следующем этапе выберите пункт Empty Activity – это будет означать, что экран нашего приложения не будет иметь никаких дополнительных элементов. Нажмите Next.

Теперь перед вами открылась привычная среда разработки. К сожалению или к счастью, но сейчас вам не нужно будет писать код – среда разработки уже сделала это за вас, создав файлы для приложения, выводящего «Hello world!» на экран, по умолчанию. Вместо этого хотелось бы обратить ваше внимание на несколько созданных файлов и папок, найти которые вы можете в колонке слева, отображающей все элементы проекта.

  • Файл MainActivity.java

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

  • Файл AndroidManifest.xml

Это файл типа «Манифест», который описывает основные характеристики приложения и определяет каждый из его компонентов. Он является своего рода интерфейсом между ОС Android и вашим приложением – если компонент не упомянут в этом файле, он не будет отображен и в операционной системе.

  • Файл Build.gradle

Это автоматически генерируемый файл, содержащий определённые данные касательно приложения – такие, как, например, версия SDK.

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

Запуск приложения на эмуляторе

Попытайтесь запустить приложение кнопкой «Run» – в появившемся диалоговом окне выберите пункт «Create New Virtual Device». В последующих окнах нужно будет выбрать размер экрана и версию Android – помните, что она должна быть не ниже, чем указанная на этапе создания проекта. В случае, если данная версия Android будет отсутствовать на компьютере, Android Studio предложит ее загрузить. Остальные пункты можно оставить без изменений – на данный момент нет необходимости их изменять. После выбора всех настроек нажмите кнопку «Finish», и если вы увидели на своем мониторе экран телефона с названием вашего приложения сверху и с надписью «Hello world!» на экране, значит, вы можете себя поздравить – вы создали свое первое Android-приложение!

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

Также можно научиться создавать приложения на Android и другие ОС после прохождения нашего шестимесячного курса «Профессия: Разработчик» 👉 Узнать подробности!

Урок 1. Введение. 26 июля 2011

Урок 2. Установка Android Studio 28 июля 2011

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

Урок 4. Компоненты экрана и их свойства 04 августа 2011

Урок 5. Layout-файл в Activity. XML представление. Смена ориентации экрана. 08 августа 2011

Урок 6. Виды Layouts. Ключевые отличия и свойства. 11 августа 2011

Урок 7. Layout параметры для View-элементов. 15 августа 2011

Урок 8. Работаем с элементами экрана из кода 18 августа 2011

Урок 9. Обработчики событий на примере Button. 22 августа 2011

Урок 10. Оптимизируем реализацию обработчиков. 25 августа 2011

Урок 11. Папка res/values. Используем ресурсы приложения. 29 августа 2011

Урок 12. Логи и всплывающие сообщения 01 сентября 2011

Урок 13. Создание простого меню 05 сентября 2011

Урок 14. Меню, группы, порядок. MenuInflater и xml-меню. 08 сентября 2011

Урок 15. Контекстное меню 12 сентября 2011

Урок 16. Программное создание экрана. LayoutParams 15 сентября 2011

Урок 17. Создание View-компонент в рабочем приложении 19 сентября 2011

Урок 18. Меняем layoutParams в рабочем приложении 22 сентября 2011

Урок 19. Пишем простой калькулятор 26 сентября 2011

Урок 20. Анимация 29 сентября 2011

Урок 21. Создание и вызов Activity 03 октября 2011

Урок 22. Intent, Intent Filter, Context — теория 06 октября 2011

Урок 23. Activity Lifecycle. В каких состояниях может быть Activity 10 октября 2011

Урок 24. Activity Lifecycle, пример смены состояний с двумя Activity 13 октября 2011

Урок 25. Task. Что это такое и как формируется 17 октября 2011

Урок 26. Intent Filter — практика 20 октября 2011

Урок 27. Читаем action из Intent 24 октября 2011

Урок 28. Extras — передаем данные с помощью Intent 27 октября 2011

Урок 29. Вызываем Activity и получаем результат. Метод startActivityForResult 31 октября 2011

Урок 30. Подробнее про onActivityResult. Зачем нужны requestCode и resultCode 03 ноября 2011

Урок 31. Зачем у Intent есть атрибут data. Что такое Uri. Вызываем системные приложения 07 ноября 2011

Урок 32. Пишем простой браузер 10 ноября 2011

Урок 33. Хранение данных. Preferences. 14 ноября 2011

Урок 34. Хранение данных. SQLite 17 ноября 2011

Урок 35. SQLite. Методы update и delete с указанием условия 21 ноября 2011

Урок 36. SQLite. Подробнее про метод query. Условие, сортировка, группировка 24 ноября 2011

Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLite. Метод rawQuery. 28 ноября 2011

Урок 38. Транзакции в SQLite. Небольшой FAQ по SQLite. 01 декабря 2011

Урок 39. onUpgrade. Обновляем БД в SQLite 05 декабря 2011

Урок 40. LayoutInflater. Учимся использовать. 08 декабря 2011

Урок 41. Используем LayoutInflater для создания списка 12 декабря 2011

Урок 42. Список — ListView 15 декабря 2011

Урок 43. Одиночный и множественный выбор в ListView 19 декабря 2011

Урок 44. События в ListView 22 декабря 2011

Урок 45. Список-дерево ExpandableListView 26 декабря 2011

Урок 46. События ExpandableListView 29 декабря 2011

Урок 47. Обзор адаптеров 12 января 2012

Урок 48. Используем SimpleAdapter. 16 января 2012

Урок 49. SimpleAdapter. Методы SetViewText и SetViewImage 19 января 2012

Урок 50. SimpleAdapter. Используем ViewBinder 23 января 2012

Урок 51. SimpleAdapter, добавление и удаление записей 26 января 2012

Урок 52. SimpleCursorAdapter, пример использования 30 января 2012

Урок 53. SimpleCursorTreeAdapter, пример использования 02 февраля 2012

Урок 54. Кастомизация списка. Создаем свой адаптер 06 февраля 2012

Урок 55. Header и Footer в списках. HeaderViewListAdapter 09 февраля 2012

Урок 56. Spinner – выпадающий список 13 февраля 2012

Урок 57. GridView и его атрибуты 16 февраля 2012

Урок 58. Диалоги. TimePickerDialog 20 февраля 2012

Урок 59. Диалоги. DatePickerDialog 23 февраля 2012

Урок 60. Диалоги. AlertDialog: Title, Message, Icon, Buttons 27 февраля 2012

Урок 61. Диалоги. AlertDialog.Метод onPrepareDialog 01 марта 2012

Урок 62. Диалоги. AlertDialog. Список 05 марта 2012

Урок 63. Диалоги. AlertDialog. Список с одиночным выбором 08 марта 2012

Урок 64. Диалоги. AlertDialog. Список с множественным выбором 26 марта 2012

Урок 65. Диалоги. AlertDialog. Кастомизация 29 марта 2012

Урок 66. Диалоги. Обработчики и операции 02 апреля 2012

Урок 67. Диалоги. ProgressDialog 05 апреля 2012

Урок 68. Немного о Parcel 09 апреля 2012

Урок 69. Передаем Parcelable объекты с помощью Intent 12 апреля 2012

Урок 70. onSaveInstanceState. Сохранение данных Activity при повороте экрана 16 апреля 2012

Урок 71. Preferences как настройки приложения. PreferenceActivity 19 апреля 2012

Урок 72. Preferences. Список, экраны и категории 23 апреля 2012

Урок 73. Preferences. Управляем активностью настроек (setEnabled) 26 апреля 2012

Урок 74. Preferences. Программное создание экрана настроек 30 апреля 2012

Урок 75. Хранение данных. Работа с файлами. 03 мая 2012

Урок 76. Tab — вкладки. Общий обзор 07 мая 2012

Урок 77. Tab — вкладки. TabActivity. Activity, как содержимое вкладки 10 мая 2012

Урок 78. Tab — вкладки. TabContentFactory, ручное создание содержимого вкладки 14 мая 2012

Урок 79. XmlPullParser. Парсим XML 17 мая 2012

Урок 80. Handler. Немного теории. Наглядный пример использования 21 мая 2012

Урок 81. Handler. Посылаем простое сообщение 24 мая 2012

Урок 82. Handler. Пример с более содержательными сообщениями 28 мая 2012

Урок 83. Handler. Отложенные сообщения, удаление из очереди, Handler.Callback 31 мая 2012

Урок 84. Handler. Обработка Runnable 04 июня 2012

Урок 85. Еще несколько способов выполнения кода в UI-потоке 07 июня 2012

Урок 86. AsyncTask. Знакомство, несложный пример 11 июня 2012

Урок 87. AsyncTask. Параметры. Промежуточные результаты 14 июня 2012

Урок 88. AsyncTask. Итоговый результат. Метод get 18 июня 2012

Урок 89. AsyncTask. Cancel – отменяем задачу в процессе выполнения 21 июня 2012

Урок 90. AsyncTask. Status – статусы задачи 25 июня 2012

Урок 91. AsyncTask. Поворот экрана 28 июня 2012

Урок 92. Service. Простой пример 02 июля 2012

Урок 93. Service. Передача данных в сервис. Методы остановки сервиса 05 июля 2012

Урок 94. Service. Подробно про onStartCommand 09 июля 2012

Урок 95. Service. Обратная связь с помощью PendingIntent 12 июля 2012

Урок 96. Service. Обратная связь с помощью BroadcastReceiver 16 июля 2012

Урок 97. Service. Биндинг. ServiceConnection 19 июля 2012

Урок 98. Service. Локальный биндинг 23 июля 2012

Урок 99. Service. Уведомления — notifications 26 июля 2012

Урок 100. Service. IntentService. Foreground. Автозагрузка сервиса 30 июля 2012

Урок 101. Создаем свой ContentProvider 07 августа 2012

Урок 102. Touch – обработка касания 13 августа 2012

Урок 103. MultiTouch – обработка множественных касаний 17 августа 2012

Урок 104. Android 3. Fragments. Lifecycle 27 августа 2012

Урок 105. Android 3. Fragments. Динамическая работа 03 сентября 2012

Урок 106. Android 3. Fragments. Взаимодействие с Activity 10 сентября 2012

Урок 107. Android 3. ActionBar. Размещение элементов 19 сентября 2012

Урок 108. Android 3. ActionBar. Навигация — табы и выпадающий список 27 сентября 2012

Урок 109. Android 3. Fragments. ListFragment — список 08 октября 2012

Урок 110. Android 3. Fragments. DialogFragment — диалог 18 октября 2012

Урок 111. Android 3. Fragments. PreferenceFragment — настройки. Headers 29 октября 2012

Урок 112. Android 3. ActionBar. Динамическое размещение элементов 07 ноября 2012

Урок 113. Android 3. ActionMode, как альтернатива контекстному меню 19 ноября 2012

Урок 114. Android 3. Библиотека Support Library. Зачем нужна и как ее использовать на примере фрагментов 26 ноября 2012

Урок 115. Одно приложение на разных экранах 07 декабря 2012

Урок 116. Поведение Activity в Task. Intent-флаги, launchMode, affinity 17 декабря 2012

Урок 117. Виджеты. Создание. Lifecycle 14 января 2013

Урок 118. Виджеты. Конфигурационный экран. Обновление 23 января 2013

Урок 119. PendingIntent – флаги, requestCode. AlarmManager 04 февраля 2013

Урок 120. Виджеты. Обработка нажатий 13 февраля 2013

Урок 121. Виджеты. Список 25 февраля 2013

Урок 122. Виджеты. Превью, изменение размера, экран блокировки, ручное обновление 06 марта 2013

Урок 123. Как подписать приложение. Утилиты keytool и jarsigner 18 марта 2013

Урок 124. Что такое Package для приложения 28 марта 2013

Урок 125. ViewPager 08 апреля 2013

Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основные возможности 29 апреля 2013

Урок 127. Медиа. SoundPool 27 мая 2013

Урок 128. Медиа. Audio Focus 10 июня 2013

Урок 129. Медиа. Запись звука с помощью MediaRecorder 24 июня 2013

Урок 130. Медиа. Запись звука с помощью AudioRecorder 22 июля 2013

Урок 131. Камера. Используем системное приложение 19 августа 2013

Урок 132. Камера. Вывод изображения на экран. Размер preview. Обработка поворота устройства 30 сентября 2013

Урок 133. Камера. Делаем снимок и пишем видео 14 октября 2013

Урок 134. Камера. Настройки 29 октября 2013

Урок 135. Loader. LoaderManager. AsyncTaskLoader 11 ноября 2013

Урок 136. CursorLoader 18 ноября 2013

Урок 137. Сенсоры. Ускорение, ориентация. 09 декабря 2013

Урок 138. Определение местоположения. GPS координаты. 16 декабря 2013

Урок 139. Google maps. Создание и настройка проекта. Карта, камера, события 13 января 2014

Урок 140. Google maps. Свои объекты на карте 27 января 2014

Урок 141. Рисование. Доступ к Canvas 03 февраля 2014

Урок 142. Рисование. Простые фигуры, текст 10 февраля 2014

Урок 143. Рисование. Path 17 февраля 2014

Урок 144. Рисование. Matrix-преобразования 24 февраля 2014

Урок 145. Рисование. Matrix. setRectToRect и setPolyToPoly 03 марта 2014

Урок 146. Рисование. Canvas-преобразования. Методы save и restore. 10 марта 2014

Урок 147. Рисование. Region 17 марта 2014

Урок 148. Рисование. Canvas, clip 24 марта 2014

Урок 149. Рисование. Текст 07 апреля 2014

Урок 150. Рисование. PathMeasure – информация о Path-объекте 28 апреля 2014

Урок 151. Рисование. PathEffect 14 июля 2014

Урок 152. Рисование. Picture 21 июля 2014

Урок 153. Рисование. ColorFilter, ColorMatrix 28 июля 2014

Урок 154. Рисование. PorterDuff.Mode, PorterDuffXfermode 18 августа 2014

Урок 155. Рисование. PorterDuffColorFilter 25 августа 2014

Урок 156. Рисование. AvoidXfermode 01 сентября 2014

Урок 157. Рисование. Bitmap. BitmapFactory. Чтение, вывод на канву, основная информация 06 октября 2014

Урок 158. Рисование. Bitmap. Методы createBitmap, работа с пикселами, density, mutable 13 октября 2014

Урок 159. Рисование. Bitmap. BitmapFactory.Options, сохранение в файл 20 октября 2014

Урок 160. Рисование. Bitmap. Чтение изображений большого размера 27 октября 2014

Урок 161. Рисование. Bitmap. Memory-кэш. Picasso 05 ноября 2014

Урок 162. Графика. Drawable. Shape, Gradient. 18 ноября 2014

Урок 163. Графика. Drawable. Bitmap, Layer List, State List. 01 декабря 2014

Урок 164. Графика. Drawable. Level List, Transition, Inset, Clip, Scale 10 августа 2015

Урок 165. Графика. BitmapShader, LinearGradient, RadialGradient, SweepGradient 24 августа 2015

Урок 166. Графика. Создание своего Drawable 07 сентября 2015

Урок 167. Рисование. Метод Canvas saveLayer. 21 сентября 2015

Урок 168. OpenGL. Введение. 08 октября 2015

Урок 169. OpenGL. Шейдеры 27 октября 2015

Урок 170. OpenGL. Графические примитивы 10 ноября 2015

Урок 171. OpenGL. Цвет. 23 ноября 2015

Урок 172. OpenGL. Perspective. Frustum. Ortho. 08 декабря 2015

Урок 173. OpenGL. Камера 27 января 2016

Урок 174. OpenGL. Модель 16 февраля 2016

Урок 175. OpenGL. Текстуры. 01 марта 2016

Урок 176. OpenGL. Индексы, текстуры для куба. 11 апреля 2016

Урок 180. ConstraintLayout. Основы 07 июля 2017

Урок 181. ConstraintLayout: match_constraints, инструменты в toolbar, guidelines, aspect ratio 09 июля 2017

Урок 182. ConstraintLayout: chain, weight, barrier, group, circular 12 июля 2017

Урок 183. ConstraintSet. Программная настройка ConstraintLayout 17 июля 2017

Урок 184. Android Notifications. Уведомления. Основы 14 ноября 2017

Урок 185. Notifications. Режимы открытия Activity 13 ноября 2017

Урок 186. Notifications. Расширенные уведомления 20 ноября 2017

Урок 187. Notifications. Action кнопки. Reply. 23 ноября 2017

Урок 188. Notifications. Кастомные уведомления 27 ноября 2017

Урок 189. Notifications. Группировка уведомлений 29 ноября 2017

Урок 190. Notifications. Каналы 01 декабря 2017

Время на прочтение
5 мин

Количество просмотров 1.1M

Здравствуйте. Сегодня на глаза попался пост о курсе программирования под Android на сайте Linux Foundation, а вместе с ним — и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.

Программирование под Android для начинающих. Часть 1

Смартфоны и планшеты на Android все чаше встречаются в наших сумках и карманах, и программирование под Android также становится все популярнее. Это отличная платформа для разработки — API прекрасно документирован и прост в использовании, да и просто интересно создать что-то, что вы cможете запустить на своем смартфоне. Изначально вы можете обойтись и без него, создав и протестировав код с помощью эмулятора на вашем Linux ПК. В первой из двух частей этого введения объясняется как создать простое приложение с таймером, а также даются начальные сведения о Android API. Курс подразумевает наличие начальных представлений о Java, XML и технологиях программирования, но тем не менее не стесняйтесь попробовать даже если вы имеете об этом очень смутное представление.

Начало работы и среда разработки

Немного о версиях: последней версией Android является 4.2 (Jelly Bean), но, как можно выдеть по этой диаграмме, она еще недостаточно распространена. Лучше всего начинать разработку под одну из версий: 4.0 (Ice Cream Sandwich) или 2.3 (Gingerbeard), особенно с учетом того, что версии Android поддерживают обратную совместимость (т.е. ваш код для версии 2.3 будет работать и на 4.2), а приложения, разработанные для более поздней версии, не всегда будут работать и на старой. Приведенный здесь код должен работать на версиях 4.0 и 2.3.
Простейший способ получить среду разработки — установить Android Bundle, который можно скачать здесь. Также вам понадобится JDK 6 (не только JRE). Не забудьте что Android не совместим с gcj. Если вы уже используете Eclipse или другую IDE, то вы можете попробовать настроить ее под Android. Как это сделать — описано здесь. Теперь создайте проект под именем Countdown с помощью Eclipse, или из командной строки. Я установил в настройках BuildSDK 4.0.3 и minimum SDK 2.2, и (в Eclipse) использовал шаблон BlankActivity.
image

Мой первый проект под Android: интерфейс

Первой нашей программой под Android будет таймер, показывающий обратный отсчет от 10 секунд после нажатия кнопки. Прежде чем писать код, нужно создать интерфейс — то, что пользователь увидит, запустив наше приложение. Нужно открыть res/layout/activity_countdown.xml и создать XML шаблон — с помощью редактора Eclipse или текстового/XML редактора ввести следующее:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
      <TextView 
          android:id="@+id/time_display_box" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_alignParentTop="true" 
          android:layout_centerHorizontal="true" 
          android:layout_marginTop="60dp" 
          android:text="@string/_00_30" 
          android:textAppearance="?android:attr/textAppearanceLarge"/>
      <Button
          android:id="@+id/startbutton"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@+id/time_display_box"
          android:layout_centerHorizontal="true"
          android:layout_marginTop="41dp"
          android:text="@string/start" />
    
</RelativeLayout>

Обратите внимание на string/start и string/__00_30. Их значения будут расположены в res/values/strings.xml:

<string name="start">Start</string>
<string name="_00_30">00:30</string>

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

Мой первый проект под Android: код

Теперь откроем в редакторе файл CountdownActivity.java — и мы готовы писать код нашего приложения. Вы должны увидеть автоматически сгенерированную «заглушку» метода onCreate(). Он всегда вызывается как только создается объект Activity, и в него вы можете поместить какие-либо функции, которые должны выполняться при запуске приложения. (Eclipse также может создать пустой метод onCreateOptionsMenu(), но мы пока не будем обращать на него внимания). Введите следующий код:

public class CountdownActivity extends Activity {
	
  private static final int MILLIS_PER_SECOND = 1000;
  private static final int SECONDS_TO_COUNTDOWN = 30;
  private TextView     countdownDisplay;
  private CountDownTimer timer;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_countdown);
        
    countdownDisplay = (TextView) findViewById(R.id.time_display_box);
    Button startButton = (Button) findViewById(R.id.startbutton);
    startButton.setOnClickListener(new View.OnClickListener() {
      public void onClick(View view) {
        try {
          showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND);
        } catch (NumberFormatException e) {
          // method ignores invalid (non-integer) input and waits
          // for something it can use
        }
      }
    });
  }
}

Вы видите как просто оказалось создать наш первый проект: Android API включает в себя CountDownTimer, который мы можем использовать. Мы объявили его и поле отображения обратного отсчета как закрытые (private) свойства класса Activity. В методе onCreate() мы использовали метод setContentView, чтобы подключить наш XML-шаблон. Такой R.foo.bar синтаксис — это стандартный способ обращения к XML-ресурсам в Android, и мы встретимся с ним еще много раз.
findViewById — это еще один метод, который вы будете часто использовать. Здесь он возвращает ссылки на поле вывода таймера и кнопку Start, описанные в XML-шаблоне. Для кнопки, чтобы мы могли обработать ее нажатие, должен быть задан «перехватчик» OnClickListener, и его метод onClick(). Здесь он просто вызывает метод showTimer() c заданным числом миллисекунд (сейчас жестко заданным в коде).

Итак, что делает showTimer():

private void showTimer(int countdownMillis) {
  if(timer != null) { timer.cancel(); }
  timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) {
  @Override
  public void onTick(long millisUntilFinished) {
    countdownDisplay.setText("counting down: " +
    millisUntilFinished / MILLIS_PER_SECOND);
  }
  @Override
    public void onFinish() {
      countdownDisplay.setText("KABOOM!");
    }
  }.start();
}

Класс CountDownTimer делает за нас почти всю работу, что очень приятно. В начале мы проверяем, существует ли уже таймер, и, если он есть, то сбрасываем его. Далее мы создаем новый таймер с заданным числом миллисекунд для обратного отсчета (из параметра метода showTimer()) и с заданным числом миллисекунд между интервалами отсчета. По истечении времени между интервалами вызывается метод onTick().

CountDownTimer — абстрактный класс, и методы __onTick() и __onFinish() должны быть реализованы в его подклассе. Мы переопределяем метод onTick(), уменьшающий выводимое число на единицу по истечении каждого интервала, и метод onFinish(), выводящий на дисплей сообщение о окончании обратного отсчета. Потом start() запускает таймер.

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

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

Более подробную информацию вы можете найти в разделе Android Development Training сайта The Linux Foundation’s Linux training website.

Juliet Kemp
Оригинал статьи

Before diving into the vast field of Android Development, there is a need to understand the tool required for it. The name of the tool is Android Studio, used for developing Android Applications. Android Studio is developed by Google and Jetbrains. It’s the most widely used software for developing Android Applications. So in this article, there is a deep discussion about Android Studio. Like how to install it, tips and tricks that increase productivity while developing an Android application. So stay tuned till the end.

A-Complete-Guide-to-Learn-Android-Studio-for-Android-App-Development

So in this article, we have covered the following things:

  1. What is Android Studio?
  2. How to Install Android Studio?
  3. File Structure of a Project in Android Studio
  4. Writing first Android Studio Application
  5. Understanding the Designing Part
  6. Understanding the Coding Part
  7. Run Android App
  8. Essential Android Studio Keyboard Shortcuts
  9. Some Android Studio Tips and Tricks
  10. Complete Android Studio Tutorial

1. What is Android Studio?

Before starting and learning any programming language, the one thing required to learn to program is IDE (Integrated Development Environment). It provides a convenient way to write code. If there are any errors or bugs after compiling, they can be debugged. So, Android Studio is an official IDE for developing Android applications. It provides features that enrich productivity while writing code. It provides features like:

  • A flexible Gradle build system, easy to manage all the dependencies in a single place.
  • It allows you to run and test applications if one doesn’t have an Android smartphone. Because of its feature-rich emulator, it can run one or more emulators at a time to test client-server applications. And it also allows you to run and test physical Android Smartphones.
  • It provides a unified environment so that applications can be developed for all types of Android devices.
  • Intelligent code completion feature.
  • Predefined code templates.
  • Git integration makes developers maintain repositories, and also helps to build common app features and import sample code.
  • C++ and Native Development Kit(NDK) support.

2. How to Install Android Studio?

To install Android Studio, visit the Android Studio Download page. Make sure to install the latest stable version of the Android Studio. Before installing the Android Studio, check the system requirements on the same page, so that the system meets its minimum requirement to run Android Studio smoothly. Visit Android Install and Set up Android Studio in Windows. To find out how to install the Android Studio on Windows OS-based systems. Or one may visit the official page Install Android Studio to find out how to install Android Studio on Windows, Mac, and Linux.

3. File Structure of a Project in Android Studio

Android studio project folder structure: There are two view types of the project file structure in Android Studio. One is Android View(Summarised), another is Project View(Detailed View). Most beginners use the Android View(Summarised). Have a look at the following image to see the differences between these views. One can read the detailed info about the Android project folder structure here: Android Project folder Structure

Android Studio Application File structure:

This folder is responsible for holding the Application’s Manifest file, looking at the main application’s Business logic (Java/Kotlin), drawable files (images, vector graphics), Application’s UI layout files, mipmap (app’s icon files), colors(application’s branding color), strings(all the texts, used for localizing the application), styles(predefined or user-defined styles of application), app-level gradle file(managing the dependencies). To find out more about the app file structure read: Android Application File Structure

Application Manifest File: The manifest file is an important part of our app because it defines the structure and metadata of our application, its components, and its requirements. This file includes nodes for each of the Activities, Services, Content Providers, and Broadcast Receiver that make the application and, using Intent Filters and Permissions, determine how they co-ordinate with each other and other applications. To get more insights about the Android Manifest read: The Application Manifest File. The typical very basic manifest file looks like this:

res/values folder: The values folder used to store the values for the resources that are used in many Android projects includes features of color, styles, dimensions, padding values, margin values, etc. There are 4 main files under the res/values folder. Those are: colors.xml, dimens.xml, strings.xml, styles.xml. Read on the res/values folder to find out the details of the res/values folder. Have a look at the following image where it’s found:

build.gradle file: Gradle is a build system (open source) that is used to automate building, testing, deployment, etc. Every Android project needs a Gradle for generating an apk from the .java and .xml files in the project. It is located in the root project directory and its main function is to define the build configurations that will be applied to all the modules in the project. Read: build.gradle and get to know more about the various build.gradle. Have a look at the following image to get the location of build.gradle files.

Assets Folder: Assets provide a way to add arbitrary files like text, XML, HTML, fonts, music, and video in the application. If one tries to add these files as “resources“, Android will treat them into its resource system and you will be unable to get the raw data. Read Assets Folder in Android Studio for a detailed view of the assets folder. Have a look at the following image to get the location of the assets folder in Android Studio.

Resource Raw Folder: The raw folder in Android is used to keep mp3, mp4, sfb files, etc. The raw folder is created inside the res folder: main/res/raw. So we will simply create it inside the res folder. Read: Resource Raw Folder in Android Studio to know details about the raw folder. Have a look at the following image to get the location of the folder where it needs to be created:

Logcat window: Logcat Window is the place where various messages can be printed when an application runs. Suppose, you are running your application and the program crashes, unfortunately. Then, Logcat Window is going to help you to debug the output by collecting and viewing all the messages that your emulator throws. Read: Logcat window in Android Studio to know more about the Logcat in Android Studio. Have a look at the following image to locate the Logcat window:

debug.keystore file: is one of the most important files which is present in almost every application when we download that app from the Google Play Store. This file is basically considered as the certificate of any application which is being verified by Google each and every time. Each app that you are using on your phone needs to be signed. Read: Where is debug.keystore in Android Studio? to know where it is located and to generate the certificate for the Android app.

4. Writing first Android Studio Application

As in features of Android Studio, it’s mentioned that Android Studio provides various numbers of templates by default. It allows you to select them before creating a project. To create a new project click on “Create New Project“.

After clicking, another new window pops up to select several predefined templates. Pick what suits the current project needs. If there is no desired template, choose “Empty Activity” and click on the “Next” button.

To find out more on this, refer to Android Studio Main Window

After clicking on the Next button, another window pops up asking to enter the name of the project, package name, location to save the project, programming language to select(as two programming languages are supporting Kotlin & Java), and the minimum SDK API level (The minimum API level that is supported by the app). After entering the information, click on the “Finish” button.

Congratulations, the first Android Studio project is ready. Initially, it shows the tip of the day, which gives tips to improve work efficiency. Before going to explore the Android Studio, get familiar with the initial screen which is shown below.

For a better understanding of the Android Studio environment, it has been divided into 4 parts:

1. Menu Part: In this section, it provides options to create a new project, open an existing android studio project, a button to run the application, dropdown for selecting the desired device to run and test an application on.

2. Coding Area: This section provides for writing code for files like .xml, .java, .kt. It allows you to open multiple files at a time in different tabs, but it allows you to edit one file at a time.

3. Project Structure: This area allows us to explore every file of the project. There are various views of the structure. Android is a summarised view of the project structure hierarchy and Project is a detailed view of the project hierarchy. Have a look at the following image.

4. Current Execution Part: One of the most important parts of the Android Studio environment. It provides a detailed view of the current execution of the process or activity. It shows what errors, build outputs, logcat results, etc.

5. Understanding the Designing Part

All the UI layouts of the application can be found under the res/layout directory. These are of the .xml extension, responsible for building the UIs for application. Android Studio provides two types of ways of designing UI for applications. One is Text, where one needs to design the UI by hardcoding and one is the Design section that provides a convenient drag and drop mechanism for building UI. Have a look at the following image which shows how the code is being written, it goes on to show the result in the right pane.

The following image shows the drag and drop environment for widgets to pick and add in the UI of the application. One can switch to the Design layout by clicking on the bottom left button, shown as the following.

6. Understanding the Coding Part

As we have understood the design part similarly, another main part is the coding part. In the image below you can see a file named MainActivity.kt. Yes, this is the file where you write the backend part. The logic part. For example, you want to add two numbers. So, after entering two numbers in the EditText, when the user clicks on the Button, it will give the output as the sum of two numbers. So to calculate the sum, you have to write the logic in its part.

Note: If you select Language as Java during project creation, then the file name will be MainActivity.java.

7. Run Android App

To run an application there are two ways to do it. One is using an emulator, another is using a physical device by connecting it through a USB cable. Refer to How to install Android Virtual Device(AVD) how to set up an android virtual device or refer to How to Run the Android App on a Real Device? setting up a real physical android device and running applications on it. Have a look at the following image of what the Android Virtual Device looks like on the first run of the application.

8. Essential Android Studio Keyboard Shortcuts

Keyboard shortcuts make work a lot easier and increase productivity. One may refer to 10 Important Android Studio Shortcuts You Need the Most getting to know the essential keyboard shortcuts for Android Studio.

9. Android Studio Tips and Tricks

There are some tips and tricks that can be used to master Android development using Android Studio. These tips and tricks are:

  • Setting up the theme of Android Studio
  • Changing color of Logcat
  • Fast Searching
  • Split Screen
  • Distraction-free mode
  • Code completion
  • Multi cursor feature and many more

You may refer to the following articles to find out more about Android Studio Tips and Tricks

  • Top 20 Tips and Tricks of Android Studio
  • 10 Android Studio Tips and Tricks For Android Developers

10. For the complete Android Studio Tutorial, you may refer to this article: Android Studio Tutorial

На каком языке в какой среде разработки писать, как выложить в Google Play и зарабатывать

https://gbcdn.mrgcdn.ru/uploads/post/2134/og_image/912aecd851b468f3531cf6927743dbca.jpg

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

Уже несколько лет на рынке разработки приложений под Андроид спрос превышает предложение, и такое состояние рынка сохранится в ближайшие годы. Если говорить о специфике разработки, то речь здесь идёт не только о смартфонах и планшетах. Каждый сможет найти направление себе по вкусу: носимая электроника, Android TV, Android в автоиндустрии, дополненная и виртуальная реальность, интернет вещей…

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

Разработка андроид приложений: минимальный набор знаний

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

  • Языками программирования Java или Kotlin;
  • Платформой Android Studio для разработки на платформе Android;
  • Git;
  • Основными библиотеками, которые вам сильно облегчат жизнь: Retrofit (для получения данных из интернета), Glide (для загрузки изображений)
  • Архитектурными компонентами Андроид (чтобы писать чистый и надёжный код);
  • Умением писать приложение в архитектуре MVP или MVVM (для надёжности приложения, его поддержки и развития).

На чём писать приложения для Android

В принципе для разработки нужна только Android Studio, которую можно бесплатно скачать с официального сайта. Это лучшая среда разработки андроид приложений из существующих на рынке. Подойдёт любая операционная система (Mac OS, Windows, Linux). Что касается аппаратной части, желательно иметь процессор не старше пяти лет и 8 гигабайт оперативной памяти (+ 1,5 ГБ свободного места на диске). 

Если вы не знаете ничего о программировании и имеете только жгучее желание создавать, для начала нужно выучить хотя бы один язык программирования. На данный момент написать приложение для Android можно на Java или на Kotlin. Предпочтительный язык — Kotlin, но если вы планируете стать профессиональным разработчиком, то Java вам нужно хотя бы уметь «читать» (а лучше и писать на ней). Эти языки очень похожи, работают по одинаковым принципам и имеют очень похожий синтаксис. У нас на факультете Android-разработки мы начинаем изучать Java, а в середине обучения переходим на Kotlin. Так выпускник оказывается полностью подготовлен к профессии андроид-разработчика в плане языков программирования.

Чтобы с удобством изучать Java, установите среду разработки на Джаве — IntelliJ Idea Community Edition. Это бесплатная программа, лучшая на рынке. Инструкцию по установке можно найти в конце этой статьи, в дополнительных материалах.

Устанавливаем Git для хранения кода

Git — это полезный инструмент, который вам как разработчику рано или поздно понадобится. С его помощью можно хранить разные версии вашего приложения на компьютере или в облаке. Скачайте, установите его, а также прочитайте первые несколько глав из руководства. Достаточно первых трёх глав (Введение, Основы, Ветвление), чтобы освоиться с самыми полезными функциями:

После установки Git вы сможете сохранять разные версии кода вашего андроид-приложения на компьютере или в облаке:

Среда разработки андроид-приложений

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

Если вам по какой-то причине не нравится Android Studio, то можно установить Eclipse в качестве среды разработки андроид-приложений. Но Эклипс — это скорее исключение из правил. Подавляющее большинство разработчиков работают в Студии.

Также, если у вас процессор от AMD, то рекомендуется поставить в качестве эмулятора смартфона Genymotion. Если у вас процессор от Intel, то встроенного в Android Studio эмулятора будет более чем достаточно.

Разработка приложений под Android: начало

Давайте создадим наш первый проект и посмотрим, из каких компонентов он состоит. Если вы первый раз открыли Студию, то вам будет предложено выбрать какой-нибудь шаблон из набора:

Выберем Empty Activity и нажмём «Далее»:

Здесь по аналогии с IntelliJ Idea вы вводите название вашего проекта, пэкедж, выбираете язык программирования и нажимаете Finish. Перед вами откроется готовый проект, где вы и будете создавать своё приложение на Android.

Создаём эмулятор

Чтобы создать эмулятор, нажмите на AVD Manager:

В появившемся окне нажмите Create Virtual Device:

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

Выберите версию операционной системы, для которой мы в первую очередь пишем приложение под Android (скорее всего, вам нужно будет её предварительно скачать, нажав Download):

Нажмите Finish:

В появившемся окне выберите созданный эмулятор и запустите его: 

Эмулятор запустится в отдельном окне и появится рядом с кнопкой старта приложения. Нажмите на эту кнопку:

На эмуляторе запустится ваш проект:

Из чего состоит Android-приложение

Теперь давайте разберём, из каких компонентов состоит любое, даже самое простое приложение под Андроид. В папке java находится непосредственно код вашего приложения — тут вы будете создавать экраны и наполнять их содержанием: 

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

Манифест приложения содержит информацию обо всех экранах приложения:

Три основных экрана Android Studio — вот с чего начинается любое приложение под андроид. В том числе и ваше :)

Как разместить приложение в Google Play

Основной способ распространения андроид-приложений — это размещение на площадке Google Play. Кроме этого, приложения можно размещать и в Amazon AppStore, и в Yandex Store, в Shop Samsung App. Но следует помнить, что основной площадкой является Google Play. Магазин приложений Google устанавливается практически на все устройства с Android (кроме ряда «китайцев» и «индийцев»), и по умолчанию на всех этих устройствах включена опция установки приложений только с этой площадки.

Основные особенности Google Play:

  • огромная база пользователей;
  • очень много приложений: практически все существующие  Android-приложения присутствуют на этой площадке;
  • удобные инструменты для публикации;
  • быстрая форма проверки приложений (через пару часов приложение будет уже доступно).

Давайте посмотрим, как выложить своё приложение в Google Play. Перед загрузкой приложения необходимо зарегистрировать аккаунт разработчика в Google Play. Обычно советуют использовать для этого не свой личный аккаунт (если у вас почта на Gmail), а специально создать для этого ещё один аккаунт. Это связано с тем, что если робот Google Play решит заблокировать аккаунт разработчика, то ваш личный аккаунт это не затронет. Откроем страницу регистрации:

И следуем простым шагам:

Важный момент: регистрация разработчика стоит 25 долларов США. Плата берётся единовременно.

Далее, чтобы опубликовать приложение, надо зайти в аккаунт разработчика и нажать «Новое приложение». Вы попадёте в консоль разработчика:

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

После этого необходимо проверить, что все формы заполнены

Кстати, у Google есть и свой список рекомендаций по поводу того, как опубликовать своё приложение.

Для заполнения формы с версиями приложений надо подготовить релизную версию вашего приложения. то уже не debug-версия вашего приложения, которая запускалась у вас до этого момента, в эмуляторе или под отладкой на устройстве, через кнопку Run.

Как подготовить релиз-версию приложения

Вы создали приложение под Android, и теперь, чтобы его выложить, необходимо сделать следующие шаги:

  1. Подготовить подпись приложения. Приложение подписывается уникальным криптографическим ключом.
  2. Подготовить пиктограмму приложения.
  3. Подготовить скриншоты (снимки экрана) приложения. Можно отдельно подготовить скриншоты для планшетов, телевизора и прочих устройств.
  4. Проверить манифест приложения. Проверяются права, версия приложения. Проверяются версии SDK, под какие готовится приложение. Удаляется логирование приложения. Проверяются ресурсы приложения.
  5. Собрать релиз-версию проекта и подписать её уникальным ключом.
  6. Подготовить удалённые сервера, если приложение работает с такими серверами.
  7. Протестировать релиз-версии подписанного приложения.
  8. После релиза приложения в магазине желательно скачать и удостовериться, что всё прошло гладко. Помните, пользователи будут очень недовольны и начнут минусовать ваше приложение, если новая версия будет падать или что-то случится при выкладке приложения, и оно станет неработоспособно.

Пройдёмся по важным понятиям на этом этапе.

Уникальный ключ приложения (сертификат)

Чтобы загрузить приложение на площадку и установить на устройство, требуется, чтобы приложение было подписано вашим уникальным криптографическим ключом. По этому ключу всегда можно отличить подлинность приложения и обновлений. Этот ключ находится у разработчика, он называется app singing key. А Keystore — это файл, в котором хранится ключ. У ключа есть имя и пароль, хранится ключ в keystore, от которого тоже должен быть пароль. Так много паролей нужно, чтобы никто не смог украсть ваше приложение.

Когда вы пишете приложение на андроид, то Android SDK автоматически подписывает debug версию, и кладёт цифровой сертификат и keystore в папку $HOME/.android/debug.keystore. Google Play не принимает debug ключи. Необходимо подписывать приложение релиз-сертификатом. Этот сертификат должен быть один на протяжении всей жизни приложения. 

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

Сервис Google Play

Если вы выбрали использовать Google Play App singing, вы подписываете приложение с ключом для загрузки его в Google Play (upload key), и уже сам Google Play подписывает приложение уникальным ключом, а впоследствии несёт ответственность за его хранение. Тогда при потере upload key (ключа для загрузки приложения) вы сможете верифицироваться с Google, и сгенерировать новый. Таким образом, вы сможете в любом случае загрузить обновления вашего приложения, даже если вы поменяли загрузочный ключ. 

Самостоятельное хранение

Если вы сами храните ключ, то вся ответственность в этом случае лежит на вас. При потере ключа Google Play не сможет вам помочь и обновить приложение вы уже не сможете.

Как подписать приложение в Android Studio

Подпись можно сделать вручную или настроить всё так, чтобы приложение подписывалось в процессе сборки. Вот как сгенерировать новый ключ и keystore файл.

Зайдите в Build и выберите Generate Signed APK:

Выберите тип подписи:

В окне New Key Store заполните форму:

После компиляции проекта найдите получившийся файл:

Это уже готовый файл для загрузки его в Play Google.

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

Для публикации приложения после его загрузки обязательно нажмите кнопку «Просмотреть»:

И только после этого можно опубликовать приложение:

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

Где ещё можно опубликовать приложение

Кроме Google Play, существуют и другие площадки для размещения приложений — Amazon Appstore, Shop Samsung App, Yandex Store. Некоторые разработчики также добавляют свои приложения и в эти альтернативные магазины. Вот некоторые причины:

  • В альтернативных площадках условия могут оказаться выгоднее, регистрация на некоторых площадках бесплатная. В отличие от Google Play, который, как мы помним, требует единоразовый взнос в 25 долларов. Сторонние магазины могут привлекать пользователей, устраивая акции для покупателей.
  • В основной площадке Google Play очень много приложений, и очень жёсткая конкуренция. Старые и популярные приложения часто оказываются выше новых в списках поиска.
  • В Google Play существует фильтр, и если приложение не соответствует стандартам и принципам Google, то такое приложение удаляется, а аккаунт пользователя может быть заблокирован. Причём, зачастую, это «заслуга» автоматических сервисов.

Как монетизировать приложение

Если вы не крупная компания, которая распространяет свой продукт бесплатно (например какой-нибудь интернет-магазин, или банк), у вас есть несколько способов заработать на своём приложении:

  • продажа самого приложения;
  • вставка рекламы в приложения;
  • продажа платных функций в приложении;
  • продажа подписки на определённый период;
  • донаты — добровольные платежи от пользователей.

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

  • Изучайте сведения о приложениях из категории, к которой относится ваше. Узнайте, как другие разработчики получают средства за свои приложения и материалы, и определите, следует ли предложить пользователям альтернативные способы оплаты.
  • Подумайте о том, как пользователи будут работать с вашим приложением. Это поможет вам определить наиболее подходящие способы монетизации. От частоты использования приложения зависит эффективность монетизации при помощи рекламы или покупок в приложении. Вы также можете предлагать пользователям приобрести версию приложения без рекламы.
  • Используйте естественные расширения. Если функциональность можно расширить (например, добавить новые уровни в игре), рекомендуем сделать базовую часть бесплатной, а дополнительные функции продавать через приложение или на основе подписки.
  • Продумайте структуру затрат в своём приложении. Если пользователи регулярно расходуют на ваш контент определённую сумму, вы можете внедрить подписки. Чтобы привлекать новых пользователей, предлагайте им бесплатный пробный период.
  • Учитывайте особенности аудитории. Для некоторых аудиторий не всегда подходят реклама, подписки и покупки в приложении. Например, в детских играх пользователи охотнее платят за отсутствие рекламы. В таких случаях пользователям лучше предлагать версии приложений без рекламы.
  • Назначайте цены с учётом особенностей целевой страны. Формируйте цены на приложения, покупки в них, а также подписки, исходя из уровня жизни, специфики ценообразования, стоимости аналогичных приложений и иных факторов в целевой стране.

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

Полезные материалы для чтения и самоподготовки

Head First. Программирование для Android. Хотя эта книга немного устарела, она объясняет ключевые концепции очень интересным способом. Если вам понравился стиль Head First, вам будет приятно читать эту книгу.

Филлипс Б., Стюарт К., Марсикано К.Android. Программирование для профессионалов. 3-е издание. Действительно неплохая книга, которую можно смело рекомендовать начинающим разработчикам. В ней они смогут найти множество приёмов разработки приложений для Android, самостоятельный путь к которым довольно долог. Книга начинается с «Hello, world» и через теорию, упражнения и написание небольших приложений, обучает основному стеку технологий для создания Android-приложения. Требует среднего знания Java.

Исакова С., Жемеров Д. Kotlin в действии. Книга от создателей языка. Очень хорошо написана, советую.

Нуркевич Т., Кристенсен Б. Реактивное программирование с применением RxJava. Разработка асинхронных событийно-ориентированных приложений. Книга, которая на примере RxJava поможет понять вам, что такое реактивное программирование. Требует неплохого знания Java (по крайней мере, вы должны понимать, что такое обобщённые типы и лямбда-выражения) и предполагает последовательное чтение, так как материал подаётся шаг за шагом. Внимательный читатель получит полное представление об RxJava.

Напоследок — ещё пара статей на английском для тех, кто хочет разработать приложение на Android: «10 вещей, которые узнают новые Android-разработчики» и «12 методов, который должен знать каждый начинающий Android-разработчик».

Если вам было бы интересно почитать о каких-либо конкретных аспектах разработки под андроид — пишите в комментариях.

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

Другие полезные статьи для начинающих Android-разработчиков:

  • 9 практических советов для начинающего Android-разработчика
  • Типичные ошибки начинающего Android-разработчика

Понравилась статья? Поделить с друзьями:
  • Ридомил голд инструкция для винограда норма расхода
  • Руководство lg 49uj630v
  • Панкреатин 25000 инструкция по применению цена отзывы аналоги таблетки цена
  • Артроактив мазь инструкция цена отзывы питающий
  • Шаговый тренажер для ног инструкция по применению